MaxCompute memungkinkan Anda menggunakan tabel eksternal untuk melakukan kueri dan menganalisis data yang disimpan di sistem penyimpanan eksternal, seperti OSS.
Pengenalan fungsi
MaxCompute SQL merupakan alat utama untuk pemrosesan data terdistribusi dan mampu memproses data offline dalam skala exabyte secara efisien. Seiring dengan perluasan layanan data besar, berbagai skenario data baru terus bermunculan, dengan sejumlah besar data terpusat di data lake, gudang data real-time, database NoSQL, atau sistem lainnya.
MaxCompute cocok untuk skenario gudang data maupun data lake. Arsitekturnya yang mendasari menggabungkan penyimpanan dan komputasi terdistribusi untuk data besar, sehingga menyediakan kapasitas, throughput komputasi, kemampuan multi-engine, serta keterbukaan yang diperlukan dalam skenario data lake. Oleh karena itu, terdapat dua pola utama untuk komputasi data eksternal:
Pola 1: Impor lalu komputasi
Anda dapat mengimpor data ke dalam MaxCompute. Data terstruktur dalam format tabel dapat dikomputasi menggunakan SQL atau dibuka untuk engine pihak ketiga. Data tidak terstruktur juga dapat disimpan dan dikomputasi di MaxCompute. Pendekatan ini memberikan efisiensi baca-tulis data yang lebih tinggi serta pengalaman yang lebih terintegrasi dalam MaxCompute.
Pola 2: Komputasi langsung pada data eksternal
Untuk membangun arsitektur data yang lebih fleksibel berbasis data lake, MaxCompute SQL juga dapat berperan sebagai compute engine untuk memproses data di luar gudang data.
MaxCompute menyediakan kemampuan komputasi dalam kerangka gudang data yang dikelola secara ketat, sekaligus dapat terhubung ke sistem penyimpanan data eksternal beserta kerangka manajemennya. Cara paling langsung untuk mengakses data eksternal adalah dengan menggunakan tabel eksternal.
Definisi dan prinsip
Anda dapat menggunakan pernyataan Data Definition Language (DDL) untuk mendefinisikan nama tabel, skema, properti, izin, lokasi, dan protokol akses ke data eksternal. Informasi ini dicatat dalam metadata MaxCompute.
SQL kemudian menggunakan metadata tersebut untuk terhubung ke sumber data eksternal dan menerapkan metode yang sesuai untuk setiap format tabel eksternal. Proses ini mencakup pengambilan atau pembaruan metadata data eksternal serta memungkinkan data dibaca, dikomputasi, dan ditulis.
Kasus penggunaan utama
Dengan menggunakan tabel eksternal, Anda dapat langsung mengkomputasi data di luar MaxCompute. Anda juga dapat mengelola sumber data eksternal dalam cakupan manajemen MaxCompute dan menggunakan data tersebut di bawah sistem manajemen yang telah ditentukan. Contohnya meliputi pemrosesan batch data terstruktur atau tidak terstruktur di data lake, berbagi dan pertukaran data, serta pengarsipan data dari gudang data real-time ke dalam model gudang data.
Informasi penagihan
Biaya penyimpanan
Kesimpulan: Tidak ada biaya penyimpanan yang dikenakan.
Alasan: Saat Anda menggunakan tabel eksternal, data tidak disalin dan disimpan di MaxCompute. Data tetap berada di sistem eksternal. MaxCompute tidak membebankan biaya penyimpanan untuk gudang data. Untuk informasi mengenai biaya penyimpanan, lihat aturan penagihan dari sumber data tersebut.
Biaya komputasi
Biaya komputasi mengikuti aturan penagihan sumber daya komputasi MaxCompute. Biaya bervariasi berdasarkan metode penagihan:Untuk unit komputasi (CU) langganan atau elastically reserved:
Biaya komputasi untuk tabel eksternal termasuk dalam biaya prabayar sumber daya komputasi.
Untuk metode penagihan pay-as-you-go:
Bagian yang dikenai biaya: Saat ini, penagihan hanya didasarkan pada jumlah data yang dipindai ketika tugas komputasi mengakses OSS dan Tablestore.
Bagian yang tidak dikenai biaya: Mengakses sumber data seperti HDFS, Hologres, RDS, HBase, dan Lindorm saat ini tidak dikenai biaya. Hal ini berlaku baik saat Anda mengaksesnya melalui tabel eksternal maupun melalui metode external schema Data Lakehouse 2.0. Jumlah data yang dipindai tidak dilacak, dan tidak ada biaya komputasi yang dihasilkan.
Biaya jaringan
Jika Anda menggunakan MaxCompute Endpoint publik untuk terhubung ke tabel eksternal, lalu lintas internet dan biaya unduh akan dikenakan. Untuk informasi lebih lanjut mengenai biaya MaxCompute, lihat Item yang dikenai biaya dan metode penagihan.
Catatan mengenai biaya sumber data eksternal
Saat Anda menggunakan tabel eksternal MaxCompute untuk mengakses sumber data eksternal, sumber data tersebut mungkin mengenakan biaya untuk komputasi, akses, dan transmisi data. Biaya spesifik tergantung pada metode penagihan sumber data eksternal tersebut. Untuk informasi lebih lanjut, lihat dokumentasi produk yang bersangkutan.
Cakupan
Fitur Tunnel dan Tunnel SDK tidak mendukung operasi pada tabel eksternal. Anda dapat mengunggah data langsung ke tabel internal MaxCompute menggunakan Tunnel. Anda juga dapat mengunggah data ke OSS menggunakan OSS Python SDK, lalu membuat pemetaan ke data tersebut menggunakan tabel eksternal di MaxCompute.
Tabel eksternal MaxCompute mendukung penulisan data ke sumber data. Namun, kemampuan menulis dan konsistensinya dibatasi oleh sistem eksternal. Contohnya:
Hologres: MaxCompute mengakses metadata Hologres berdasarkan protokol Java Database Connectivity (JDBC) dan tidak dapat menjamin atomicity untuk kontrol transaksi tulis. Mesin SQL MaxCompute hanya dapat membaca, bukan menulis, data Pangu dasar Hologres. Karena kompleksitas penulisan paralel oleh banyak proses dalam lingkungan komputasi terdistribusi MaxCompute, penulisan data dari MaxCompute ke Hologres tidak mendukung semantik
INSERT OVERWRITE. Jika suatu pekerjaan gagal, hanya sebagian data yang mungkin tertulis.HDFS: Demikian pula, saat berbasis Hive Metastore (HMS), penulisan ke HDFS memiliki kemungkinan kecil terjadi inkonsistensi.
OSS: Saat menulis ke tabel eksternal OSS, penggunaan file metadata .odps untuk kontrol dapat mengurangi kemungkinan penulisan yang tidak lengkap. Namun, jika Anda mengabaikan mekanisme kontrol ini demi kompatibilitas engine, tetap ada kemungkinan kecil terjadi penulisan yang tidak lengkap.
Saat Anda menggunakan semantik
INSERT OVERWRITEuntuk menulis data dari MaxCompute ke sumber data eksternal, data baru ditulis terlebih dahulu. Kemudian, pada fase commit DDL, data yang ada di tabel atau partisi dihapus dan diganti dengan data baru. MaxCompute tidak dapat melakukan rollback atau memulihkan data yang telah dihapus. Anda harus melakukan backup data terlebih dahulu. Setelah operasi penulisan, lakukan validasi data. Jika ditemukan masalah, Anda dapat mengulangi operasi penulisan penuh.
Topik Terkait
Tabel eksternal yang didukung
MaxCompute mendukung berbagai jenis tabel eksternal, seperti untuk OSS, Hologres, dan RDS:
Contoh tabel eksternal
Gunakan contoh berikut untuk mempelajari cara memproses berbagai jenis data tidak terstruktur menggunakan tabel eksternal MaxCompute:
Untuk mengakses data tidak terstruktur di OSS dan Tablestore (OTS), lihat Tabel eksternal OSS dan Mengakses data tidak terstruktur di OTS.
Untuk memberikan izin MaxCompute mengakses OSS menggunakan Peran RAM kustom untuk tabel eksternal, lihat Otorisasi mode STS.
Kerangka data tidak terstruktur MaxCompute mendukung penulisan data langsung dari MaxCompute ke OSS menggunakan pernyataan INSERT. Untuk informasi lebih lanjut, lihat Menulis data ke OSS.
Untuk memproses data dalam berbagai format open source, lihat Tabel eksternal OSS.
Anda dapat menggunakan DataWorks bersama MaxCompute untuk membuat, mencari, melakukan kueri, mengkonfigurasi, memproses, dan menganalisis tabel eksternal secara visual. Untuk informasi lebih lanjut, lihat Tabel eksternal.