Topik ini menjelaskan cara menulis data dari Simple Log Service (SLS) ke Hologres secara real-time, dengan contoh menggunakan Flink dan integrasi data DataWorks.
Prasyarat
-
Aktifkan Simple Log Service (SLS) dan buat project serta Logstore. Untuk informasi selengkapnya, lihat Gunakan Logtail untuk mengumpulkan dan menganalisis log teks dari instance ECS.
-
Aktifkan Hologres dan hubungkan ke tool pengembangan. Untuk informasi selengkapnya, lihat Proses penggunaan Hologres.
-
Jika Anda ingin menggunakan Flink untuk menulis data SLS ke Hologres, aktifkan Realtime Compute for Apache Flink dan buat project. Untuk informasi selengkapnya, lihat Aktifkan Flink yang sepenuhnya dikelola dan Buat dan kelola project.
-
Jika Anda ingin menggunakan integrasi data DataWorks untuk menulis data SLS ke Hologres, aktifkan DataWorks dan buat workspace. Untuk informasi selengkapnya, lihat Aktifkan DataWorks dan Buat workspace.
Informasi latar belakang
Simple Log Service (SLS) adalah platform observabilitas cloud-native yang menyediakan layanan berskala besar, berbiaya rendah, dan real-time untuk menangani data seperti log, metrik, dan jejak. Platform ini menawarkan kemampuan terpadu untuk pengumpulan data, pemrosesan, kueri dan analisis, visualisasi, peringatan, konsumsi, serta pengiriman, sehingga meningkatkan kemampuan digital Anda dalam skenario seperti R&D, O&M, operasional, dan keamanan.
Hologres adalah mesin komputasi waktu nyata yang berkinerja tinggi, andal, berbiaya rendah, dan dapat diskalakan, yang menyediakan solusi gudang data real-time serta layanan pencarian interaktif dalam sub-detik untuk dataset berskala besar. Hologres banyak digunakan dalam skenario seperti membangun mid-end data real-time, analisis detail halus, analisis self-service, profil pemasaran, segmentasi audiens, dan pengendalian risiko real-time. Anda dapat dengan cepat menulis data SLS ke Hologres untuk analisis dan kueri real-time, sehingga meningkatkan kemampuan eksplorasi data bisnis Anda.
Tulis data SLS ke Hologres menggunakan Flink
-
Siapkan data SLS.
Data SLS dalam contoh ini berasal dari data simulasi pada platform SLS, yang mensimulasikan log login dan konsumsi game. Jika Anda memiliki data bisnis, gunakan langsung.
-
Masuk ke Konsol Simple Log Service.
-
Di bagian Data Ingestion, klik Simulate Data.
-
Pada tab Simulate Data, klik Simulate di bawah Game Operation Logs.
-
Pada halaman Select Log Space, pilih Project dan Logstore, lalu klik Next.
-
Pada halaman Simulate Data, atur cakupan dan frekuensi, lalu klik Start Import.
-
Bidang dan data yang dihasilkan oleh simulasi ditampilkan di bawah ini. Untuk informasi selengkapnya, lihat Panduan cepat untuk kueri dan analisis.
Kolom
contentbertipe JSON.
-
-
Buat tabel Hologres.
Buat tabel di Hologres untuk menerima data tersebut. Anda dapat membuat indeks untuk bidang tertentu sesuai kebutuhan kueri guna meningkatkan efisiensi kueri. Untuk informasi selengkapnya tentang indeks, lihat Buat tabel. Pernyataan Data Definition Language (DDL) untuk contoh ini adalah sebagai berikut.
CREATE TABLE sls_flink_holo ( content JSONB , operation TEXT, uid TEXT, topic TEXT , source TEXT , c__timestamp TIMESTAMPTZ, receive_time BIGINT, PRIMARY KEY (uid) ); -
Tulis data menggunakan Flink.
Untuk menulis data SLS ke Hologres menggunakan Flink, lihat dokumen berikut:
-
Baca data SLS di Flink: Tabel sumber SLS.
-
Tulis data ke Hologres di Flink: Tabel sink Hologres.
Pekerjaan SQL berikut merupakan contoh penulisan data SLS ke Hologres menggunakan Flink. Bidang JSON ditulis langsung ke bidang JSON di Hologres. Karena Flink tidak mendukung tipe JSON native, tipe VARCHAR digunakan sebagai pengganti.
Catatan-
Untuk langkah-langkah lengkap mengenai pengembangan dan menjalankan pekerjaan SQL di Flink, lihat Peta pengembangan pekerjaan dan Jalankan pekerjaan.
-
SLS berisi data JSON. Anda dapat mengurai data JSON tersebut di Flink sebelum menulisnya, atau menulis data JSON langsung ke Hologres, tergantung kebutuhan Anda.
CREATE TEMPORARY TABLE sls_input ( content STRING, operation STRING, uid STRING, `__topic__` STRING METADATA VIRTUAL, `__source__` STRING METADATA VIRTUAL, `__timestamp__` BIGINT METADATA VIRTUAL, `__tag__` MAP<VARCHAR, VARCHAR> METADATA VIRTUAL ) WITH ( 'connector' = 'sls', 'endpoint' = 'sls_private_endpoint',--Titik akhir pribadi SLS. 'accessid' = 'your_access_id',--ID AccessKey Anda. 'accesskey' = 'your_access_key',--Rahasia AccessKey Anda. 'starttime' = '2024-08-30 00:00:00',--Waktu mulai untuk mengonsumsi log. 'project' = 'your_project_name',--Nama project SLS. 'logstore' = 'your_logstore_name'--Nama Logstore. ); CREATE TEMPORARY TABLE hologres_sink ( content VARCHAR, operation VARCHAR, uid VARCHAR, topic STRING , source STRING , c__timestamp TIMESTAMP , receive_time BIGINT ) WITH ( 'connector' = 'hologres', 'dbname' = 'your_holo_db_name', --Nama database Hologres. 'tablename' = 'your_holo_table_name', --Nama tabel Hologres yang menerima data. 'username' = 'your_access_id', --ID AccessKey Akun Alibaba Cloud Anda. 'password' = 'your_access_key', --Rahasia AccessKey Akun Alibaba Cloud Anda. 'endpoint' = 'your_holo_vpc_endpoint' --Titik akhir VPC instans Hologres. ); INSERT INTO hologres_sink SELECT content, operation, uid, `__topic__` , `__source__` , CAST ( FROM_UNIXTIME (`__timestamp__`) AS TIMESTAMP ), CAST (__tag__['__receive_time__'] AS BIGINT) AS receive_time FROM sls_input; -
-
Kueri data.
Kueri data SLS yang telah ditulis ke Hologres menggunakan Flink. Anda kemudian dapat melakukan pengembangan data sesuai kebutuhan.

