Setelah mengonfigurasi katalog Hologres, Anda dapat membaca metadata Hologres langsung dari Konsol Realtime Compute for Apache Flink tanpa perlu mendaftarkan tabel secara manual. Fitur ini meningkatkan efisiensi pengembangan pekerjaan dan memastikan akurasi data. Topik ini menjelaskan cara mengonfigurasi, melihat, menggunakan, dan menghapus katalog Hologres.
Prasyarat
Anda harus memiliki instans Hologres khusus yang berisi database. Untuk informasi selengkapnya, lihat Buat database.
Batasan
-
Katalog tidak dapat dimodifikasi. Untuk menerapkan perubahan, Anda harus menghapus katalog yang ada dan membuat yang baru.
-
Anda harus menggunakan instans Hologres khusus. Realtime Compute for Apache Flink tidak mendukung instans kluster bersama karena hanya dapat mengakses tabel internal Hologres.
Buat katalog Hologres
Konfigurasi katalog tidak dapat diubah setelah dibuat. Untuk melakukan perubahan, hapus katalog yang ada dan buat yang baru.
UI
Jika Anda perlu mengatur parameter yang didukung oleh konektor Hologres, buat katalog Hologres menggunakan SQL.
-
Buka halaman Data Management.
-
Login ke Konsol Realtime Compute for Apache Flink, lalu klik Console pada kolom Actions ruang kerja target.
-
Klik Catalogs.
-
-
Klik Create Catalog, pilih Hologres, lalu klik Next.
-
Konfigurasi parameter.
Parameter
Deskripsi
Wajib
Catatan
catalogname
Nama katalog Hologres.
Ya
Hanya huruf kecil (a-z) dan angka (0-9) yang didukung. Huruf kapital, tanda hubung (-), garis bawah (_), dan karakter khusus lainnya tidak diperbolehkan.
endpoint
Titik akhir jaringan instans Hologres.
Ya
Jika instans Hologres dan ruang kerja Flink berada dalam VPC yang sama, buka . Pada halaman detail instans target, peroleh informasi jaringan untuk Specified VPC dari bagian Network Information.
Untuk jenis jaringan lainnya, lihat Peroleh endpoint instans Hologres.
username
-
Username akun kustom, dalam format
BASIC$<user_name>. -
ID AccessKey Akun Alibaba Cloud atau Pengguna RAM.
Ya
-
Pengguna yang dikonfigurasi harus memiliki izin untuk mengakses database Hologres yang sesuai. Untuk informasi selengkapnya, lihat model izin Hologres dan manajemen pengguna.
-
Untuk mengetahui cara memperoleh ID AccessKey dan AccessKey Secret, lihat Peroleh Pasangan Kunci Akses.
Penting-
Untuk mencegah kebocoran AK atau password Anda, kami menyarankan agar Anda menggunakan variabel proyek untuk memasukkan nilainya. Untuk informasi selengkapnya, lihat Variabel proyek.
-
Katalog yang dibuat dengan akun kustom hanya menampilkan database yang memiliki izin untuk akun tersebut. Katalog yang dibuat dengan AccessKey menampilkan semua database dalam instans.
-
password
-
Password akun kustom.
-
AccessKey Secret Akun Alibaba Cloud atau Pengguna RAM.
Ya
dbname
Nama database Hologres.
Ya
Database harus sudah ada dalam instans Hologres target. Jika tidak, pembuatan katalog akan gagal.
-
-
Klik OK.
Setelah pembuatan selesai, Anda dapat melihat katalog baru di bawah Catalogs.
SQL
-
Pada editor di halaman Data Query, masukkan pernyataan untuk membuat katalog Hologres.
Sintaks:
CREATE CATALOG <catalogname> WITH ( 'type' = 'hologres', 'endpoint' = '<endpoint>', 'username' = '<AccessKey ID>', 'password' = '<AccessKey Secret>', 'dbname' = '<dbname>' );Contoh:
Contoh sederhana
Contoh konsumsi real-time
CREATE CATALOG holocatalog WITH ( 'type' = 'hologres', 'endpoint' = 'hgpostcn-cn-******-cn-hangzhou-vpc-st.hologres.aliyuncs.com:80', 'username' = 'LTAI********************', 'password' = '${secret_values.ak_holo}', 'dbname' = 'holo_test' );Binlog harus diaktifkan untuk mendukung konsumsi data binlog.
CREATE CATALOG holocatalog WITH ( 'type' = 'hologres', 'endpoint' = 'hgpostcn-cn-******-cn-hangzhou-vpc-st.hologres.aliyuncs.com:80', 'username' = 'LTAI********************', 'password' = '${secret_values.ak_holo}', 'dbname' = 'holo_test', 'binlog' = 'true', -- Saat membuat katalog, Anda dapat mengatur parameter WITH untuk tabel source, dimension, dan sink. Parameter ini kemudian diterapkan secara default ke tabel yang diakses melalui katalog ini. 'cdcmode' = 'true', 'connectionpoolname' = 'the_conn_pool', 'table_property.binlog.level' = 'replica', -- Anda juga dapat meneruskan properti tabel Hologres yang dipertahankan saat membuat katalog. Dengan demikian, binlog diaktifkan secara default untuk tabel baru. 'table_property.binlog.ttl' = '259200' );Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Wajib
Catatan
catalogname
Nama katalog Hologres.
Ya
Hanya huruf kecil (a-z) dan angka (0-9) yang didukung. Huruf kapital, tanda hubung (-), garis bawah (_), dan karakter khusus lainnya tidak diperbolehkan.
type
Jenis katalog.
Ya
Nilainya harus
hologres.endpoint
Titik akhir instans Hologres.
Ya
Jika instans Hologres dan ruang kerja Flink berada dalam VPC yang sama, buka dan peroleh informasi jaringan specified VPC dari bagian Network Information pada halaman detail instans target.
Untuk jenis jaringan lainnya, lihat Peroleh endpoint instans Hologres.
username
ID AccessKey Akun Alibaba Cloud atau Pengguna RAM Anda.
Ya
Untuk informasi selengkapnya, lihat Peroleh Pasangan Kunci Akses.
Catatan-
Untuk mencegah kebocoran informasi AK Anda, kami menyarankan agar Anda menggunakan variabel untuk menentukan nilai password. Untuk informasi selengkapnya, lihat Variabel proyek.
-
Pengguna yang sesuai dengan AccessKey yang ditentukan harus memiliki izin untuk mengakses database Hologres. Untuk informasi selengkapnya tentang izin database, lihat model izin Hologres.
password
AccessKey Secret Akun Alibaba Cloud atau Pengguna RAM Anda.
Ya
dbname
Nama database Hologres.
Ya
Database harus sudah ada dalam instans Hologres target. Jika tidak, pembuatan katalog akan gagal.
ignore-non-persisted-options
Menentukan perilaku saat membuat tabel dengan opsi non-persisted melalui katalog.
Tidak
Nilai yang valid:
-
true(default): Tabel dibuat, dan semua opsi non-persisted diabaikan. -
false: Terjadi error, dan tabel gagal dibuat.
CatatanOpsi tabel yang dipertahankan adalah opsi yang nilainya, sebagaimana didefinisikan dalam pernyataan DDL, disimpan dalam katalog Hologres dan dapat diambil kembali nanti. Saat ini, hanya opsi
endpoint,username,password, dandbnameyang dipertahankan.catalog.table.metadata-columns
Saat Anda menggunakan katalog ini untuk menentukan tabel source, Anda dapat menambahkan kolom metadata dari tabel source binlog Hologres ke skema tabel sesuai kebutuhan. Pisahkan beberapa kolom metadata dengan titik koma (;). Contoh:
hg_binlog_event_type;hg_binlog_timestamp_us.Tidak
Secara default, tidak ada kolom metadata yang ditambahkan. Jika Anda mengonfigurasi parameter ini, kolom metadata yang ditentukan akan ditambahkan ke skema tabel yang dikembalikan. Kolom-kolom ini hanya berlaku untuk tabel source binlog Hologres. Oleh karena itu, tabel dari katalog ini hanya dapat digunakan sebagai tabel source, bukan sebagai tabel sink atau tabel dimensi. Enam jenis kolom metadata didukung. Untuk informasi selengkapnya, lihat field binlog Hologres.
CatatanParameter ini hanya didukung di Ververica Runtime (VVR) 8.0.11 dan versi lebih baru.
Parameter lain yang didukung oleh konektor Hologres
Anda dapat menentukan parameter lain, termasuk opsi WITH, saat membuat katalog. Parameter ini kemudian menjadi pengaturan default untuk semua tabel yang diakses melalui katalog ini.
Tidak
Untuk menggunakan fitur ini, atur parameter
ignore-non-persisted-optionsketrue. -
-
Setelah memasukkan pernyataan pembuatan katalog, klik Run di pojok kanan atas.
Katalog Hologres
Setelah mengonfigurasi katalog Hologres, ikuti langkah-langkah berikut untuk melihat metadatanya.
-
Buka halaman Catalogs.
-
Login ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console.
-
Di panel navigasi kiri, klik Catalogs.
-
-
Pada halaman Catalog List, temukan katalog Anda berdasarkan Name dan Type.
Klik View untuk melihat database dan tabel dalam katalog. Jika skema bersifat public, nama tabel muncul tanpa awalan skema.
Gunakan Katalog Hologres
Catatan:
-
Jika skema bersifat public, saat Anda memasukkan ${schema_name.table_name}, Anda dapat menghilangkan awalan nama skema dan langsung memasukkan nama tabel sebagai ${table_name}.
-
Tabel dalam Katalog Hologres dapat mengonsumsi data
UPDATE. Untuk tabel-tabel ini, propertiignoredeletesecara default bernilaifalsedan propertimutatetypesecara default bernilaiinsertorupdate. Untuk informasi selengkapnya tentang properti ini, lihat Gabungkan data ke tabel lebar dan perbarui data secara parsial.
Buat tabel Hologres
Contoh ini membuat tabel bernama holotable dalam database holodb pada katalog holocatalog.
-
Saat membuat tabel dalam layanan data Hologres terdaftar, parameter
connectorwajib dicantumkan dalam klausaWITH, dan nilainya harushologres. Anda dapat menghilangkan parameter lain sepertiendpoint. -
Anda tidak dapat langsung menambahkan atau memodifikasi parameter
WITHyang didukung dalam tabel Hologres. Untuk menambahkan atau memodifikasi parameter ini, gunakan Petunjuk SQL dalam pernyataanINSERT.
UI
-
Buka halaman Catalogs.
-
Login ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console.
-
Klik Catalogs.
-
-
Buka database target.
-
Pada kolom Actions katalog target, klik View.
-
Pada kolom Actions database target, klik View.
-
-
Buat tabel Hologres.
-
Klik Create Table.
-
Pada tab Built-in, pilih konektor Hologres dan klik Next.
-
Masukkan pernyataan
CREATE TABLEdan konfigurasikan parameter. Kode berikut merupakan contohnya.Sintaks
Contoh
CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` ( ... ) WITH ( 'connector' = 'hologres' );CREATE TABLE `holocatalog`.`holo_test`.`product` ( id INT, name STRING ) WITH ( 'connector' = 'hologres' ); -
Klik OK.
-
SQL
-
Pada editor di halaman Data Query, masukkan pernyataan
CREATE TABLE.Anda dapat membuat tabel Hologres dengan salah satu cara berikut:
USE CATALOGGunakan pernyataan USE untuk mereferensikan Katalog Hologres.
Sintaks
Contoh
USE CATALOG ${catalog_name}; CREATE TABLE `${db_name}`.`${schema_name.table_name}`( ... ) WITH ( 'connector' = 'hologres' );USE CATALOG holocatalog; CREATE TABLE `holodb`.`holotable` ( id INT, name STRING ) WITH ( 'connector' = 'hologres' );DDL
Referensikan Katalog Hologres dalam pernyataan DDL.
Sintaks
Contoh
CREATE TABLE `${catalog_name}`.`${db_name}`.`${schema_name.table_name}`( ... ) WITH ( 'connector' = 'hologres' );CREATE TABLE `holocatalog`.`holodb`.`holotable` ( id INT, name STRING ) WITH ( 'connector' = 'hologres' );Anda juga dapat mengatur properti tabel fisik dalam pernyataan DDL.
CREATE TABLE `holocatalog`.`holodb`.`holotable` ( id INT, name STRING ) WITH ( 'connector' = 'hologres', 'table_property.orientation' = 'column', 'table_property.distribution_key' = 'a', 'table_property.clustering_key' = 'b:desc', 'table_property.bitmap_columns' = 'a,b', 'table_property.segment_key' = 'c', 'table_property.time_to_live_in_seconds' = '86400', 'table_property.binlog.level' = 'replica', 'table_property.binlog.ttl' = '86400' ); -
Setelah memasukkan pernyataan, klik Run di pojok kanan atas untuk membuat tabel.
Saat membuat tabel Hologres, Anda dapat menentukan properti tabel dalam klausa WITH. Beberapa properti tidak dapat diubah nanti. Mengatur properti ini dengan benar meningkatkan organisasi data dan kinerja kueri.
-
Properti tabel fisik: Properti yang didukung konsisten dengan yang ada di Hologres, kecuali Anda harus menambahkan awalan
table_property.. Untuk informasi selengkapnya tentang parameter, lihat Ikhtisar pembuatan tabel dan Berlangganan binlog Hologres.Parameter
Deskripsi
Contoh
Dapat Diubah
table_property.orientation
Menentukan format penyimpanan tabel.
'table_property.orientation' = 'row,column'
Tidak
table_property.table_group
Menentukan kelompok tabel.
'table_property.table_group' = 'table_group_xxx'
table_property.distribution_key
Menentukan kunci distribusi.
'table_property.distribution_key' = 'a,b'
table_property.clustering_key
Menentukan kunci pengelompokan.
'table_property.clustering_key' = 'a,b:desc'
table_property.event_time_column (sebelumnya table_property.segment_key)
Menentukan kunci segmen.
'table_property.event_time_column' = 'c,d' (atau 'table_property.segment_key' = 'c,d')
table_property.bitmap_columns
Menentukan indeks bitmap.
'table_property.bitmap_columns' = 'a:on,b:off'
Ya
table_property.dictionary_encoding_columns
Menentukan encoding kamus.
'table_property.dictionary_encoding_columns' = 'a:on,b:off,c:auto'
table_property.time_to_live_in_seconds
Menentukan masa hidup data (TTL) tabel.
'table_property.time_to_live_in_seconds' = '864000'
table_property.binlog.level
Menentukan apakah binlog diaktifkan.
'table_property.binlog.level' = 'replica'
table_property.binlog.ttl
Menentukan TTL binlog.
'table_property.binlog.ttl' = '86400'
-
Parameter mode lenient: Untuk mengaktifkan mode lenient saat membuat tabel dengan katalog Hologres, atur parameter enableTypeNormalization. Dalam pekerjaan ingesti data Flink CDC, aktifkan mode lenient dengan mengatur
sink.type-normalize-strategy.Item
Deskripsi
Kasus penggunaan
Dalam skenario sinkronisasi data, Anda mungkin perlu menyesuaikan presisi tipe data field yang ada (misalnya, dari VARCHAR(10) ke VARCHAR(20)) atau mengubah tipe data (misalnya, dari SMALLINT ke INT).
Catatan
-
Anda harus mengaktifkan mode lenient saat menjalankan pekerjaan untuk pertama kali. Jika Anda tidak mengaktifkan mode lenient pada saat pertama kali dijalankan, Anda harus menghapus tabel downstream dan melakukan restart tanpa status agar perubahan berlaku.
-
Setelah Anda mengaktifkan mode lenient, jika tipe data upstream berubah, pekerjaan tetap berjalan selama tipe baru dan asli memiliki tipe ternormalisasi yang sama. Jika tidak, tipe tersebut dianggap tidak kompatibel, dan pekerjaan melemparkan exception.
Nilai
-
false(default): Membuat tabel fisik Hologres berdasarkan pemetaan tipe standar. -
true: Mode lenient diaktifkan. Saat tabel fisik Hologres dibuat, tipe data dengan presisi lebih tinggi digunakan setelah normalisasi tipe. Aturan normalisasi tipe saat ini adalah sebagai berikut:-
TINYINT, SMALLINT, INT, dan BIGINT dinormalisasi menjadi BIGINT.
-
CHAR, VARCHAR, dan STRING dinormalisasi menjadi STRING.
-
FLOAT dan DOUBLE dinormalisasi menjadi DOUBLE.
-
Tipe data lainnya dibuat berdasarkan aturan pemetaan tipe asli. Untuk informasi selengkapnya, lihat Pemetaan tipe.
-
-
Ubah tabel Hologres
Katalog Hologres mendukung operasi modifikasi tabel berikut:
|
Aksi |
Sintaks dan Contoh |
|
Ubah properti tabel |
Hanya beberapa properti tabel yang dapat diubah. Untuk informasi selengkapnya, lihat Buat tabel Hologres.
|
|
Ubah nama tabel |
|
|
Tambah kolom |
|
|
Ubah nama kolom |
|
|
Ubah komentar kolom |
|
Baca dan tulis tabel Hologres
-
Baca data dari tabel Hologres dan tulis ke tabel sink.
Secara default, Flink membaca tabel source Hologres dalam mode batch dan tidak memproses data baru secara real-time. Untuk mengalirkan data dari Hologres secara real-time, gunakan salah satu metode berikut:
-
Konfigurasi Katalog Hologres saat pembuatan: Saat membuat katalog menggunakan SQL, Anda dapat mengaktifkan binlog untuk mengonsumsi data binlog. Untuk informasi selengkapnya, lihat Contoh konsumsi real-time. Lalu, baca data Hologres. Kode berikut memberikan contohnya.
Sintaks
Contoh
INSERT INTO ${other_sink_table} SELECT ... FROM `${catalog_name}`.`${db_name}`.`${schema_name.table_name}`;INSERT INTO sink_table SELECT id, name FROM `holocatalog`.`holodb`.`holotable`; -
Ubah ke mode stream menggunakan petunjuk tabel. Tambahkan petunjuk
/*+ OPTIONS('binlog'='true') */ke pernyataan SQL. Kode berikut memberikan contohnya.INSERT INTO sinktable SELECT id, name FROM `holocatalog`.`holodb`.`holotable` /*+ OPTIONS ('binlog' = 'true') */;
-
-
Tulis data dari tabel source ke tabel Hologres.
Sintaks
Contoh
INSERT INTO `${catalog_name}`.`${db_name}`.`${schema_name.table_name}` SELECT ... FROM ${other_source_table}INSERT INTO `holocatalog`.`holodb`.`holotable` SELECT id, name FROM source_table;
Tujuan ingesti data Flink CDC
-
Contoh
source: type: mysql using.built-in-catalog: mysql_rds_catalog tables: tpcds.web_sales server-id: <server id> sink: type: hologres using.built-in-catalog: hologres_catalog
Pekerjaan ingesti data Flink CDC memungkinkan Anda mengatur properti tabel fisik pada sink. Properti ini diatur saat tabel tujuan dibuat. Untuk informasi selengkapnya tentang properti tabel yang didukung, lihat Buat tabel Hologres.
Selama sinkronisasi data dari source, Katalog Hologres dapat menulis ulang skema tabel tujuan untuk memastikan data dapat ditulis ke Hologres. Hal ini terjadi dalam kasus berikut:
-
Skema source menggunakan kolom bertipe DECIMAL sebagai primary key.
Karena Hologres tidak mendukung DECIMAL sebagai primary key, kolom tersebut secara default ditulis ulang menjadi BIGINT. Jika perubahan ini tidak sesuai kebutuhan Anda, Anda dapat menggunakan modul transform untuk mengubah tipe kolom yang direferensikan menjadi STRING dan membuat ulang primary key.
-
Skema source berisi kolom bertipe TIME, TIMESTAMP, atau TIMESTAMP_LTZ dengan presisi lebih dari 6.
Hologres mendukung presisi hingga 6 untuk tipe waktu. Untuk memastikan data dapat ditulis ke Hologres, Flink secara implisit membuang digit yang melebihi presisi maksimum yang didukung Hologres.
Hapus katalog Hologres
Menghapus katalog Hologres tidak memengaruhi pekerjaan yang sedang berjalan, tetapi memengaruhi pekerjaan yang belum dipublikasikan atau pekerjaan yang memerlukan jeda dan dilanjutkan kembali. Lakukan dengan hati-hati.
UI
-
Buka halaman Catalogs.
-
Login ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console.
-
Di panel navigasi kiri, klik Catalogs.
-
-
Pada halaman Catalog List, temukan katalog target dan klik Delete pada kolom Actions.
-
Pada dialog konfirmasi, klik Delete.
-
Konfirmasi bahwa katalog target tidak lagi muncul di bagian Catalogs di sebelah kiri.
Flink SQL
-
Pada editor teks di halaman Data Query, masukkan perintah berikut.
DROP CATALOG ${catalog_name}Di mana
${catalog_name}adalah nama Katalog Hologres yang akan dihapus, sebagaimana ditampilkan di Konsol Realtime Compute for Apache Flink. -
Pilih perintah tersebut, klik kanan, lalu pilih Run.
-
Konfirmasi bahwa katalog target tidak lagi muncul di bagian Catalogs di sebelah kiri.
FAQ
-
Konsumsi data Hologres real-time: Apa yang harus dilakukan ketika pekerjaan yang membaca dari tabel source Hologres menggunakan Katalog Hologres selesai secara otomatis alih-alih berjalan terus-menerus?
-
Permasalahan konektivitas jaringan: Bagaimana cara menemukan endpoint instans Hologres?
-
Batasan penyimpanan source dan sink: Mengapa saya menerima error "CREATE TABLE ... AS TABLE ... statement requires target catalog ... implements org.apache.flink.table.catalog.CatalogTableProvider interface."?
Dokumen terkait
-
Parameter WITH Hologres: Parameter WITH
-
Kasus penggunaan Katalog Hologres: