Topik ini menjelaskan cara menghubungkan ke katalog Data Lake Formation (DLF) dari ruang kerja Realtime Compute for Apache Flink menggunakan Flink SQL dan Paimon REST.
Prasyarat
-
Anda telah memiliki ruang kerja fully managed untuk Realtime Compute for Apache Flink. Jika belum, lihat Aktifkan Realtime Compute for Apache Flink.
-
Pastikan ruang kerja Realtime Compute for Apache Flink dan DLF berada di Wilayah yang sama, serta VPC ruang kerja telah ditambahkan ke daftar putih DLF. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih VPC.
Batasan
Hanya Ververica Runtime (VVR) versi 11.1.0 atau lebih baru yang mendukung koneksi ke katalog DLF.
Buat katalog DLF
Untuk informasi selengkapnya, lihat Memulai dengan DLF .
Daftarkan katalog di Flink
Operasi ini hanya memetakan katalog DLF sebagai metadata. Pembuatan atau penghapusan katalog ini di Realtime Compute for Apache Flink tidak memengaruhi data dasar di DLF.
-
Masuk ke Konsol Realtime Compute.
-
Pada daftar ruang kerja fully managed, klik nama ruang kerja Anda untuk membuka konsolnya.
-
Anda dapat mendaftarkan katalog melalui UI atau dengan menjalankan perintah SQL.
UI
-
Di panel navigasi kiri, klik Catalogs.
-
Di halaman Catalog List, klik Create Catalog.
-
Pilih Apache Paimon, lalu klik Next.
-
Atur metastore menjadi dlf. Untuk catalog name, pilih katalog DLF yang diinginkan, lalu klik OK untuk membuat katalog.
Perintah SQL
Di editor Scripts, masukkan dan jalankan pernyataan SQL berikut untuk membuat katalog.
CREATE CATALOG `flink_catalog_name` WITH ( 'type' = 'paimon', 'metastore' = 'rest', 'token.provider' = 'dlf', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com', 'warehouse' = 'dlf_test' );Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
Wajib
Contoh
type
Jenis katalog. Parameter ini tetap diatur ke
paimon.Ya
paimon
metastore
Jenis metastore. Parameter ini tetap diatur ke
rest.Ya
rest
token.provider
Penyedia token. Parameter ini tetap diatur ke
dlf.Ya
dlf
uri
URI untuk mengakses DLF REST Catalog Server. Formatnya adalah
http://[region-id]-vpc.dlf.aliyuncs.com. Untuk informasi lebih lanjut tentang ID wilayah, lihat Endpoints.Ya
http://cn-hangzhou-vpc.dlf.aliyuncs.com
warehouse
Nama katalog DLF dasar yang akan digunakan sebagai warehouse.
Ya
dlf_test
-
Error umum
java.lang.NullPointerException
-
Contoh jejak stack:
Caused by: java.lang.NullPointerException at org.apache.paimon.rest.HttpClient.getRequestUrl(HttpClient.java:180) at org.apache.paimon.rest.HttpClient.get(HttpClient.java:108) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141) at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36) at org.apache.paimon.catalog.CatalogFactory.createUnwrappedCatalog(CatalogFactory.java:84) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:71) at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:67) at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:37) at org.apache.flink.table.gateway.vvr.module.delegation.CatalogFactoryWrapper.createCatalog(CatalogFactoryWrapper.java:91) at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:572) ... 23 more -
Solusi:
Periksa nilai parameter uri dalam konfigurasi katalog Anda. Nilainya harus dimulai dengan
http://.
ForbiddenException: You are not authorized to do this operation
-
Contoh jejak stack:
Caused by: org.apache.paimon.rest.exceptions.ForbiddenException: Forbidden: You are not authorized to do this operation. Action: dlf:GetConfig. AccessDeniedDetail : {"AuthAction":"dlf:GetConfig","AuthPrincipalType":"AssumedRoleUser","AuthPrincipalOwnerId":"xxxxx","AuthPrincipalDisplayName":"aliyunstreamasidefaultrole:xxxxx","PolicyType":"AccountLevelIdentityBasedPolicy","NoPermissionType":"ImplicitDeny"} requestId:xxxxx at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:59) at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:35) at org.apache.paimon.rest.HttpClient.exec(HttpClient.java:205) at org.apache.paimon.rest.HttpClient.get(HttpClient.java:112) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141) at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36 -
Solusi:
Berikan kebijakan AliyunDLFFullAccess kepada role AliyunStreamAsiDefaultRole. Langkah ini mungkin tidak diperlukan lagi pada pembaruan Produk mendatang.
-
Masuk ke Konsol RAM menggunakan Akun Alibaba Cloud Anda atau sebagai administrator RAM.
-
Di panel navigasi kiri, buka , lalu temukan role AliyunStreamAsiDefaultRole.
-
Di kolom Actions, klik Grant Permission.
-
Di bagian Policy, cari dan pilih kebijakan AliyunDLFFullAccess, lalu klik Grant Permissions.
-