Mulai versi V1.3.26, Hologres mendukung pembacaan dan penulisan data ke Object Storage Service (OSS)-HDFS. Topik ini menjelaskan cara menggunakan Data Lake Formation (DLF) untuk mengakses data di data lake OSS-HDFS.
Informasi latar belakang
OSS-HDFS (JindoFS) adalah layanan penyimpanan data lake cloud-native yang terintegrasi secara mulus dengan compute engine dalam ekosistem Hadoop. Dibandingkan dengan OSS native, OSS-HDFS menawarkan kinerja lebih baik dalam skenario extract, transform, and load (ETL) offline khas, seperti yang menggunakan Hive dan Spark. Untuk informasi selengkapnya tentang OSS-HDFS, lihat Apa itu layanan OSS-HDFS?. Untuk data yang disimpan di OSS-HDFS, Hologres menggunakan DLF untuk manajemen metadata dan JindoSDK untuk akses data langsung serta write-back. Saat ini, write-back hanya didukung untuk tabel dalam format ORC, Parquet, CSV, dan SequenceFile. Untuk informasi selengkapnya tentang cara membaca dan menulis data ke OSS menggunakan DLF, lihat Percepat akses ke data lake OSS menggunakan DLF.
Prasyarat
Anda telah mengaktifkan DLF. Untuk informasi selengkapnya, lihat Quick Start. Daftar wilayah yang didukung tersedia di Wilayah dan titik akhir.
Anda telah mengaktifkan OSS-HDFS dan menyiapkan data. Untuk informasi selengkapnya, lihat Aktifkan layanan OSS-HDFS.
Anda telah mengaktifkan fitur akselerasi data lake pada instans Hologres Anda. Untuk informasi selengkapnya, lihat Konfigurasi lingkungan.
Catatan penggunaan
Temukan nama domain bucket OSS-HDFS.
Anda harus mengonfigurasi nama domain layanan OSS-HDFS di Hologres. Nama domain tersebut dapat ditemukan pada halaman Overview bucket di Konsol OSS, dengan syarat layanan OSS-HDFS telah diaktifkan untuk bucket tersebut.

Buat dan konfigurasikan foreign server.
PentingUntuk mengakses data dari beberapa lingkungan OSS-HDFS sekaligus, Anda harus mengonfigurasi beberapa foreign server. Misalnya, untuk mengakses tabel eksternal yang disimpan di OSS-HDFS, buatlah foreign server terpisah dan atur parameter oss_endpoint ke titik akhir OSS-HDFS. Foreign server ini harus ditentukan saat Anda mengimpor atau membuat tabel eksternal. Demikian pula, untuk mengakses tabel data yang disimpan di OSS, Anda harus membuat foreign server terpisah dan mengonfigurasi nama domain OSS yang sesuai.
Setelah menemukan nama domain bucket, Anda dapat mengonfigurasi titik akhir DLF dan OSS di Hologres. Sintaksnya sebagai berikut:
CREATE EXTENSION IF NOT EXISTS dlf_fdw; CREATE SERVER IF NOT EXISTS <servername> FOREIGN data wrapper dlf_fdw options ( dlf_region 'cn-<region>', dlf_endpoint 'dlf-share.cn-<region>.aliyuncs.com', oss_endpoint '<bucket_name>.cn-<region>.oss-dls.aliyuncs.com' -- Nama domain bucket OSS-HDFS );Penjelasan parameter:
Nama Parameter
Deskripsi
Contoh
servername
Nama kustom untuk server.
dlf_server
dlf_region
Wilayah tempat DLF berada. Pilih wilayah sesuai kebutuhan.
Untuk daftar wilayah yang didukung, lihat Wilayah dan titik akhir.
cn-beijing
dlf_endpoint
Gunakan titik akhir layanan pribadi DLF untuk kinerja akses yang lebih baik. Untuk daftar wilayah yang didukung, lihat Wilayah dan titik akhir.
Untuk mengakses data lintas wilayah, gunakan titik akhir publik.
PentingTitik akhir publik dikenai biaya jaringan dan dapat mengurangi kinerja. Untuk informasi selengkapnya tentang biaya jaringan, lihat Ikhtisar penagihan.
dlf-share.cn-beijing.aliyuncs.comoss_endpoint
Titik akhir OSS-HDFS yang Anda temukan pada Langkah 1. OSS-HDFS saat ini hanya mendukung akses jaringan pribadi. Artinya, akses cross-region tidak didukung secara default.
CatatanUntuk penyimpanan OSS native, gunakan titik akhir pribadi OSS untuk kinerja akses yang lebih baik. Untuk berinteraksi dengan Hologres dan DLF lintas wilayah, gunakan titik akhir publik. Untuk informasi selengkapnya, lihat Akses OSS melalui IPv6.
bucket_nametest.cn-hangzhou.oss-dls.aliyuncs.comBuat tabel eksternal untuk membaca dan menulis data ke OSS-HDFS.
Buat satu tabel: Anda dapat membuat tabel eksternal untuk memetakan tabel metadata `dlf_oss_test` di metadatabase `dlfpro` DLF. Tabel eksternal tersebut dibuat di skema `public` Hologres.
-- Metode 1 CREATE FOREIGN TABLE dlf_oss_test ( id text, pt text ) SERVER dlf_server -- Foreign server yang dibuat options ( schema_name 'dlfpro', table_name 'dlf_oss_test' ); -- Metode 2: IMPORT FOREIGN SCHEMA dlfpro LIMIT TO ( dlf_oss_test ) FROM SERVER dlf_server INTO public options (if_table_exist 'update');Buat tabel secara batch: Anda dapat memetakan semua tabel dari metadatabase `dlfpro` di DLF ke skema `public` di Hologres. Operasi ini akan membuat tabel eksternal yang sesuai di Hologres secara batch.
Impor seluruh database:
IMPORT FOREIGN SCHEMA dlfpro FROM SERVER dlf_server INTO public options (if_table_exist 'update');Impor beberapa tabel:
IMPORT FOREIGN SCHEMA dlfpro ( table1, table2, tablen ) FROM SERVER dlf_server INTO public options (if_table_exist 'update');
Lakukan kueri data.
Setelah membuat tabel eksternal, Anda dapat melihatnya di skema yang sesuai di Hologres atau di folder skema tabel di HoloWeb. Anda dapat melakukan kueri pada tabel eksternal untuk membaca data dari OSS, serta menulis kembali data ke tabel eksternal yang berformat CSV, Parquet, atau ORC.
Kueri tabel non-partisi
SELECT * FROM dlf_oss_test;Kueri tabel partisi
SELECT * FROM <partition_table> where dt = '2013';
Untuk informasi selengkapnya tentang prosedurnya, lihat Prosedur.