全部产品
Search
文档中心

Hologres:BUAT DATABASE EKSTERNAL

更新时间:Nov 19, 2025

Hologres V3.0 dan versi lebih baru mendukung database eksternal. Topik ini menjelaskan definisi database eksternal serta cara menggunakannya untuk mengelola tabel di sumber data eksternal dan mengimplementasikan kueri federasi menggunakan tabel internal dan eksternal.

Latar Belakang

Pernyataan CREATE EXTERNAL DATABASE digunakan untuk membuat database eksternal di instans Hologres. Anda dapat menggunakan database eksternal untuk memuat metadata dari sumber data eksternal ke Hologres, sehingga memungkinkan pengelolaan data internal dan eksternal dalam satu platform dengan arsitektur lakehouse.

Data internal adalah data yang disimpan dalam kelas penyimpanan standar dan kelas penyimpanan Akses Jarang (IA) di Hologres. Data eksternal mencakup data yang disimpan di MaxCompute dan Data Lake Formation (DLF). Hologres terintegrasi dengan MaxCompute, memungkinkan pembacaan dan penulisan data berkecepatan tinggi. Hologres juga mendukung penggunaan DLF untuk mengelola data di Object Storage Service (OSS) dan menggunakan Hologres Query Engine (HQE) untuk akses performa tinggi ke data lake seperti Apache Paimon, Hudi, dan Delta Lake.

Database eksternal bersifat global terlihat. Setelah terhubung ke database di Hologres, Anda dapat membaca dan menulis data ke sumber data eksternal dengan menentukan tabel eksternal dalam format ext_db.ext_schema.ext_table. Anda juga dapat terhubung ke database eksternal untuk mengeksekusi pernyataan SQL dan mengonfigurasi parameter GUC.

Izin pada database eksternal dikelola oleh sumber data eksternal seperti MaxCompute dan DLF. Hologres hanya meneruskan identitas ke sumber data eksternal. Secara default, peran terkait layanan Hologres digunakan untuk transmisi langsung identitas. Sebelum mengakses sumber data eksternal, Anda harus menggunakan Akun Alibaba Cloud atau Pengguna RAM dengan izin yang diperlukan untuk memberikan izin kepada peran terkait layanan. Untuk informasi lebih lanjut, lihat Peran terkait layanan untuk Hologres. Hologres juga mendukung penggunaan Peran RAM untuk mengakses sumber data eksternal, memungkinkan penyesuaian kebijakan akses. Untuk detail lebih lanjut, lihat Ikhtisar Peran RAM. Jika Anda menggunakan akun non-Alibaba Cloud atau non-RAM, seperti akun BASIC, Anda dapat mengeksekusi pernyataan CREATE USER MAPPING untuk melakukan asosiasi akun dan otorisasi.

Prasyarat

  • Aktifkan akselerasi danau data untuk instance Hologres Anda melalui konsol Hologres. Di halaman Instance, temukan instance Anda dan klik Akselerasi Danau Data di kolom Tindakan. Klik Aktifkan pada pesan yang muncul. Anda juga dapat mengaktifkannya di halaman Detail Instance.

  • Pastikan DLF diaktifkan. Untuk informasi lebih lanjut, lihat Memulai. Untuk wilayah yang didukung, lihat Wilayah dan Titik Akhir yang Didukung.

  • Jika menggunakan DLF 1.0, pastikan OSS diaktifkan dan izin yang diperlukan telah diberikan. Izin akses pada OSS diperlukan untuk menanyakan data melalui tabel asing. Untuk detail lebih lanjut, lihat Kebijakan Bucket.

  • Opsional. Jika menggunakan OSS-HDFS, pastikan fitur tersebut diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan OSS-HDFS dan Berikan Izin Akses.

Batasan

  • Anda harus memiliki izin superuser untuk mengeksekusi pernyataan ini.

  • Setelah terhubung ke database internal, Anda dapat mengakses tabel di database eksternal dengan menentukan tabel dalam format ext_db.ext_schema.ext_table. Namun, setelah terhubung ke database eksternal, Anda tidak dapat mengakses tabel di database internal.

  • Setelah membuat database eksternal, Hologres menyimpan cache metadata dari sumber data eksternal selama lima menit untuk meningkatkan efisiensi akses. Periode timeout cache tidak dapat diubah.

  • Jika sumber data eksternal adalah proyek MaxCompute, hanya proyek internal MaxCompute yang didukung. Proyek eksternal tidak didukung.

