Topik ini menjawab beberapa pertanyaan umum terkait kesalahan katalog.
Ketika membaca data dari Hologres melalui Hologres Catalog, Flink secara otomatis mengakhiri pekerjaan tanpa mengonsumsi data secara real time. Apa yang harus saya lakukan?
Penyebab
Secara default, Realtime Compute for Apache Flink membaca data dari Hologres dalam mode batch, bukan secara real time.
Solusi
Untuk mengubah mode eksekusi menjadi mode aliran, tambahkan petunjuk
/*+ OPTIONS('binlog'='true') */di skrip SQL Anda, seperti yang ditunjukkan berikut ini:INSERT INTO testfinish SELECT col1, col2, col3 FROM testsource /*+ OPTIONS ('binlog' = 'true') */ LEFT JION testdim /*+ OPTIONS ('binlog' = 'true') */ ON testsource.co11 = testdim.'col1';
Apa yang harus saya lakukan jika pesan kesalahan "CREATE TABLE ... AS TABLE ... statement requires target catalog ... implements org.apache.flink.table.catalog.CatalogTableProvider interface." muncul?
Deskripsi Masalah
org.apache.flink.table.api.ValidationException: Validasi SQL gagal. CREATE TABLE ... AS TABLE ... statement requires target catalog 'XXXXXX' (MongoDBCatalog) implements org.apache.flink.table.catalog.CatalogTableProvider interface. Petunjuk: Silakan lihat dokumen dan gunakan katalog lain yang mendukung evolusi skema sebagai katalog target.Penyebab
Sistem penyimpanan upstream dan downstream yang digunakan tidak didukung oleh pernyataan CREATE TABLE AS. Sebagai contoh, tabel dari katalog MongoDB tidak dapat digunakan sebagai tabel sink untuk menulis data ketika menggunakan pernyataan CREATE TABLE AS untuk membuat deployment.
Solusi
Gunakan sistem penyimpanan upstream dan downstream yang didukung oleh pernyataan CREATE TABLE AS. Untuk informasi lebih lanjut, lihat CREATE TABLE AS (CTAS). Anda dapat menggunakan tabel sumber dan tabel sink yang didukung oleh pernyataan CREATE TABLE AS.
Apa yang harus saya lakukan jika informasi tentang katalog MySQL diperoleh dengan kecepatan rendah atau pengecualian server dikembalikan selama kueri?
Deskripsi Masalah
Setelah membuat katalog MySQL, informasi tentang katalog MySQL diperoleh dengan kecepatan rendah atau pengecualian server dikembalikan selama kueri. Gambar berikut menunjukkan detail kesalahan.

Penyebab
Masalah ini mungkin disebabkan oleh latensi jaringan tinggi antara Flink dan MySQL, atau oleh pemutusan koneksi yang sering terjadi.
Solusi
Anda dapat menggunakan salah satu metode berikut untuk menyelesaikan masalah:
Periksa apakah bandwidth publik dari Realtime Compute for Apache Flink ke MySQL mencukupi. Sebagai contoh, nilai default bandwidth publik mungkin hanya 2 Mbit/s. Selain itu, periksa apakah Akses lintas wilayah dilakukan. Untuk informasi lebih lanjut, lihat Bagaimana cara melihat bandwidth publik?
Jika koneksi jaringan Anda tidak stabil, tingkatkan nilai parameter
interactive_timeoutdanwait_timeoutyang terkait dengan instance MySQL.Tambahkan konfigurasi
'connect.timeout'='120s'ke klausa WITH saat membuat tabel untuk katalog MySQL.
Apa yang harus saya lakukan jika pesan kesalahan "Cannot obtain STS token from EMR meta-service." muncul?
Deskripsi Masalah
Caused by: MetaException(message:Initialize DlfMetaStoreClient failed: Initialize DlfMetaStoreClient failed: Cannot obtain STS token from EMR meta-service. Perhatikan bahwa AK-Mode[dlf.catalog.akMode] hanya dapat digunakan di kluster EMR, jika tidak, Anda harus mengonfigurasi dlf.catalog.accessKeyId dan dlf.catalog.accessKeySecret secara eksplisit.) at com.aliyun.datalake.metastore.hive2.ProxyMetaStoreClient.createClient(ProxyMetaStoreClient.java:91) at com.aliyun.datalake.metastore.hive2.ProxyMetaStoreClient.<init>(ProxyMetaStoreClient.java:71) ... 41 morePenyebab
File konfigurasi tidak valid, sehingga menyebabkan kesalahan selama inisialisasi katalog Hive.
Solusi
Temukan file hive-site.xml di direktori hive-conf-dir dan hapus informasi properti berikut dari file hive-site.xml:
<property> <name>dlf.catalog.akMode</name> <value>EMR_AUTO</value> </property>Konfigurasikan ID AccessKey dan Rahasia AccessKey untuk katalog Hive.
<property> <name>dlf.catalog.accessKeyId</name> <value>${AccessKeyId}</value> </property> <property> <name>dlf.catalog.accessKeySecret</name> <value>${AccessKeySecret}</value> </property>