Tulis data SLS ke Hologres menggunakan integrasi data DataWorks
-
Siapkan data SLS.
Data SLS dalam contoh ini berasal dari data simulasi pada platform SLS, yang mensimulasikan log login dan konsumsi game. Jika Anda memiliki data bisnis, gunakan langsung.
-
Masuk ke Konsol Simple Log Service.
-
Di bagian Data Ingestion, klik Simulate Data.
-
Pada tab Simulate Data, klik Simulate di bawah Game Operation Logs.
-
Pada halaman Select Log Space, pilih Project dan Logstore, lalu klik Next.
-
Pada halaman Simulate Data, atur cakupan dan frekuensi, lalu klik Start Import.
-
Bidang dan data yang dihasilkan oleh simulasi ditampilkan di bawah ini. Untuk informasi selengkapnya, lihat Panduan cepat untuk kueri dan analisis.
Kolom
contentbertipe JSON.
-
-
Buat tabel Hologres.
Buat tabel di Hologres untuk menerima data tersebut. Buat indeks untuk bidang tertentu sesuai kebutuhan kueri guna meningkatkan efisiensi kueri. Untuk informasi selengkapnya tentang indeks, lihat Buat tabel. Pernyataan DDL untuk contoh ini adalah sebagai berikut.
Catatan-
Dalam contoh ini,
uiddiatur sebagai primary key untuk memastikan keunikan data. Anda dapat mengubah pengaturan ini sesuai kebutuhan. -
Atur
uidsebagai distribution key. Hal ini memastikan bahwa data denganuidyang sama ditulis ke shard yang sama, sehingga meningkatkan performa kueri.
BEGIN; CREATE TABLE sls_dw_holo ( content JSONB , operation TEXT, uid TEXT, C_Topic TEXT , C_Source TEXT , timestamp BIGINT, PRIMARY KEY (uid) ); CALL set_table_property('sls_dw_holo', 'distribution_key', 'uid'); CALL set_table_property('sls_dw_holo', 'event_time_column', 'timestamp'); COMMIT; -
-
Konfigurasikan sumber data.
Sebelum menyinkronkan data, tambahkan sumber data untuk integrasi data ke workspace DataWorks Anda.
-
Untuk sumber data SLS, gunakan sumber data Loghub. Untuk informasi selengkapnya, lihat Konfigurasikan sumber data LogHub (SLS).
-
Konfigurasikan sumber data Hologres. Untuk informasi selengkapnya, lihat Konfigurasikan sumber data Hologres.
-
-
Sinkronkan data secara real-time.
Buat dan jalankan task sinkronisasi real-time di integrasi data. Untuk informasi selengkapnya, lihat Konfigurasikan task sinkronisasi real-time untuk data inkremental dalam satu tabel dan O&M untuk task sinkronisasi real-time.
Pada task sinkronisasi real-time yang dibuat untuk contoh ini, input diatur ke sumber data Loghub dan output diatur ke sumber data Hologres. Pemetaan bidang untuk sinkronisasi dikonfigurasikan seperti pada gambar berikut.

-
Kueri data.
Setelah task sinkronisasi real-time dimulai, Anda dapat mengkueri data SLS yang telah ditulis ke Hologres menggunakan integrasi data DataWorks.
