全部产品
Search
文档中心

Hologres:Akses data lake di OSS menggunakan Hive Metastore (Beta)

更新时间:Feb 05, 2026

Mulai versi V2.2, Hologres mendukung akses data lake di OSS menggunakan Hive Metastore (HMS). Jika Anda menggunakan kluster EMR untuk membangun data lake di OSS, Anda dapat mengonfigurasi Hologres guna mempercepat operasi baca dan tulis data di OSS dan OSS-HDFS.

Prasyarat

  • Anda telah mengaktifkan OSS. Untuk informasi selengkapnya, lihat Quick Start.

  • Anda telah membuat kluster data lake EMR dan membuat data uji. Untuk informasi selengkapnya, lihat Create a cluster. Kluster EMR harus memenuhi kondisi berikut:

    • Versi Hive adalah 3.1.3 atau yang lebih baru.

    • Otentikasi identitas Kerberos dinonaktifkan.

    • Untuk Metadata, Anda telah memilih Self-managed RDS atau Built-in MySQL.

  • Anda telah membeli instans Hologres, mengaktifkan akselerasi data lake, dan membuat database. Untuk informasi selengkapnya, lihat Purchase a Hologres instance dan Create a database.

    Catatan

    Untuk mengaktifkan akselerasi data lake, buka daftar instans Hologres. Pada kolom Actions instans yang dituju, klik Data Lake Acceleration dan konfirmasi pilihan Anda.

  • Koneksi jaringan telah dibuat.

    Kirim permintaan koneksi jaringan. Setelah permintaan Anda diterima, tim dukungan Alibaba Cloud Hologres akan menghubungi Anda untuk membantu menyelesaikan langkah-langkah berikut guna membuat koneksi jaringan:

    Login ke Konsol VPC untuk membuat reverse endpoint. Untuk informasi selengkapnya, lihat Access Alibaba Cloud services. Untuk parameter Endpoint Service, pilih Other Endpoint Services dan masukkan nama layanan titik akhir di wilayah tempat kluster EMR berada. Nama layanan titik akhir untuk setiap wilayah adalah sebagai berikut.

    Wilayah

    Nama layanan titik akhir

    Beijing

    com.aliyuncs.privatelink.cn-beijing.epsrv-2zeokrydzjd6kx3cbwmb

    Shanghai

    com.aliyuncs.privatelink.cn-shanghai.epsrv-uf61fvlfwta7f7dv9n3x

    Zhangjiakou

    com.aliyuncs.privatelink.cn-zhangjiakou.epsrv-8vbno4k4wwvys0eg2swp

    Catatan
    • Jika nama layanan titik akhir tidak tersedia untuk wilayah Anda, tim Hologres akan membuatnya untuk Anda dan memberikan nama tersebut setelah Anda mengirim permintaan koneksi jaringan.

    • Virtual private cloud (VPC) adalah lingkungan jaringan terisolasi yang dibangun di Alibaba Cloud. VPC terisolasi secara logis satu sama lain serta dari jaringan klasik, dan tidak dapat berkomunikasi secara default. Karena layanan Hologres dibuat sebelum adanya VPC, layanan ini ditempatkan di jaringan klasik. Oleh karena itu, Anda harus mengonfigurasi reverse endpoint untuk membuat koneksi jaringan.

    • Konfigurasi jaringan saat ini menggunakan alamat IP untuk koneksi. Jika alamat IP kluster EMR berubah, Anda harus mengonfigurasi ulang koneksi tersebut.

Batasan

  • Instans Hologres secondary read-only tidak mendukung fitur akselerasi data lake.

  • Operasi seperti UPDATE, DELETE, atau TRUNCATE tidak didukung pada tabel eksternal.

  • Pemetaan tabel eksternal dari HMS menggunakan Auto Load tidak didukung.

  • Kluster Hive dengan otentikasi identitas Kerberos yang diaktifkan tidak didukung.

