MaxCompute menyediakan Storage API untuk meningkatkan integrasi dengan ekosistem data besar dan memungkinkan mesin eksternal mengakses data di MaxCompute. Mesin komputasi pihak ketiga yang populer dapat memanggil Storage API untuk langsung mengakses penyimpanan dasar MaxCompute, sehingga secara signifikan meningkatkan efisiensi akses dan interaksi data.
Ikhtisar Open Storage
Storage API adalah antarmuka layanan data yang menyediakan metode akses data yang efisien, berlatensi rendah, dan aman. Antarmuka ini memungkinkan mesin komputasi pihak ketiga yang populer untuk mengakses sistem penyimpanan MaxCompute, sehingga meningkatkan integrasi dan efisiensi pemrosesan data antara MaxCompute dengan mesin komputasi open source atau mesin pembelajaran mesin. Mesin komputasi seperti Spark, StarRocks, Presto, dan Flink dapat menggunakan connector untuk langsung mengakses data yang disimpan di MaxCompute, yang menyederhanakan proses penggunaan data dan meningkatkan kinerja akses data. Gambar berikut menunjukkan arsitekturnya.

Skenario
Storage API ideal untuk skenario yang memerlukan aksesibilitas data dan komputasi multi-mesin. Jika perusahaan atau pengembang perlu beralih secara fleksibel antar kerangka kerja komputasi atau menggunakan fitur mesin tertentu untuk memproses data di MaxCompute, Storage API bertindak sebagai jembatan untuk memfasilitasi pertukaran data dan memungkinkan pemrosesan data yang beragam.
Fitur utama
Throughput tinggi: Storage API mendukung pembacaan data kolom yang efisien, predicate pushdown untuk penyaringan data sebelum transmisi, dan format data Arrow.
Aman dan mudah digunakan: Menyediakan akses bacalangsung ke penyimpanan dasar dengan semantik tabel. Hal ini menyembunyikan kompleksitas penyimpanan sekaligus mematuhi kebijakan keamanan seperti isolasi proyek, kontrol akses, dan enkripsi data.
Integrasi ekosistem: Spark pada EMR dan StarRocks dapat menggunakan connector untuk langsung mengakses data di MaxCompute, sehingga menyederhanakan integrasi mesin komputasi.
Cakupan
Mesin pihak ketiga yang mengakses MaxCompute dapat membaca tabel standar, tabel partisi, tabel terkluster, Delta Tables, dan tampilan yang di-materialisasi. Namun, mereka tidak dapat membaca tabel eksternal atau tampilan logis di MaxCompute.
Pembacaan data bertipe JSON tidak didukung.
Untuk Storage API pay-as-you-go, jumlah permintaan konkuren dibatasi hingga 1.000 per tenant, dan laju transmisi dibatasi hingga 10 MB/detik per permintaan konkuren.
Sumber daya transmisi data
Ketika mesin pihak ketiga menggunakan MaxCompute Storage API untuk tugas transmisi data, Anda dapat menggunakan kelompok sumber daya eksklusif untuk Data Transmission Service (subscription). Tabel berikut menjelaskan sumber daya tersebut.
Nama kelompok sumber daya | Deskripsi penagihan | Wilayah yang didukung | Petunjuk penggunaan |
Kelompok sumber daya ini menggunakan metode penagihan langganan. Anda dikenai biaya berdasarkan jumlah instans konkuren yang Anda beli. |
| Beli dan gunakan kelompok sumber daya eksklusif untuk Data Transmission Service |
Pada halaman Resource Observation, Anda dapat melihat detail penggunaan kelompok sumber daya eksklusif untuk Data Transmission Service (subscription). Untuk informasi selengkapnya, lihat Resource Observation.
Contoh penggunaan
Akses MaxCompute menggunakan connector. Untuk informasi selengkapnya, lihat topik berikut:
Akses MaxCompute menggunakan SDK. Untuk informasi selengkapnya, lihat topik berikut:
Pemetaan tipe data Arrow
MaxCompute Storage API menggunakan tipe data Apache Arrow untuk memastikan representasi data yang efisien dan terstruktur selama penyimpanan dan transmisi. Saat Anda menulis data menggunakan MaxCompute Storage API, data tersebut tidak dihitung atau diproses. Misalnya, kunci duplikat tidak dihapus dari data Map. Struktur data asli dipertahankan kecuali jika mesin penyimpanan memiliki batasan tertentu.
Tabel berikut menjelaskan pemetaan antara tipe data MaxCompute dan Apache Arrow.
Tipe data MaxCompute | Tipe data Arrow |
TINYINT | Int8Type |
SMALLINT | Int16Type |
INT | Int32Type |
BIGINT | Int64Type |
FLOAT | FloatType |
DOUBLE | DoubleType |
BOOLEAN | BooleanType |
DECIMAL | Decimal128Type Catatan Presisi tipe DECIMAL MaxCompute lebih tinggi daripada tipe Decimal128Type Storage API.
|
DECIMAL(precision, scale) | Decimal128Type |
STRING | StringType |
BINARY | BinaryType |
VARCHAR | StringType |
CHAR | StringType |
DATETIME | TimestampType[1] Unit waktu adalah milidetik, dan zona waktu adalah UTC. |
TIMESTAMP | TimestampType[2] Unit waktu adalah nanodetik, dan zona waktu adalah UTC. Catatan Tipe TIMESTAMP mendukung rentang nilai yang lebih luas. Jika Anda menggunakan Storage API untuk membaca atau menulis data TIMESTAMP yang melebihi rentang presisi TimestampType, bagian bernilai presisi tinggi akan dipotong. Hal ini menyebabkan loss presisi. |
DATE | Date32Type |
INTERVAL_DAY_TIME | DayTimeIntervalType Catatan Tipe INTERVAL_DAY_TIME akurat hingga nanodetik. Tipe DayTimeIntervalType Storage API akurat hingga milidetik. Jika Anda menggunakan Storage API untuk membaca atau menulis data INTERVAL_DAY_TIME, bagian nanodetik akan dipotong. Hal ini menyebabkan loss presisi. |
INTERVAL_YEAR_MONTH | MonthIntervalType |
ARRAY | ListType |
MAP | MapType Catatan Jika MAP berisi kunci duplikat:
Sebagai contoh, jika Anda menulis data mentah |
STRUCT | StructType |
JSON | StringType |