E-MapReduce memungkinkan Anda mengkueri data Paimon dari Hive. Topik ini menyediakan contoh-contohnya.
Prasyarat
Anda harus memiliki kluster DataLake atau kluster kustom yang telah dilengkapi Hive dan Paimon. Untuk informasi selengkapnya, lihat Buat kluster.
Batasan
Pengkuerian data Paimon dari Hive hanya didukung pada kluster E-MapReduce (EMR) yang menjalankan EMR-3.46.0 atau versi lebih baru serta EMR-5.12.0 atau versi lebih baru.
Prosedur
-
Hubungkan ke node master kluster melalui SSH. Untuk informasi selengkapnya, lihat Masuk ke node master kluster.
-
Gunakan Spark untuk menulis data ke Paimon.
Saat layanan menyinkronkan metadata ke Hive Metastore melalui katalog Hive, Anda dapat langsung mengkueri tabel tersebut di Hive. Atau, jika Anda memilih opsi Metadata untuk opsi DLF Unified Metadata saat pembuatan kluster, layanan juga dapat menyinkronkan metadata ke katalog DLF, yang kemudian dapat dikueri oleh Hive.
Contoh berikut menunjukkan cara menulis data ke katalog Hive menggunakan Spark.
-
Jalankan Spark SQL.
Gunakan alat command-line
spark-sqluntuk terhubung ke katalog Paimon dan tentukan titik akhir Hive Metastore serta path gudang data.spark-sql \ --conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog \ --conf spark.sql.catalog.paimon.metastore=hive \ --conf spark.sql.catalog.paimon.uri=thrift://master-1-1:9083 \ --conf spark.sql.catalog.paimon.warehouse=oss://<yourBucketName>/warehouseCatatan-
spark.sql.catalog.paimon: Mendefinisikan katalog bernama paimon. -
spark.sql.catalog.paimon.metastore: Menentukan jenis metastore untuk katalog tersebut. Atur nilai ini kehiveuntuk menyinkronkan metadata dengan Hive Metastore. -
spark.sql.catalog.paimon.uri: Alamat dan port layanan Hive Metastore. Nilaithrift://master-1-1:9083berarti Spark SQL terhubung ke layanan Hive Metastore yang berjalan pada hostmaster-1-1dan mendengarkan pada Port 9083 untuk mengambil metadata. -
spark.sql.catalog.paimon.warehouse: Mengonfigurasi path root untuk gudang data. Ganti nilai ini sesuai dengan lingkungan Anda.<yourBucketName>adalah nama bucket OSS Anda. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket.
-
-
Buat database dan tabel.
Buat database uji bernama
test_dbdan tabel bernamatest_tbldi Paimon, lalu masukkan data.-- Beralih ke katalog paimon. USE paimon; -- Buat dan gunakan database uji di katalog paimon. CREATE DATABASE test_db; USE test_db; -- Buat tabel Paimon. CREATE TABLE test_tbl ( uuid int, name string, price double ) TBLPROPERTIES ( 'primary-key' = 'uuid' ); -- Tulis data ke tabel Paimon. INSERT INTO test_tbl VALUES (1, 'apple', 3.5), (2, 'banana', 4.0), (3, 'cherry', 20.5);
-
-
Kueri data Paimon dari Hive.
-
Jalankan pernyataan HiveQL berikut untuk mengkueri data yang baru dimasukkan:
select * from test_db.test_tbl;Pernyataan tersebut menghasilkan output berikut:
OK 1 apple 3.5 2 banana 4.0 3 cherry 20.5
-
Kueri data Paimon melalui tabel eksternal Hive.
Anda juga dapat memetakan tabel Paimon dari path tertentu sebagai tabel eksternal Hive dan langsung mengkueri datanya.
-
Di Hive, jalankan perintah berikut untuk membuat tabel eksternal:
CREATE EXTERNAL TABLE test_ext_tbl STORED BY 'org.apache.paimon.hive.PaimonStorageHandler' LOCATION 'oss:// <yourBucketName>/warehouse/test_db.db/test_tbl';Parameter
-
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler': Menentukan penanganan penyimpanan Paimon. -
LOCATION: Menentukan path penyimpanan tabel Paimon.Ganti
oss://<yourBucketName>/warehouse/test_db.db/test_tbldengan path penyimpanan aktual tabel Paimon Anda.
-
-
Jalankan pernyataan SQL berikut untuk mengkueri tabel eksternal:
SELECT * FROM test_ext_tbl;