Deskripsi sintaksis

Sumber data MaxCompute

Sintaksis

CREATE EXTERNAL DATABASE <ext_database_name> WITH 
  metastore_type 'maxcompute'
  mc_project 'project_name' 
  [comment 'xxx'];

Parameter

Parameter

Deskripsi

Diperlukan

Nilai default

metastore_type

Tipe penyimpanan metadata dari sumber data eksternal. Nilai untuk MaxCompute adalah maxcompute. Nilai tidak peka huruf besar/kecil.

Ya

Tidak ada nilai default

mc_project

Nama proyek MaxCompute yang datanya ingin Anda petakan. Hanya proyek internal MaxCompute yang didukung.

Ya

Tidak ada nilai default

comment

Deskripsi database.

Tidak

Tidak ada nilai default

Sumber data DLF

Sintaksis

Sintaksis untuk DLF
Catatan
  • DLF hanya mendukung mode penyimpanan terkelola. Saat membuat pemetaan metadata di Hologres dengan mengeksekusi pernyataan BUAT DATABASE EKSTERNAL, Anda hanya perlu menentukan parameter terkait DLF.

  • DLF hanya mendukung katalog Apache Paimon. Saat membuat pemetaan metadata di Hologres, Anda harus menyetel parameter tipe_metastore ke dlf-paimon.

  • Berdasarkan mode penyimpanan terkelola DLF, Hologres memungkinkan Anda menggunakan peran terkait layanan atau Peran RAM untuk mengakses sumber data eksternal. Secara default, transmisi langsung identitas menggunakan peran terkait layanan. Sebelum menggunakannya, Anda harus memberikan izin kepada peran terkait layanan AliyunServiceRoleForHologresIdentityMgmt. Untuk informasi selengkapnya, lihat Peran terkait layanan untuk Hologres. Jika ingin menggunakan Peran RAM untuk menentukan izin, jalankan pernyataan CREATE USER MAPPING.

CREATE EXTERNAL DATABASE <ext_database_name> WITH
  
catalog_type 'paimon'
  
metastore_type 'dlf-rest'
  dlf_catalog '<dlf_catalog_name>' 
  [comment 'xxx']; 
Sintaksis untuk DLF-Legacy
Catatan
  • DLF-Legacy mendukung penyimpanan OSS dan beberapa format danau, termasuk Apache Paimon, Hudi, Delta Lake, ORC, Parquet, dan CSV. Untuk informasi lebih lanjut, lihat Akselerasi danau data.

  • Jika ingin menggunakan DLF-Legacy untuk membuat database eksternal, Anda harus menyetel parameter tipe_metastore ke dlf dan menyediakan titik akhir DLF dan OSS serta Pasangan Kunci Akses untuk otentikasi.

  • DLF-Legacy tidak memungkinkan Anda menggunakan peran terkait layanan atau Peran RAM untuk otentikasi.

CREATE EXTERNAL DATABASE <ext_database_name> WITH
  metastore_type 'dlf'
  dlf_region ' ' 
  dlf_endpoint ' '
  dlf_catalog ' ' 
  oss_endpoint ''
  [comment 'xxx']; 

Parameter

Parameter

Diperlukan

Deskripsi

tipe_metastore

Ya

Tipe penyimpanan metadata dari sumber data eksternal.

  • DLF-Legacy: Atur ke dlf.

  • DLF: Atur ke dlf-paimon (yang merupakan satu-satunya nilai valid saat ini). Format: dlf-xxx.

tipe_katalog

Ya

Tipe tabel di sumber data eksternal untuk dipetakan. Nilai valid:

  • DLF-Legacy: paimon, hudi, deltalake, orc, parquet, csv, dan sequencefile

  • DLF: Paimon

Catatan

Anda tidak perlu mengonfigurasi tipe_katalog untuk DLF-Legacy.

wilayah_dlf

Ya

ID wilayah tempat layanan DLF berada. Contoh: ap-southeast-1. Untuk informasi lebih lanjut, lihat

Wilayah dan titik akhir yang didukung.

dlf_endpoint

Ya

Titik akhir internal yang digunakan oleh MaxCompute dan Hologres untuk mengakses DLF. Contoh: dlf-share.ap-southeast-1.aliyuncs.com. Untuk informasi lebih lanjut, lihat Wilayah dan titik akhir yang didukung.

