Setelah mengonfigurasi katalog MaxCompute, Anda dapat langsung mengakses tabel yang disimpan di MaxCompute selama pengembangan pekerjaan di Flink yang sepenuhnya dikelola tanpa perlu mendefinisikan skema tabel. Topik ini menjelaskan cara membuat, melihat, menggunakan, dan menghapus katalog MaxCompute di Flink yang sepenuhnya dikelola.
Informasi latar belakang
Katalog MaxCompute melakukan kueri ke layanan MaxCompute untuk mengambil informasi skema tabel fisik yang disimpan di MaxCompute. Hal ini memungkinkan Anda mengambil informasi bidang tertentu tanpa perlu mendeklarasikan skema tabel MaxCompute dalam Flink SQL. Katalog MaxCompute memiliki fitur-fitur berikut:
Nama database dalam katalog MaxCompute sesuai dengan nama proyek MaxCompute. Anda dapat beralih antar database untuk menggunakan tabel dari proyek MaxCompute yang berbeda.
Nama tabel dalam katalog MaxCompute sesuai dengan nama tabel fisik yang disimpan di MaxCompute. Tipe data dipetakan secara otomatis. Anda tidak perlu mendaftarkan tabel MaxCompute secara manual menggunakan pernyataan Data Definition Language (DDL). Hal ini meningkatkan efisiensi dan akurasi pengembangan.
Tabel yang disediakan oleh katalog dapat langsung digunakan sebagai tabel sumber, tabel dimensi, dan tabel sink dalam pekerjaan Flink SQL.
Saat Anda membuat tabel dalam katalog MaxCompute, tabel fisik yang sesuai akan dibuat secara otomatis di layanan MaxCompute. Tipe data juga dipetakan secara otomatis. Hal ini meningkatkan efisiensi pengembangan.
Topik ini menjelaskan cara mengelola katalog MaxCompute melalui langkah-langkah berikut:
Batasan
Hanya mesin komputasi Flink yang menggunakan Ververica Runtime (VVR) 6.0.7 atau versi lebih baru yang mendukung konfigurasi katalog MaxCompute.
Anda tidak dapat membuat database—yang merupakan proyek di MaxCompute—dalam katalog MaxCompute.
Anda tidak dapat memodifikasi skema tabel dalam katalog MaxCompute.
Katalog MaxCompute tidak mendukung pernyataan CREATE TABLE AS (CTAS).
Buat Katalog MaxCompute
Anda dapat mengonfigurasi katalog MaxCompute menggunakan UI atau perintah SQL. Metode UI direkomendasikan.
Gunakan UI (Direkomendasikan)
Buka halaman Data Management.
Login ke Konsol Realtime Compute for Apache Flink, lalu di kolom Actions ruang kerja target, klik Console.
Klik Data Management.
Klik Create Catalog, pilih ODPS, lalu klik Next.
Masukkan pengaturan parameter.
PentingSetelah katalog dibuat, Anda tidak dapat mengubah parameter berikut. Untuk melakukan perubahan, Anda harus menghapus katalog yang ada dan membuat yang baru.