Prosedur

  1. Jalankan perintah SQL untuk membuat ekstensi.

    Pembuatan ekstensi memerlukan izin superuser. Operasi ini berlaku untuk seluruh database dan hanya perlu dilakukan sekali per database.

    CREATE EXTENSION IF NOT EXISTS hive_fdw;
  2. Buat server asing berdasarkan hive_fdw dan konfigurasikan informasi titik akhir.

    CREATE SERVER IF NOT EXISTS <server_name> FOREIGN DATA WRAPPER hive_fdw 
    OPTIONS (
       hive_metastore_uris 'thrift://<IP address of Hive Metastore>:<port number>',
       oss_endpoint 'oss-<nation>-<region>-internal.aliyuncs.com | <bucket>.oss-<nation>-<region>.oss-dls.aliyuncs.com' 
    );

    Parameter

    Diperlukan

    Deskripsi

    Contoh

    server_name

    Ya

    Nama kustom untuk server eksternal.

    hive_server

    hive_metastore_uris

    Ya

    URI Hive Metastore. Formatnya adalah thrift://<IP address of Hive Metastore>:<port number>. Nomor port default adalah 9083.

    Catatan

    Login ke Konsol E-MapReduce. Pada kolom Actions kluster yang dituju, klik Node Management. Di tab Node Management, temukan Internal IP node master. Alamat IP ini adalah alamat IP Hive metastore.

    thrift://172.16.0.250:9083

    oss_endpoint

    Ya

    Titik akhir OSS. Pilih salah satu sesuai kebutuhan bisnis Anda:

    • Penyimpanan OSS native: Untuk kinerja akses yang lebih baik, gunakan titik akhir internal OSS.

    • Penyimpanan OSS-HDFS: Hanya mendukung akses jaringan internal.

    Catatan

    Login ke Konsol OSS. Buka halaman ikhtisar bucket. Di area Access Ports, temukan alamat titik akhir OSS.

    • OSS

      oss-cn-shanghai-internal.aliyuncs.com
    • OSS-HDFS

      <bucket_name>.cn-beijing.oss-dls.aliyuncs.com
  3. (Opsional) Buat pemetaan pengguna.

    Hologres memungkinkan Anda menggunakan perintah CREATE USER MAPPING untuk memetakan pengguna ke server eksternal tertentu. Misalnya, pemilik server eksternal dapat menggunakan CREATE USER MAPPING untuk mengizinkan Pengguna Resource Access Management (RAM) (123xxx) mengakses data eksternal di OSS. Untuk informasi selengkapnya tentang CREATE USER MAPPING, lihat dokumentasi PostgreSQL.

    CREATE USER mapping FOR <account> server <server_name> options
    (
        dlf_access_id '<yourAccessKeyId>', 
        dlf_access_key '<yourAccessKeySecret>',
        oss_access_id '<yourAccessKeyId>', 
        oss_access_key '<yourAccessKeySecret>'
    );

    Berikut contohnya:

    -- Buat pemetaan pengguna untuk pengguna saat ini
    CREATE USER mapping FOR current_user server <server_name> options
    (
        dlf_access_id 'yourAccessKeyId', 
        dlf_access_key 'yourAccessKeySecret',
        oss_access_id 'yourAccessKeyId', 
        oss_access_key 'yourAccessKeySecret'
    );
    
    -- Buat pemetaan pengguna untuk Pengguna RAM 123xxx
    CREATE USER mapping FOR "p4_123xxx" server <server_name> options
    (
        dlf_access_id 'yourAccessKeyId', 
        dlf_access_key 'yourAccessKeySecret',
        oss_access_id 'yourAccessKeyId', 
        oss_access_key 'yourAccessKeySecret'
    );
    
    -- Hapus pemetaan pengguna
    Drop USER MAPPING FOR CURRENT_USER server <server_name>;
    Drop USER MAPPING FOR "p4_123xxx" server <server_name>;
  4. Buat tabel eksternal.

    Hologres mendukung perintah berikut untuk membuat tabel eksternal:

    • CREATE FOREIGN TABLE: Membuat satu tabel eksternal. Perintah ini memungkinkan Anda menyesuaikan tabel dengan menentukan subset kolom. Cocok untuk skenario di mana Anda hanya perlu membuat beberapa tabel eksternal atau tidak perlu memetakan semua bidang.

    • IMPORT FOREIGN SCHEMA: Membuat tabel eksternal secara batch. Perintah ini cocok untuk skenario di mana Anda perlu membuat banyak tabel eksternal atau melakukan pemetaan batch dari sumber data eksternal.

    Catatan
    • Hologres mendukung pembacaan tabel partisi di OSS. Tipe data yang didukung untuk kunci partisi adalah TEXT, VARCHAR, dan INT. Saat Anda menggunakan CREATE FOREIGN TABLE, Anda dapat mendefinisikan bidang partisi sebagai bidang biasa karena perintah ini hanya memetakan skema tanpa menyimpan data. Saat Anda menggunakan IMPORT FOREIGN SCHEMA, Anda tidak perlu mendefinisikan bidang tabel karena sistem secara otomatis menangani pemetaan bidang.

    • Jika tabel dalam skema eksternal memiliki nama yang sama dengan tabel internal yang sudah ada di Hologres, IMPORT FOREIGN SCHEMA melewatkan pembuatan tabel eksternal tersebut. Dalam kasus ini, gunakan CREATE FOREIGN TABLE untuk menentukan nama unik bagi tabel eksternal tersebut.

    -- Menggunakan CREATE FOREIGN TABLE
    CREATE FOREIGN TABLE <holo_schema_name>.<table_name>
    (
      { column_name data_type }
      [, ... ]
      ] )
    )
    SERVER <hive_server_name>
    OPTIONS
    (
      schema_name '<ext_db_name>',
      table_name '<ext_table_name>'
    );
    
    
    -- Menggunakan IMPORT FOREIGN SCHEMA
    IMPORT FOREIGN SCHEMA <ext_db_name> 
    [
      { limit TO | EXCEPT } 
      ( table_name [, ...] ) 
    ]
    FROM server <hive_server_name>
    INTO <holo_schema_name> 
    options(
      if_table_exist 'update',
      if_unsupported_type 'error'
            );
  5. Lakukan kueri pada tabel eksternal.

    Setelah tabel eksternal dibuat, Anda dapat langsung melakukan kueri untuk membaca data dari OSS.

    • Tabel non-partisi

      SELECT * FROM <holo_schema>.<hive_table>;
    • Tabel partisi

      SELECT * FROM <holo_schema>.<hive_partition_table> WHERE <partition_key> = '<partition_value>';