MaxCompute, büyük veri ekosistemiyle entegrasyonu iyileştirmek ve harici motorların MaxCompute'deki verilere erişmesine olanak tanımak için Storage API sağlar. Önde gelen üçüncü taraf hesaplama motorları, MaxCompute'un altta yatan depolama alanına doğrudan erişmek için Storage API'yi çağırabilir. Bu sayede veri erişimi ve etkileşim verimliliği önemli ölçüde artar.
Genel Bakış
Storage API, verilerin etkin, düşük gecikme süreli ve güvenli bir şekilde okunması için veri hizmeti arayüzü sunar. Önde gelen üçüncü taraf hesaplama motorlarının MaxCompute depolama sistemine erişmesini sağlar. Bu özellik, MaxCompute ile açık kaynaklı hesaplama veya makine öğrenimi motorları arasındaki entegrasyonu ve veri işleme verimliliğini artırır. Spark, StarRocks, Presto ve Flink gibi hesaplama motorları, MaxCompute'ta depolanan verilere doğrudan erişmek için bir bağlayıcı kullanabilir. Bu durum, veri kullanım sürecini basitleştirir ve veri erişim performansını iyileştirir. Aşağıdaki şekil mimariyi göstermektedir.

Kullanım Senaryoları
Storage API, veri erişilebilirliği ve çoklu motorla hesaplamayı gerektiren senaryolar için idealdir. Şirketler veya geliştiriciler, hesaplama çerçeveleri arasında esnek bir şekilde geçiş yapmak veya MaxCompute'taki verileri işlemek için belirli motor özelliklerini kullanmak istediğinde, Storage API veri alışverişini kolaylaştırarak çeşitli veri işleme yöntemlerinin uygulanmasına olanak tanıyan bir köprü görevi görür.
Temel Özellikler
Yüksek aktarım hızı: Storage API, verimli sütun bazlı veri okuma, iletim öncesi veri filtreleme için yüklem aşağı itme (predicate pushdown) ve Arrow veri formatını destekler.
Güvenli ve kullanıcı dostu: Proje izolasyonu, erişim kontrolü ve veri şifreleme gibi güvenlik ilkelerine uygun olarak, tablo semantiğiyle altta yatan depolama alanına doğrudan okuma erişimi sağlar. Bu yaklaşım, depolamanın karmaşıklığını soyutlar.
Ekosistem entegrasyonu: EMR üzerindeki Spark ve StarRocks, MaxCompute'taki verilere doğrudan erişmek için bir bağlayıcı kullanabilir. Bu durum, hesaplama motoru entegrasyonunu basitleştirir.
Kullanım Notları
MaxCompute'a erişen üçüncü taraf motorlar; standart tabloları, bölümlenmiş tabloları, kümelendirilmiş tabloları, Delta Tablolarını ve somutlaştırılmış görünümleri okuyabilir. Ancak, MaxCompute'taki harici tabloları veya mantıksal görünümleri okuyamazlar.
JSON türündeki verilerin okunması desteklenmez.
Kullandıkça öde Storage API için, kiracı başına eşzamanlı istek sayısı 1.000 ile sınırlıdır ve her bir eşzamanlı istek için aktarım hızı saniyede 10 MB ile sınırlandırılmıştır.
Veri Aktarım Kaynakları
Bir üçüncü taraf motor, veri aktarım görevleri için MaxCompute Storage API'yi kullandığında, Veri Aktarım Hizmeti için özel kaynak gruplarını (abonelik) kaynaklarını kullanabilirsiniz. Aşağıdaki tabloda bu kaynaklar açıklanmaktadır.
Kaynak grubu adı | Faturalama açıklaması | Desteklenen bölgeler | Kullanım talimatları |
Bu kaynak grubu abonelik faturalandırma yöntemine dayanır. Satın aldığınız eşzamanlı örnek sayısına göre ücretlendirilirsiniz. |
| Veri Aktarım Hizmeti için özel kaynak grubu satın alma ve kullanma |
Resource Observation sayfasında, Veri Aktarım Hizmeti için özel kaynak gruplarının (abonelik) kullanım ayrıntılarını görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Kaynak Gözlemi.
Örnekler
-
Bağlayıcı kullanarak MaxCompute'a erişin. Daha fazla bilgi için aşağıdaki konulara bakın:
-
SDK kullanarak MaxCompute'a erişin. Daha fazla bilgi için aşağıdaki konulara bakın:
Arrow Veri Türü Eşlemesi
MaxCompute Storage API, depolama ve iletim sırasında verilerin etkili ve yapılandırılmış bir temsilini sağlamak için Apache Arrow veri türlerini kullanır. MaxCompute Storage API kullanarak veri yazdığınızda veriler hesaplanmaz veya işlenmez. Örneğin, Map verilerinden yinelenen anahtarlar kaldırılmaz. Depolama motorunun özel kısıtlamaları olmadıkça özgün veri yapısı korunur.
Aşağıdaki tabloda MaxCompute ve Apache Arrow veri türleri arasındaki eşlemeler açıklanmaktadır.
MaxCompute veri türü | Arrow veri türü |
TINYINT | Int8Type |
SMALLINT | Int16Type |
INT | Int32Type |
BIGINT | Int64Type |
FLOAT | FloatType |
DOUBLE | DoubleType |
BOOLEAN | BooleanType |
DECIMAL | Decimal128Type Not MaxCompute DECIMAL türünün hassasiyeti, Storage API Decimal128Type türününkinden daha yüksektir.
|
DECIMAL(hassasiyet, ölçek) | Decimal128Type |
STRING | StringType |
BINARY | BinaryType |
VARCHAR | StringType |
CHAR | StringType |
DATETIME | TimestampType[1] Zaman birimi milisaniye cinsindendir ve saat dilimi UTC'dir. |
TIMESTAMP | TimestampType[2] Zaman birimi nanosaniye cinsindendir ve saat dilimi UTC'dir. Not TIMESTAMP türü daha geniş bir değer aralığını destekler. TimestampType'ın hassasiyet aralığının ötesindeki TIMESTAMP verilerini okumak veya yazmak için Storage API kullanılırsa, değerin yüksek hassasiyetli kısmı kırpılır. Bu durum hassasiyet kaybına neden olur. |
DATE | Date32Type |
INTERVAL_DAY_TIME | DayTimeIntervalType Not INTERVAL_DAY_TIME türü nanosaniye hassasiyetindedir. Storage API DayTimeIntervalType türü milisaniye hassasiyetindedir. INTERVAL_DAY_TIME verilerini okumak veya yazmak için Storage API kullanılırsa, nanosaniye kısmı kırpılır. Bu durum hassasiyet kaybına neden olur. |
INTERVAL_YEAR_MONTH | MonthIntervalType |
ARRAY | ListType |
MAP | MapType Not Bir MAP yinelenen anahtarlar içeriyorsa:
Örneğin, |
STRUCT | StructType |
JSON | StringType |