Parameter
Deskripsi
Tipe
Wajib
Keterangan
catalog name
Nama Katalog MaxCompute.
String
Ya
Masukkan nama kustom dalam bahasa Inggris.
endpoint
Titik akhir untuk koneksi layanan MaxCompute.
String
Ya
Untuk informasi lebih lanjut tentang situs, lihat Endpoint.
accessId
ID AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses layanan MaxCompute.
String
Ya
Akun ini harus memiliki izin admin pada proyek yang akan diakses oleh katalog.
accessKey
Rahasia AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses layanan MaxCompute.
String
Ya
Tidak ada.
project
Nama proyek MaxCompute yang akan digunakan sebagai database default dalam katalog.
String
Tidak
Jika Anda tidak mengatur parameter ini, proyek default adalah `default`.
CatatanSetelah katalog dibuat, metadata akan menampilkan proyek yang Anda masukkan dan proyek yang dibuat oleh Akun Alibaba Cloud yang ditentukan.
catalog.schema.enabled
Menentukan apakah akan memetakan database dalam konsep Flink Catalog ke level skema.
Boolean
Tidak
Skema adalah mekanisme yang digunakan untuk mengklasifikasikan tabel, resource, dan user-defined function (UDF) dalam suatu proyek. Satu proyek dapat berisi beberapa skema. Untuk informasi lebih lanjut, lihat Operasi skema.
Parameter ini dapat diatur ke nilai-nilai berikut:
false (default): Database dalam konsep Flink Catalog dipetakan ke proyek MaxCompute. Ini berlaku untuk layanan MaxCompute yang fitur skemanya dinonaktifkan.
true: Database dalam konsep Flink Catalog dipetakan ke skema MaxCompute. Ini berlaku untuk layanan MaxCompute yang fitur skemanya diaktifkan.
Klik OK.
Anda dapat melihat katalog yang telah dibuat di bawah Metadata.
PentingJika ID AccessKey dan rahasia AccessKey yang digunakan untuk membuat katalog tidak memiliki izin untuk suatu proyek, informasi proyek tersebut tidak akan muncul dalam metadata. Hal ini tidak memengaruhi kemampuan Anda untuk membaca dari atau menulis ke katalog.
Gunakan perintah SQL
Di editor teks pada halaman Data Query, masukkan perintah untuk mengonfigurasi katalog MaxCompute.
CREATE CATALOG `<catalogName>` WITH ( 'type' = 'odps', 'endpoint' = '<odpsEndpoint>', 'accessId' = '<aliyunAccountAccessId>', 'accessKey' = '<aliyunAccountAccessKey>', 'project' = '<defaultProject>', 'userAccount' = '<RAMUserAccount>' );Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
Tipe
Wajib
Keterangan
catalogName
Nama Katalog MaxCompute.
String
Ya
Masukkan nama kustom dalam bahasa Inggris.
type
Tipe katalog.
String
Ya
Nilainya tetap `odps`.
endpoint
Titik akhir untuk koneksi layanan MaxCompute.
String
Ya
Untuk informasi lebih lanjut tentang situs, lihat Endpoint.
accessId
ID AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses layanan MaxCompute.
String
Ya
Akun ini harus memiliki izin admin pada proyek yang akan diakses oleh katalog.
accessKey
Rahasia AccessKey Akun Alibaba Cloud yang digunakan untuk mengakses layanan MaxCompute.
String
Ya
Tidak ada.
project
Nama proyek MaxCompute yang akan digunakan sebagai database default dalam katalog.
String
Tidak
Jika Anda tidak mengatur parameter ini, proyek default adalah `default`.
userAccount
Nama Akun Alibaba Cloud atau pengguna Resource Access Management (RAM).
String
Tidak
Jika AccessKey milik pengguna RAM dan bukan Akun Alibaba Cloud, serta pengguna RAM tersebut hanya memiliki izin admin pada beberapa proyek di bawah Akun Alibaba Cloud, atur parameter ini ke nama akun. Misalnya,
RAM$[<account_name>:]<RAM_name>. Katalog MaxCompute kemudian hanya akan menampilkan daftar proyek yang memiliki izin untuk akun tersebut.Untuk informasi lebih lanjut tentang pengelolaan izin pengguna MaxCompute, lihat Perencanaan dan pengelolaan pengguna.
Pilih kode untuk membuat katalog dan klik Run di sebelah kiri, di samping nomor baris.

