全部产品
Search
文档中心

Hologres:Menanyakan data MaxCompute terenkripsi

更新时间:Nov 06, 2025

Topik ini menjelaskan cara menggunakan tabel eksternal untuk menanyakan data MaxCompute yang dienkripsi.

Latar Belakang

MaxCompute memungkinkan Anda menggunakan Key Management Service (KMS) untuk mengenkripsi data penyimpanan. MaxCompute menyediakan perlindungan data statis bagi perusahaan guna memenuhi persyaratan kepatuhan regulasi dan keamanan. Topik ini menjelaskan batasan dan prosedur untuk menggunakan tabel asing di Hologres dalam menanyakan data terenkripsi di MaxCompute.

Metode baru: Tabel Umum (Direkomendasikan)

Hologres V3.2+ mendukung akses ke data MaxCompute terenkripsi melalui Tabel Umum dengan konfigurasi yang disederhanakan. Versi ini juga memungkinkan akses ke proyek yang dienkripsi dengan kunci default atau KMS. Lihat Akses MaxCompute melalui saluran Tabel Umum.

Aktifkan Tabel Umum

Anda dapat mengaktifkan saluran berdasarkan skenario Anda.

  • Tingkat sesi

    -- Aktifkan pada tingkat sesi. Perintah ini harus dieksekusi dengan kueri atau pernyataan DML.
    SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Tingkat database

    -- Aktifkan pada tingkat database.
    ALTER DATABASE <nama database> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Tingkat instans

    -- Aktifkan pada tingkat instans.
    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';

Metode lama (Tidak direkomendasikan)

Metode ini berlaku untuk versi Hologres sebelum V3.2 dan mendukung akses ke data terenkripsi KMS. Namun, karena konfigurasinya yang kompleks, metode ini tidak direkomendasikan.

Batasan

  • Hanya Hologres V1.1 dan versi lebih baru yang mendukung penggunaan tabel asing untuk menanyakan data terenkripsi di MaxCompute. Jika versi instance Hologres Anda lebih awal dari V1.1, tingkatkan instance Anda atau bergabunglah dengan grup DingTalk Hologres untuk meminta insinyur melakukan peningkatan. Untuk informasi lebih lanjut tentang cara meningkatkan instance Hologres, lihat Tingkatkan instance.

  • Jika versi instance Hologres Anda lebih awal dari V1.3.31, Anda harus menambahkan konfigurasi backend sebelum dapat menanyakan data terenkripsi di MaxCompute. Jika versi instance Hologres Anda adalah V1.3.31 atau lebih baru, konfigurasi backend tidak diperlukan. Kami sarankan Anda meningkatkan instance Hologres ke V1.3.31 atau lebih baru jika ingin menggunakan fitur ini. Untuk informasi lebih lanjut, lihat Tingkatkan instance.

  • Anda hanya dapat menanyakan data MaxCompute terenkripsi. Jenis bahan berikut dapat digunakan untuk membuat kunci master pelanggan (CMK) untuk mengenkripsi data MaxCompute: bahan kunci yang dihasilkan oleh KMS saat Anda membuat CMK, dan bahan kunci yang diimpor. Anda tidak dapat menanyakan data MaxCompute yang dienkripsi menggunakan kunci default DataWorks.

  • Saat menanyakan data, Hologres memanggil operasi API KMS untuk mendapatkan informasi kunci. Secara default, informasi kunci disimpan dalam cache selama 24 jam.

Prosedur

  1. Buat kebijakan kustom.

    1. Masuk ke Konsol Resource Access Management (RAM). Di panel navigasi sisi kiri, pilih Permissions > Policies. Pada halaman Policies, klik Create Policy.

      Permission Policies

    2. Pada halaman Create Policy, klik JSON. Pada tab JSON, masukkan skrip berikut di editor kode dan atur Name menjadi AliyunHologresEncryptionDefaultRolePolicy.

      Create Permission Policy

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:GenerateDataKey",
                      "kms:DescribeKey"
                  ],
                  "Resource": "acs:kms:*:*:*/*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Klik OK untuk menyelesaikan pembuatan kebijakan kustom.

  2. Buat peran RAM dan berikan izin kepada peran RAM.

    1. Masuk ke Konsol RAM. Di panel navigasi sisi kiri, pilih Identities > Roles.

    2. Pada halaman Roles, klik Create Role. Pada halaman Create Role, atur Principal Type menjadi Cloud Service, dan Principal Name menjadi Hologres.

    3. Klik OK. Dalam dialog, masukkan AliyunHologresEncryptionDefaultRole di bidang Role Name, dan klik OK.创建角色

    4. Pada halaman detail peran, klik Grant Permission.

    5. Di panel Grant Permission, atur Resource Scope menjadi Account. Untuk Policy, pilih kebijakan kustom AliyunHologresEncryptionDefaultRolePolicy yang dibuat pada langkah 1.添加权限

    6. Klik Grant permissions.

      Pada halaman detail peran, klik tab Trust Policy untuk memeriksa pengaturan kebijakan kepercayaan.

  3. Ubah konfigurasi untuk database.

    Hologres Query Engine (HQE) tidak mengizinkan Anda mengakses data terenkripsi di MaxCompute. Oleh karena itu, jalankan pernyataan SQL berikut untuk mengubah mesin query (QE) tabel asing menjadi Seahawks Query Engine (SQE):

    ALTER DATABASE <dbname> SET hg_experimental_enable_access_odps_orc_via_holo = false;

    Konfigurasi sebelumnya hanya berlaku setelah Anda membuat koneksi lagi. Anda dapat mengeksekusi pernyataan SQL berikut untuk memeriksa apakah konfigurasi menggunakan SQE untuk menanyakan tabel eksternal berlaku. Jika false ditampilkan, konfigurasi berlaku.

    SHOW hg_experimental_enable_access_odps_orc_via_holo;
  4. Menanyakan data terenkripsi.

    Setelah operasi sebelumnya selesai, Anda dapat menggunakan tabel asing di Hologres untuk menanyakan data terenkripsi di MaxCompute dengan cara yang sama seperti menanyakan data biasa di MaxCompute. Untuk informasi lebih lanjut, lihat Gunakan tabel asing di Hologres untuk mempercepat kueri pada data MaxCompute.

Pertanyaan Umum

  • Deskripsi Masalah

    Pesan kesalahan serupa dengan informasi berikut dikembalikan saat saya menanyakan data:

    ERROR: status { code: SERVER_INTERNAL_ERROR message: "hos_exception: IO error: Failed to execute pangu open normal file pangu://xxx:xxx/product/odps/xxx/data/xxxx/xxx/xxx, errorcode: 9, errorcode_description: invalid argument, err_msg: PanguParameterInvalidException
  • Penyebab

    Anda menggunakan HQE untuk menanyakan data terenkripsi di MaxCompute. HQE tidak mengizinkan Anda mengakses data terenkripsi di MaxCompute.

  • Solusi

    1. Ubah QE tabel asing menjadi SQE dan ubah konfigurasi untuk database.

      Pernyataan SQL:

      ALTER DATABASE <DB_Name> SET hg_experimental_enable_access_odps_orc_via_holo = false;
    2. Konfigurasi sebelumnya hanya berlaku setelah Anda membuat koneksi. Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa apakah konfigurasi menggunakan SQE untuk menanyakan tabel asing berlaku. Jika false ditampilkan, konfigurasi tersebut berlaku.

      SHOW hg_experimental_enable_access_odps_orc_via_holo;
    3. Setelah konfigurasi berlaku, tanyakan kembali data terenkripsi di MaxCompute.