Topik ini menjelaskan cara mengakses tabel Delta MaxCompute dari Hologres.
Pengenalan
Mulai Hologres V3.0.38, Anda dapat membaca data dari tabel Delta MaxCompute. Tabel Delta adalah tabel data inkremental yang didukung oleh MaxCompute. Fitur ini mendukung impor data dalam hitungan menit, menggunakan format file AliORC di lapisan bawah, mendukung semantik UPSERT, serta memungkinkan pembacaan dan penulisan data inkremental dalam format Change Data Capture (CDC). Untuk informasi lebih lanjut, lihat Konsep dasar.
Prasyarat
Instans Hologres telah dibeli. Untuk informasi lebih lanjut, lihat Beli instans Hologres.
MaxCompute telah diaktifkan, dan proyek MaxCompute telah dibuat. Untuk informasi lebih lanjut tentang cara mengaktifkan MaxCompute, lihat Aktifkan MaxCompute.
Anda memiliki izin untuk mengakses proyek dan tabel MaxCompute. Untuk informasi lebih lanjut, lihat Kelola izin pengguna menggunakan perintah.
Catatan penggunaan
Hologres hanya mengizinkan pembacaan snapshot terbaru dari tabel Delta MaxCompute.
Data tidak dapat ditulis kembali ke tabel Delta MaxCompute dari Hologres.
Untuk mengakses tabel Delta MaxCompute, parameter GUC harus dikonfigurasi. Kami merekomendasikan menjalankan perintah berikut pada tingkat sesi bersama dengan Pernyataan SQL yang digunakan untuk menanyakan tabel Delta MaxCompute:
SET hg_experimental_external_catalog_routing = 'odps:common_table';
Gunakan tabel Delta MaxCompute
Buat tabel Delta di sisi MaxCompute
Gunakan salah satu metode berikut untuk membuat tabel:
Tambahkan sumber data MaxCompute di konsol DataWorks, lalu buat tabel. Untuk informasi lebih lanjut, lihat DataWorks.
Gunakan klien MaxCompute untuk membuat tabel. Untuk informasi lebih lanjut, lihat Gunakan klien MaxCompute.
Contoh Pernyataan SQL:
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 ke tabel Delta di sisi MaxCompute
Gunakan salah satu metode berikut untuk menulis data ke tabel Delta di sisi MaxCompute:
Jalankan pernyataan INSERT INTO atau INSERT OVERWRITE untuk menulis data secara batch. Untuk informasi lebih lanjut, lihat Masukkan data ke dalam atau timpa data dalam tabel atau partisi statis (INSERT INTO dan INSERT OVERWRITE).
Gunakan Flink untuk menulis data secara hampir real-time. Untuk informasi lebih lanjut, lihat Gunakan Flink untuk menulis data ke tabel Delta.
Contoh pernyataan SQL untuk menulis data secara batch:
-- Jalankan pernyataan INSERT INTO untuk menambahkan data ke partisi tertentu di tabel mf_dt.
INSERT INTO TABLE mf_dt PARTITION(dd='01', hh='01')
VALUES (3, 30), (4, 4), (5, 5);
-- Masukkan data uji ke dalam partisi yang memenuhi kondisi dd='01' dan hh='01' di 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 sisi Hologres
Gunakan salah satu metode berikut untuk membuat pemetaan sumber data eksternal di sisi Hologres:
Gunakan pernyataan CREATE EXTERNAL DATABASE untuk memetakan semua tabel dalam proyek MaxCompute tertentu. Untuk informasi lebih lanjut, lihat CREATE EXTERNAL DATABASE.
Buat tabel asing untuk memetakan skema atau tabel tertentu. Untuk informasi lebih lanjut, lihat IMPORT FOREIGN SCHEMA dan CREATE FOREIGN TABLE.
Contoh pernyataan CREATE EXTERNAL DATABASE:
CREATE EXTERNAL DATABASE ext_database_mc WITH
metastore_type 'maxcompute'
mc_project 'mc_3_layer_project'
comment 'proyek tiga lapis mc';Kueri semua skema dalam database eksternal.
SELECT * FROM hologres.hg_external_schemas('ext_database_mc');Kueri semua tabel dalam mode default di database eksternal.
SELECT * FROM hologres.hg_external_tables('ext_database_mc', 'default');
Kueri data dari tabel Delta di sisi Hologres
Untuk menanyakan data dari tabel Delta di sisi Hologres, jalankan pernyataan SQL berikut:
SET hg_experimental_external_catalog_routing = 'odps:common_table';
SELECT * FROM ext_database_mc.mc_schema_name.mf_dt;