Dokumen ini memberikan contoh cara menghubungkan Apache NiFi ke Hologres.
Latar Belakang
Apache NiFi adalah sistem yang mudah digunakan dan andal untuk pemrosesan serta distribusi data. Sistem ini dirancang untuk mengotomatiskan aliran data antar sistem dan menyediakan antarmuka web interaktif yang ramah pengguna guna mengelola serta memproses aliran data antar atau di dalam sistem.
Prasyarat
-
Anda telah mengaktifkan instans Hologres. Untuk informasi selengkapnya, lihat Beli instans Hologres.
-
Anda telah menginstal Apache NiFi. Untuk informasi selengkapnya, lihat Cara menginstal dan menjalankan NiFi.
Menulis file JSON lokal ke Hologres
Alur kerja berikut menulis data dari file JSON lokal ke Hologres.
-
GetFile: Membaca file JSON.
-
ConvertJSONToSQL: Mengonversi elemen dalam file JSON menjadi pernyataan SQL INSERT.
-
PutSQL: Menjalankan pernyataan SQL dari processor sebelumnya untuk memasukkan data ke database.
-
Buat database dan tabel
-
Masuk ke instans Hologres Anda dan buat database bernama demo. Untuk informasi selengkapnya, lihat Buat database.
-
Buat tabel.
Jalankan pernyataan SQL berikut untuk membuat tabel tujuan.
DROP TABLE IF EXISTS user_info; CREATE TABLE IF NOT EXISTS user_info ( id int, first_name text, last_name text, email text );
-
-
Konfigurasikan processor GetFile
-
Tambahkan processor GetFile.
Untuk informasi selengkapnya, lihat Menambahkan Processor.
-
Tentukan path ke file JSON.
Pada tab PROPERTIES, masukkan path penyimpanan file JSON Anda di bidang Input Directory. Contoh ini menggunakan file JSON bernama user_info.json, yang disimpan di direktori
/opt/nifi/nifi-current/file_sourcepada server Apache NiFi. File tersebut berisi data berikut:{ "id": 1, "first_name": "Sig", "last_name": "Olivo", "email": "solivo0@blinklist.com" }Berikut contoh konfigurasinya. Biarkan properti lain tetap pada nilai default: File Filter adalah
[^\.].*, Keep Source File adalahfalse(menghapus file sumber setelah dibaca), Batch Size adalah10, Recurse Subdirectories adalahtrue, dan Polling Interval adalah0 sec. -
Klik Apply untuk menyimpan konfigurasi.
-
-
Konfigurasikan processor ConvertJSONToSQL
-
Tambahkan processor ConvertJSONToSQL.
-
Untuk properti JDBC Connection Pool, buat layanan baru. Atur Compatible Controller Services ke DBCPConnectionPool dan Controller Service Name ke hologres.
-
Klik panah Go To (→) di paling kanan baris JDBC Connection Pool untuk mengonfigurasi string koneksi.
-
Temukan DBCPConnectionPool yang baru saja Anda buat dan klik ikon pengaturannya.
Pada tab CONTROLLER SERVICES, temukan layanan DBCPConnectionPool bernama hologres dan klik ikon pengaturan (roda gigi) di sebelah kanan.
-
Pada tab PROPERTIES halaman pengaturan, konfigurasikan parameter berikut.
Parameter
Deskripsi
Deskripsi
Database Connection URL
String koneksi JDBC untuk instans Hologres. Formatnya adalah
jdbc:postgresql://<endpoint>/<database name>. Contoh:jdbc:postgresql://hgpostcn-cn-xxxxxxxxxxx-cn-shanghai.hologres.aliyuncs.com:80/demo.Titik akhir harus berupa endpoint publik atau Virtual Private Cloud (VPC). Untuk mendapatkan titik akhir, buka halaman detail instans di Konsol Hologres.
Database Driver Class Name
org.postgresql.Driver
N/A
Database Driver Location(s)
Path tempat driver JDBC PostgreSQL disimpan. Contoh:
/opt/nifi/nifi-current/jdbc_driver/postgresql-42.3.4.jar.Anda dapat mengunduh driver JDBC dari website resmi PostgreSQL. Kami merekomendasikan menggunakan driver JDBC versi 42.2.25 atau yang lebih baru.
Database User
ID AccessKey Akun Alibaba Cloud Anda.
Untuk mendapatkan ID AccessKey Anda, buka Manajemen AccessKey.
Password
AccessKey Secret Akun Alibaba Cloud Anda.
-
Klik OK untuk menyelesaikan konfigurasi.
-
Klik ENABLE untuk menjalankan layanan controller.
-
Kembali ke konfigurasi processor ConvertJSONToSQL dan atur parameter berikut. Untuk informasi selengkapnya, lihat dokumentasi resmi NiFi.
Parameter
Deskripsi
Statement Type
Jenis pernyataan SQL yang akan dihasilkan. Pada contoh ini, gunakan
INSERT.Table Name
Nama tabel tujuan. Pada contoh ini, gunakan
user_info.Schema Name
Skema tabel tujuan. Pada contoh ini, gunakan
public. -
Klik Apply untuk menyelesaikan konfigurasi.
-
-
Konfigurasikan processor PutSQL
-
Tambahkan processor PutSQL.
-
Atur JDBC Connection Pool ke DBCPConnectionPool yang telah Anda konfigurasi pada langkah sebelumnya. Pada contoh ini, nama DBCPConnectionPool adalah
hologres. -
Atur Support Fragmented Transactions ke false.
-
Klik Apply untuk menyelesaikan konfigurasi.
-
-
Mulai menulis data
Anda telah menyelesaikan konfigurasi. Jalankan semua processor untuk membaca file JSON dan menulis datanya ke Hologres. Pipeline aliran data NiFi terdiri dari tiga processor yang dihubungkan secara berurutan: GetFile (membaca file JSON lokal, 105 byte keluar) → ConvertJSONToSQL (mengonversi JSON menjadi pernyataan SQL, 83 byte keluar) → PutSQL (menjalankan pernyataan SQL untuk menulis ke database). Setelah dijalankan, antrian success dan sql yang kosong menunjukkan bahwa data berhasil ditulis ke Hologres.
-
Kueri data
Jalankan perintah berikut di Hologres untuk mengkueri tabel user_info dan melihat data yang diimpor.
SELECT * FROM user_info;Kueri mengembalikan empat kolom (
id,first_name,last_name, danemail) dan satu baris data: id=1, first_name=Sig, last_name=Olivo, email=solivo0@blinklist.com. Hasil ini mengonfirmasi bahwa data dari file JSON lokal berhasil ditulis ke Hologres.