ApsaraDB for SelectDB mendukung federated queries di berbagai sumber data eksternal, termasuk data lake, database, dan file remote.
Ikhtisar
ApsaraDB for SelectDB menyediakan fitur multi-source data catalog (juga dikenal sebagai Multi-Catalog atau Catalog) yang memungkinkan Anda terhubung ke sumber data eksternal seperti data lake dan database untuk analisis data yang sederhana dan cepat. Fitur ini menambahkan lapisan Catalog di atas hierarki metadata asli sehingga membentuk struktur metadata tiga tingkat: Catalog -> Database -> Table. Setiap Catalog dapat langsung dipetakan ke sumber data eksternal. Untuk informasi lebih lanjut mengenai sumber data eksternal yang didukung, lihat Analisis data lake dan Analisis database.
ApsaraDB for SelectDB juga menyediakan table-valued functions (TVF) yang memetakan data file dari sistem penyimpanan remote seperti Amazon S3 dan HDFS ke tabel yang dapat dikueri, sehingga menyederhanakan analisis berbasis file. Untuk informasi lebih lanjut, lihat Analisis file.
Dengan Catalog, ApsaraDB for SelectDB dapat mengintegrasikan dan mengkueri sumber data eksternal bersamaan dengan data internal, memungkinkan analisis fleksibel lintas gudang data dan sistem penyimpanan.
Jika sumber data eksternal dideploy di internet publik, Virtual Private Cloud (VPC) instans ApsaraDB for SelectDB Anda harus memiliki akses internet outbound. Untuk instruksi konfigurasi, lihat Bagaimana cara mengatasi masalah konektivitas jaringan antara instans ApsaraDB for SelectDB dan sumber data?.
Konsep dan operasi dasar
-
Internal Catalog
Semua database dan tabel yang ada di ApsaraDB for SelectDB termasuk dalam Internal Catalog, yang merupakan default bawaan dan tidak dapat dimodifikasi atau dihapus.
-
External Catalog
Buat External Catalog menggunakan perintah
CREATE CATALOG. Anda kemudian dapat melihat semua Catalog denganSHOW CATALOGSatau melihat pernyataan pembuatan Catalog tertentu denganSHOW CREATE CATALOG <catalog_name>;. -
Beralih Katalog
Setelah Anda login ke ApsaraDB for SelectDB, Internal Catalog aktif secara default. Gunakan perintah
SWITCHuntuk berpindah antar-Catalog:SWITCH internal; SWITCH hive_catalog;Setelah beralih, Anda dapat menggunakan
SHOW DATABASESdanUSE <db_name>untuk menjelajahi dan berpindah database dalam Catalog target. Anda dapat melihat dan mengakses data di External Catalog dengan cara yang sama seperti di Internal Catalog. Saat ini, ApsaraDB for SelectDB hanya mendukung akses read-only ke External Catalog. -
Drop Catalog
Data di External Catalog bersifat read-only, tetapi Anda dapat menghapus Catalog tersebut dengan perintah
DROP CATALOG <catalog_name>;. Internal Catalog tidak dapat di-drop.CatatanOperasi ini hanya menghapus informasi pemetaan Catalog dari ApsaraDB for SelectDB. Operasi ini tidak mengubah sumber data eksternal itu sendiri.
Pemetaan tipe kolom
Saat Anda membuat Catalog, ApsaraDB for SelectDB secara otomatis menyinkronkan database dan tabel dari sumber data eksternal serta memetakan tipe kolom sesuai dengan sumber data dan format tabel.
Tipe data eksternal yang tidak dapat dipetakan, seperti UNION dan INTERVAL, diberi tipe UNSUPPORTED. Contoh berikut menunjukkan perilaku saat mengkueri kolom UNSUPPORTED:
-- Skema tabel yang disinkronkan:
k1 INT,
k2 INT,
k3 UNSUPPORTED,
k4 INT
-- Hasil kueri:
SELECT * FROM testtable; // Error: Unsupported type 'UNSUPPORTED_TYPE' in '`k3`
SELECT * except(k3) FROM testtable; // Kueri berhasil.
SELECT k1, k3 FROM testtable; // Error: Unsupported type 'UNSUPPORTED_TYPE' in '`k3`
SELECT k1, k4 FROM testtable; // Kueri berhasil.
Jalankan SHOW DATA TYPES; untuk melihat tipe data yang didukung oleh ApsaraDB for SelectDB. Untuk tipe data yang didukung oleh sumber eksternal tertentu, lihat Analisis data lake dan Analisis database.
Pengelolaan izin
ApsaraDB for SelectDB menggunakan pengelolaan izin bawaannya, yang diperluas hingga tingkat Catalog, untuk mengontrol akses ke database dan tabel di External Catalog. Untuk informasi lebih lanjut, lihat Pengelolaan izin pengguna.
Menentukan database
Gunakan properti include_database_list dan exclude_database_list dalam konfigurasi Catalog untuk mengontrol database mana yang disinkronkan.
-
include_database_list: Daftar database yang akan disinkronkan, dipisahkan koma. Nama database bersifat case-sensitive. Secara default, semua database disinkronkan. -
exclude_database_list: Daftar database yang tidak disinkronkan, dipisahkan koma. Nama database bersifat case-sensitive. Secara default kosong, artinya tidak ada database yang dikecualikan.
-
Jika suatu database dikonfigurasi di kedua daftar
include_database_listdanexclude_database_list, makaexclude_database_listmemiliki prioritas lebih tinggi. -
Saat terhubung ke sumber Java Database Connectivity (JDBC), Anda harus menggunakan kedua properti ini bersama parameter
only_specified_database. Untuk informasi lebih lanjut, lihat Sumber data JDBC.
Pembaruan metadata
Perubahan metadata di sumber data eksternal, seperti membuat atau menghapus tabel atau menambah/menghapus kolom, tidak disinkronkan secara otomatis ke ApsaraDB for SelectDB. Anda dapat merefresh metadata dengan cara berikut.
Penyegaran manual
Gunakan perintah REFRESH untuk merefresh metadata secara manual.
Sintaks
REFRESH CATALOG catalog_name;
REFRESH DATABASE [catalog_name.]database_name;
REFRESH TABLE [catalog_name.][database_name.]table_name;
Merefresh Catalog juga meng-invalidate cache terkait, termasuk cache partisi, skema, dan file.
Contoh
-
Refresh Catalog. Contoh:
REFRESH CATALOG hive; -
Refresh database. Contoh:
REFRESH DATABASE ctl.database1; REFRESH DATABASE database1; -
Refresh tabel. Contoh:
REFRESH TABLE ctl.db.table1; REFRESH TABLE db.table1; REFRESH TABLE table1;
Refresh terjadwal
Aktifkan refresh terjadwal dengan mengatur parameter metadata_refresh_interval_sec saat membuat Catalog. Node Frontend (FE) master kemudian secara berkala merefresh Catalog sesuai interval yang ditentukan. Saat ini, hanya tiga jenis sumber data yang mendukung refresh terjadwal:
-
HMS: Hive Metastore.
-
ES: Elasticsearch
-
JDBC: Java Database Connectivity
-- Atur interval refresh catalog menjadi 20 detik
CREATE CATALOG es PROPERTIES (
"type"="es",
"hosts"="http://127.0.0.1:9200",
"metadata_refresh_interval_sec"="20"
);
Refresh otomatis
Saat ini, hanya event tertentu dari sumber data Hive yang memicu refresh Catalog secara otomatis. Untuk informasi lebih lanjut, lihat Sumber data Hive.