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
Buat kebijakan kustom.
Masuk ke Konsol Resource Access Management (RAM). Di panel navigasi sisi kiri, pilih Permissions > Policies. Pada halaman Policies, klik Create Policy.

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

{ "Version": "1", "Statement": [ { "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "acs:kms:*:*:*/*", "Effect": "Allow" } ] }Klik OK untuk menyelesaikan pembuatan kebijakan kustom.
Buat peran RAM dan berikan izin kepada peran RAM.
Masuk ke Konsol RAM. Di panel navigasi sisi kiri, pilih .
Pada halaman Roles, klik Create Role. Pada halaman Create Role, atur Principal Type menjadi Cloud Service, dan Principal Name menjadi Hologres.
Klik OK. Dalam dialog, masukkan
AliyunHologresEncryptionDefaultRoledi bidang Role Name, dan klik OK.
Pada halaman detail peran, klik Grant Permission.
Di panel Grant Permission, atur Resource Scope menjadi Account. Untuk Policy, pilih kebijakan kustom
AliyunHologresEncryptionDefaultRolePolicyyang dibuat pada langkah 1.
Klik Grant permissions.
Pada halaman detail peran, klik tab Trust Policy untuk memeriksa pengaturan kebijakan kepercayaan.
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
falseditampilkan, konfigurasi berlaku.SHOW hg_experimental_enable_access_odps_orc_via_holo;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: PanguParameterInvalidExceptionPenyebab
Anda menggunakan HQE untuk menanyakan data terenkripsi di MaxCompute. HQE tidak mengizinkan Anda mengakses data terenkripsi di MaxCompute.
Solusi
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;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;Setelah konfigurasi berlaku, tanyakan kembali data terenkripsi di MaxCompute.