Lihat Katalog MaxCompute
Gunakan UI (Direkomendasikan)
Buka halaman Data Management.
Login ke Konsol Realtime Compute for Apache Flink.
Di kolom Actions ruang kerja target, klik Console.
Klik Data Management.
Pada halaman Catalog List, Anda dapat melihat Catalog Name dan Type.
Klik View untuk melihat database dan tabel dalam katalog target.
Gunakan perintah SQL
Di editor teks pada halaman Data Query, masukkan perintah berikut:
DESCRIBE `<catalogName>`.`<projectName>`.`<tableName>`;Parameter
Deskripsi
catalogName
Nama Katalog MaxCompute.
projectName
Nama proyek di MaxCompute.
tableName
Nama tabel fisik yang disimpan di MaxCompute.
Pilih kode untuk melihat katalog dan klik Run, yang berada di sebelah kiri di samping nomor baris.
Setelah perintah berhasil dieksekusi, informasi skema tabel fisik MaxCompute di Flink akan ditampilkan di bagian hasil di bawah editor.
Gunakan Katalog MaxCompute
Buat tabel fisik MaxCompute menggunakan katalog
Saat Anda menggunakan pernyataan DDL Flink SQL untuk membuat tabel dalam katalog MaxCompute, tabel fisik yang sesuai akan dibuat secara otomatis di proyek MaxCompute yang sesuai. Tipe data Flink dikonversi secara otomatis ke tipe data MaxCompute. Anda dapat membuat tabel non-partisi dan tabel partisi.
Contoh pembuatan tabel non-partisi:
CREATE TABLE `<catalogName>`.`<projectName>`.`<tableName>` (
f0 INT,
f1 BIGINT,
f2 DOUBLE,
f3 STRING
);Setelah pernyataan dieksekusi, Anda dapat melihat tabel tersebut di proyek MaxCompute yang sesuai. Tabel non-partisi dengan nama yang ditentukan dibuat. Nama kolom dan tipe datanya sesuai dengan yang ada dalam pernyataan DDL Flink.
Contoh pembuatan tabel partisi:
CREATE TABLE `<catalogName>`.`<projectName>`.`<tableName>` (
f0 INT,
f1 BIGINT,
f2 DOUBLE,
f3 STRING,
ds STRING
) PARTITIONED BY (ds);Tambahkan kolom kunci partisi di akhir skema dalam pernyataan DDL Flink dan deklarasikan nama kolom kunci partisi dalam klausa PARTITIONED BY. Setelah pernyataan dieksekusi, lihat tabel tersebut di proyek MaxCompute yang sesuai. Tabel partisi dengan nama yang ditentukan dibuat. Kolom biasanya adalah f0, f1, f2, dan f3, sedangkan kolom kunci partisinya adalah ds.
Nama kolom di MaxCompute semuanya huruf kecil, tetapi nama kolom di Flink bersifat case-sensitive. Jika nama kolom dalam pernyataan DDL mengandung huruf kapital, nama tersebut akan dikonversi secara otomatis menjadi huruf kecil. Jika pernyataan DDL mengandung beberapa kolom dengan nama yang sama setelah dikonversi menjadi huruf kecil, sistem akan melaporkan error.
Baca data dari tabel Katalog MaxCompute
Katalog MaxCompute dapat mengambil skema tabel fisik dari layanan MaxCompute. Oleh karena itu, Anda dapat langsung membaca data tanpa perlu mendeklarasikan skema yang sesuai di Flink. Contohnya:
SELECT * FROM `<catalogName>`.`<projectName>`.`<tableName>`;Perilaku default saat tidak ada parameter yang dideklarasikan adalah membaca semua partisi. Untuk membaca partisi tertentu atau menggunakan mode tabel sumber inkremental, Anda dapat mendeklarasikan parameter dalam komentar SQL. Untuk informasi lebih lanjut tentang pengaturan parameter, lihat MaxCompute. Contohnya:
Baca partisi tertentu:
SELECT * FROM `<catalogName>`.`<projectName>`.`<tableName>`
/*+ OPTIONS('partition' = 'ds=230613') */;Gunakan mode tabel sumber inkremental:
SELECT * FROM `<catalogName>`.`<projectName>`.`<tableName>`
/*+ OPTIONS('startPartition' = 'ds=230613') */;Gunakan mode tabel dimensi:
SELECT * FROM `<anotherTable>` AS l LEFT JOIN
`<catalogName>`.`<projectName>`.`<tableName>`
/*+ OPTIONS('partition' = 'max_pt()', 'cache' = 'ALL') */
FOR SYSTEM_TIME AS OF l.proc_time AS r
ON l.id = r.id;Parameter lain untuk tabel sumber dan tabel dimensi yang didukung di MaxCompute dapat diatur dengan cara ini. Namun, perhatikan bahwa katalog MaxCompute tidak menyimpan informasi watermark. Untuk menentukan watermark saat membaca data dari tabel sumber, gunakan pernyataan CREATE TABLE ... LIKE .... Contohnya:
CREATE TABLE `<newTable>` ( WATERMARK FOR ts AS ts )
LIKE `<catalogName>`.`<projectName>`.`<tableName>`;`ts` adalah kolom bertipe DATETIME dalam tabel fisik MaxCompute. Tipe ini dapat diatur sebagai event time di Flink, dan watermark dapat ditambahkan. Setelah tabel dibuat, semua data yang dibaca dari `newTable` memiliki watermark.
Tulis data ke tabel Katalog MaxCompute
Katalog MaxCompute mendukung penulisan data dalam mode partisi statis atau dinamis. Untuk informasi lebih lanjut, lihat MaxCompute. Misalnya, jika tabel fisik MaxCompute memiliki subpartisi `ds` dan `hh`, Anda dapat menggunakan pernyataan berikut untuk menulis data:
-- Tulis ke partisi statis
INSERT INTO `<catalogName>`.`<projectName>`.`<tableName>`
/*+ OPTIONS('partition' = 'ds=20231024,hh=09') */
SELECT <otherColumns>, '20231024', '09' FROM `<anotherTable>`;
-- Tulis ke partisi dinamis
INSERT INTO `<catalogName>`.`<projectName>`.`<tableName>`
/*+ OPTIONS('partition' = 'ds,hh') */
SELECT <otherColumns>, ds, hh FROM `<anotherTable>`;Dalam pernyataan SELECT, kolom kunci partisi harus ditempatkan setelah kolom biasa lainnya sesuai urutan tingkat partisinya.
Hapus Katalog MaxCompute
Menghapus katalog MaxCompute tidak memengaruhi pekerjaan yang sedang berjalan. Namun, pekerjaan yang menggunakan tabel dari katalog ini akan melaporkan error "table not found" saat dipublikasikan atau dimulai ulang. Lakukan dengan hati-hati.
Metode UI
Buka halaman Data Management.
Login ke Konsol Realtime Compute for Apache Flink.
Di kolom Actions ruang kerja target, klik Console.
Klik Data Management.
Pada halaman Catalog List, temukan katalog yang akan dihapus dan klik Delete di kolom Actions.
Pada kotak dialog yang muncul, klik Delete.
CatatanSetelah penghapusan selesai, katalog target dihapus dari area Metadata di sebelah kiri.
Gunakan perintah SQL
Di editor teks pada halaman Data Query, masukkan perintah berikut.
DROP CATALOG `<catalogName>`;`<catalogName>` adalah nama katalog MaxCompute target yang ingin Anda hapus.
PeringatanMenghapus katalog MaxCompute tidak memengaruhi pekerjaan yang sedang berjalan. Namun, tindakan ini memengaruhi pekerjaan yang belum online atau pekerjaan yang perlu dijeda dan dilanjutkan. Lakukan dengan hati-hati.
Pilih perintah hapus katalog, klik kanan, lalu pilih Run.
Di area Metadata di sebelah kiri, verifikasi bahwa katalog target telah dihapus.
Pemetaan tipe antara MaxCompute dan Flink
Untuk informasi lebih lanjut tentang tipe data yang didukung oleh MaxCompute, lihat Tipe data 2.0.
MaxCompute ke Flink
Saat Anda membaca data dari tabel fisik MaxCompute yang sudah ada, tipe data MaxCompute dari bidang-bidang tersebut dipetakan ke tipe data Flink seperti yang ditunjukkan dalam tabel berikut.
Tipe MaxCompute | Tipe Flink |
BOOLEAN | BOOLEAN |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INT | INTEGER |
BIGINT | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
DECIMAL(precision, scale) | DECIMAL(precision, scale) |
CHAR(n) | CHAR(n) |
VARCHAR(n) | VARCHAR(n) |
STRING | STRING |
BINARY | BYTES |
DATE | DATE |
DATETIME | TIMESTAMP(3) |
TIMESTAMP | TIMESTAMP(9) |
ARRAY | ARRAY |
MAP | MAP |
STRUCT | ROW |
JSON | STRING |
Flink ke MaxCompute
Saat Anda menggunakan pernyataan DDL Flink untuk membuat tabel MaxCompute dalam katalog, tipe data Flink dari bidang-bidang dalam pernyataan DDL tersebut dipetakan ke tipe data MaxCompute seperti yang ditunjukkan dalam tabel berikut.
Tipe Flink | Tipe MaxCompute |
BOOLEAN | BOOLEAN |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
DECIMAL(precision, scale) | DECIMAL(precision, scale) |
CHAR(n) | CHAR(n) |
VARCHAR / STRING | STRING |
BINARY | BINARY |
VARBINARY / BYTES | BINARY |
DATE | DATE |
TIMESTAMP(n<=3) | DATETIME |
TIMESTAMP(3<n<=9) | TIMESTAMP |
ARRAY | ARRAY |
MAP | MAP |
ROW | STRUCT |