dlf_catalog

Ya

Katalog tempat sumber data DLF milik.

id_akses_dlf

Ya

ID AccessKey dari Akun Alibaba Cloud yang digunakan untuk mengakses DLF.

kunci_akses_dlf

Ya

Rahasia AccessKey dari Akun Alibaba Cloud yang digunakan untuk mengakses DLF.

oss_endpoint

Ya

Titik akhir yang digunakan untuk mengakses OSS.

  • Akses OSS asli: Gunakan titik akhir internal untuk meningkatkan kinerja akses.

  • Akses OSS-HDFS: Hanya titik akhir internal yang didukung. Untuk informasi lebih lanjut, lihat Akses OSS-HDFS dari EMR Hive atau Spark.

id_akses_oss

Ya

ID AccessKey dari Akun Alibaba Cloud yang digunakan untuk mengakses OSS.

kunci_akses_oss

Ya

Rahasia AccessKey dari Akun Alibaba Cloud yang digunakan untuk mengakses OSS.

KOMENTAR

Tidak

Deskripsi database.

Operasi terkait

Kueri semua database eksternal dalam sebuah instance

SELECT database_name, options FROM hologres.hg_external_databases();

Perbarui metadata dari database eksternal

REFRESH CACHE FOR EXTERNAL DATABASE <EXT_DB_NAME> WITH( cache_level = 'metadata');

Ubah interval penyegaran metadata

  • Secara default, metadata_refresh_interval_sec mengontrol interval pembaruan penuh untuk satu node antarmuka depan (FE). Pembaruan penuh memperbarui daftar skema, daftar tabel, dan semua metadata tabel. Nilai default metadata_refresh_interval_sec adalah 7200 detik. Untuk mengubah interval penyegaran, gunakan perintah berikut:

ALTER EXTERNAL DATABASE <EXT_DB_NAME> WITH metadata_refresh_interval_sec 1800;

Contoh

Sumber data MaxCompute

Catatan

Untuk Proyek MaxCompute yang menggunakan model dua lapis, jika Anda membuat database eksternal untuk Proyek MaxCompute di Hologres, tabel di database eksternal akan ditampilkan dalam format ext_db.ext_schema.mc_table secara default. Saat mengkueri data dari tabel tersebut, Anda harus menentukan nama tabel dalam format tiga lapis, dengan nama skema default-nya adalah default. Contohnya: SELECT xxx FROM ext_db.default.mc_table.

-- Buat database eksternal.
BUAT DATABASE EKSTERNAL ext_database_mc DENGAN 
  metastore_type 'maxcompute'
  mc_project 'mc_3_layer_project' 
  comment 'proyek tiga lapis mc';
  
-- Kueri data.
SELECT * FROM ext_database_mc.mc_schema.mc_table;

Sumber data DLF

DLF

-- Buat database eksternal.
CREATE EXTERNAL DATABASE ext_database_dlf WITH
  metastore_type 'dlf-rest'
  catalog_type 'paimon'
  

dlf_catalog 'dlf_paimon_catalog' 
  comment 'DLF paimon catalog'; 

-- Kueri data.
SELECT * FROM ext_database_dlf.dlf_db.paimon_table;

DLF-Legacy

-- Buat database eksternal. 
CREATE EXTERNAL DATABASE ext_database_dlf1 WITH
  metastore_type 'dlf'
  dlf_region 'cn-beijing' 
  dlf_endpoint 'dlf-share.cn-beijing.aliyuncs.com'
  dlf_catalog 'hive_catalog' 
  oss_endpoint 'oss-cn-beijing-internal.aliyuncs.com'
  comment 'DLF1.0 hive catalog'; 

-- Buat pemetaan pengguna untuk pengguna saat ini.
CREATE USER MAPPING FOR current_user
EXTERNAL DATABASE ext_database_dlf1
OPTIONS
  (
      -- For DLF 1.0
      dlf_access_id 'LTxxxxxxxxxx',
      dlf_access_key 'y8xxxxxxxxxxxxx',
      oss_access_id 'LTxxxxxxxxxx',
      oss_access_key 'y8xxxxxxxxxxxxx'
  );

-- Mengkueri data. 
SELECT * FROM ext_database_dlf1.dlf_db.hive_table;