Topik ini menjelaskan cara mengakses tabel Delta MaxCompute dari Hologres.
Pengenalan fungsi
Mulai dari Hologres V3.0.38, Anda dapat membaca data dari tabel Delta MaxCompute. Tabel Delta adalah format tabel di MaxCompute untuk data inkremental yang mendukung impor data dalam hitungan menit, menggunakan AliORC sebagai format file dasar, menyediakan semantik UPSERT, serta memungkinkan pembacaan dan penulisan data inkremental dalam format Change Data Capture (CDC). Untuk informasi selengkapnya, lihat Terms.
Prasyarat
Instans Hologres telah diaktifkan. Untuk informasi selengkapnya, lihat Purchase a Hologres instance.
MaxCompute telah diaktifkan dan proyek telah dibuat. Untuk informasi selengkapnya, lihat Activate MaxCompute.
Anda memiliki izin yang diperlukan untuk mengakses proyek dan tabel MaxCompute. Untuk informasi selengkapnya, lihat Manage user permissions using commands.
Catatan penggunaan
Hologres hanya mendukung pembacaan snapshot terbaru dari tabel Delta MaxCompute.
Penulisan data kembali ke tabel Delta MaxCompute dari Hologres tidak didukung.
Untuk mengakses tabel Delta MaxCompute, Anda harus mengatur parameter GUC. Disarankan untuk mengatur parameter ini pada tingkat session. Jalankan perintah berikut sebelum melakukan kueri terhadap tabel Delta MaxCompute:
SET hg_experimental_external_catalog_routing = 'odps:common_table';
Instruksi
Buat tabel Delta di MaxCompute
Anda dapat menggunakan salah satu metode berikut untuk membuat tabel:
Di platform DataWorks, sambungkan sumber data MaxCompute, lalu buat tabel tersebut.
Gunakan MaxCompute local client untuk membuat tabel.
Perintah SQL-nya adalah sebagai berikut.
CREATE TABLE IF NOT EXISTS mf_dt (pk BIGINT NOT NULL PRIMARY KEY,
val BIGINT NOT NULL)
PARTITIONED BY (dd STRING, hh STRING)
tblproperties ("transactional"="true");Tulis data di MaxCompute
MaxCompute mendukung dua metode berikut untuk menulis data:
Gunakan INSERT INTO atau INSERT OVERWRITE untuk menulis data secara Batch. Untuk informasi selengkapnya, lihat Insert or overwrite data (INSERT INTO | INSERT OVERWRITE).
Gunakan Flink untuk menulis data secara near-real-time. Untuk informasi selengkapnya, lihat Use Flink to write data to MaxCompute.
Topik ini menggunakan penulisan data secara Batch sebagai contoh. Perintah SQL-nya adalah sebagai berikut.
-- Gunakan INSERT INTO untuk menambahkan data ke partisi target tabel mf_dt.
INSERT INTO TABLE mf_dt PARTITION(dd='01', hh='01')
VALUES (3, 30), (4, 4), (5, 5);
-- Masukkan data uji ke partisi dengan dd='01' dan hh='01' pada tabel mf_dt.
INSERT OVERWRITE TABLE mf_dt PARTITION (dd='01', hh='01')
VALUES (1, 1), (2, 2), (3, 3);Buat pemetaan sumber data eksternal di Hologres
Hologres mendukung dua metode untuk membuat pemetaan sumber data eksternal:
Gunakan database eksternal untuk memetakan semua tabel dalam proyek MaxCompute tertentu. Untuk informasi selengkapnya, lihat CREATE EXTERNAL DATABASE.
Gunakan tabel eksternal untuk menyesuaikan pemetaan skema dan tabel tertentu. Untuk informasi selengkapnya, lihat IMPORT FOREIGN SCHEMA dan CREATE FOREIGN TABLE.
Topik ini menggunakan CREATE EXTERNAL DATABASE sebagai contoh. Perintah SQL-nya adalah sebagai berikut.
CREATE EXTERNAL DATABASE ext_database_mc WITH
metastore_type 'maxcompute'
mc_project 'mc_3_layer_project'
comment 'mc three layer project';Kueri semua skema dalam database eksternal.
SELECT * FROM hologres.hg_external_schemas('ext_database_mc');Kueri semua tabel dalam skema default database eksternal.
SELECT * FROM hologres.hg_external_tables('ext_database_mc', 'default');
Kueri tabel Delta dari Hologres
Untuk mengkueri data dalam tabel Delta MaxCompute, jalankan perintah SQL berikut.
SET hg_experimental_external_catalog_routing = 'odps:common_table';
SELECT * FROM ext_database_mc.mc_schema_name.mf_dt;