All Products
Search
Document Center

Realtime Compute for Apache Flink:Akses Serverless StarRocks ke Fluss (Beta)

Last Updated:Aug 11, 2026

Topik ini menjelaskan cara melakukan kueri terhadap data Fluss melalui Serverless StarRocks.

Informasi latar belakang

Fluss dapat didaftarkan sebagai sumber data eksternal melalui mekanisme External Catalog StarRocks, sehingga memungkinkan kueri dan analisis ad-hoc terhadap datanya. Dengan StarRocks, Anda dapat:

  • Menjalankan kueri terhadap data streaming di Fluss secara real-time dengan latensi tingkat detik.

  • Menjalankan kueri terhadap data historis yang telah ditiering ke Paimon.

  • Menggunakan Union Read untuk menggabungkan data real-time di Fluss dengan data historis di Paimon dalam satu pernyataan SQL, sehingga menyediakan akses transparan ke data panas dan dingin.

Prasyarat

  • Kluster Fluss telah dibuat.

  • Instans EMR Serverless StarRocks telah diaktifkan di VPC yang sama dengan kluster Fluss. Untuk detailnya, lihat Create an instance.

    Serverless StarRocks 3.3.13-1.2.0 atau versi lebih baru.

Prosedur

Langkah 1: Buat katalog Fluss

  1. Login ke konsol EMR Serverless StarRocks. Pada halaman daftar instans, klik Connect Instance di kolom Actions pada instans target. Untuk detailnya, lihat Connect to a StarRocks instance through EMR StarRocks Manager.

  2. Pada SQL Editor, jalankan pernyataan SQL berikut untuk mendaftarkan Fluss sebagai katalog eksternal:

    CREATE EXTERNAL CATALOG <catalog_name>
    PROPERTIES (
        'type' = 'fluss',
        'bootstrap.servers' = '<Fluss cluster bootstrap address>',
        'fluss.option.client.security.protocol' = 'SASL',
        'fluss.option.client.security.sasl.mechanism' = 'PLAIN',
        'fluss.option.client.security.sasl.username' = '<Fluss username>',
        'fluss.option.client.security.sasl.password' = '<Fluss password>'
    );

Deskripsi parameter

Parameter

Wajib

Deskripsi

catalog_name

Ya

Nama katalog. Hanya boleh menggunakan huruf, angka, dan garis bawah. Harus dimulai dengan huruf. Maksimal 64 karakter.

type

Ya

Jenis sumber data. Nilainya tetap fluss.

bootstrap.servers

Ya

Alamat bootstrap kluster Fluss. Tersedia di halaman detail instans Fluss.

fluss.option.client.security.protocol

Ya

Protokol otentikasi. Secara default bernilai SASL di Alibaba Cloud.

fluss.option.client.security.sasl.mechanism

Ya

Mekanisme otentikasi SASL. Secara default bernilai PLAIN (login dengan username dan password).

fluss.option.client.security.sasl.username

Ya

Username untuk otentikasi SASL.

fluss.option.client.security.sasl.password

Ya

Password untuk otentikasi SASL.

Setelah katalog dibuat, Anda dapat langsung menjalankan kueri menggunakan nama tiga bagian (Catalog.Database.Table) tanpa perlu mengganti konteks. Nama database Fluss default adalah fluss:

SELECT * FROM <catalog_name>.<database_name>.<table_name>;

Anda juga dapat beralih ke katalog Fluss sebelum menjalankan kueri:

-- Switch catalog and database
SET CATALOG <catalog_name>;
USE <db_name>;

-- Query the target table
SELECT COUNT(*) FROM <table_name> LIMIT 10;

Atau, lakukan dalam satu langkah:

USE <catalog_name>.<db_name>;

Langkah 2: Tentukan mode kueri menggunakan sufiks

Untuk tabel Fluss yang telah mengaktifkan integrasi lakehouse-stream (table.datalake.enabled = 'true' diatur saat pembuatan tabel), datanya tersimpan baik di kluster Fluss (data panas real-time) maupun di data lake Paimon (data historis yang telah ditiering). StarRocks mendukung penentuan mode kueri dengan menambahkan sufiks ke nama tabel, sehingga memungkinkan akses fleksibel ke data di lapisan berbeda. Mode kueri tersebut adalah:

Mode kueri

Sufiks

Deskripsi

Skenario penggunaan

Kueri data real-time

$rt

Menjalankan kueri terhadap data inkremental real-time di Fluss yang belum diarsipkan ke data lake, dengan latensi tingkat detik.

Skenario yang sensitif terhadap latensi, seperti pemantauan dan peringatan real-time.

Kueri data historis

$lake

Menjalankan kueri terhadap seluruh data historis yang telah ditiering ke Paimon.

Analisis offline, pelaporan, dan skenario serupa lainnya.

Kueri gabungan

Tidak ada

StarRocks secara otomatis menggabungkan lapisan Fluss (data panas, latensi tingkat detik) dengan lapisan Paimon (data dingin, latensi tingkat menit) dan mengembalikan tampilan lengkap terbaru.

Skenario yang memerlukan akses simultan ke data panas dan dingin.

Sebagai contoh, pertimbangkan tabel pesanan penjualan online order, yang mencatat data pesanan pengguna secara real-time (termasuk bidang seperti ID pesanan, jumlah pesanan, waktu pesanan, dan wilayah) dan telah mengaktifkan integrasi lakehouse-stream. Contoh berikut menunjukkan skenario bisnis khas untuk ketiga mode kueri tersebut:

-- Scenario 1: Real-time monitoring of today's order count and amount ($rt, second-level latency)
SELECT COUNT(*) AS order_cnt, SUM(order_amount) AS total_amount
FROM `fluss_catalog`.`fluss`.order$rt
WHERE order_time >= CURRENT_DATE;

-- Scenario 2: Calculate week-over-week sales growth rate ($lake, query Paimon historical data)
SELECT
    this_week AS this_week_sales,
    last_week AS last_week_sales,
    ROUND((this_week - last_week) * 100.0 / NULLIF(last_week, 0), 2) AS wow_growth_rate
FROM (
    SELECT
        SUM(CASE WHEN YEARWEEK(order_time) = YEARWEEK(CURRENT_DATE)     THEN order_amount ELSE 0 END) AS this_week,
        SUM(CASE WHEN YEARWEEK(order_time) = YEARWEEK(CURRENT_DATE) - 1 THEN order_amount ELSE 0 END) AS last_week
    FROM `fluss_catalog`.`fluss`.order$lake
) t;

-- Scenario 3: Query total order amount by region in the past 7 days (no suffix, Union Read merges hot and cold data)
SELECT region, SUM(order_amount) AS total_amount
FROM `fluss_catalog`.`fluss`.order
WHERE order_time >= CURRENT_DATE - INTERVAL '7' DAY
GROUP BY region
ORDER BY total_amount DESC;

Operasi terkait

Lihat katalog yang telah dibuat

-- View all catalogs
SHOW CATALOGS;

-- View the CREATE statement of a specified catalog
SHOW CREATE CATALOG <catalog_name>;

Lihat skema tabel Fluss

DESCRIBE <catalog_name>.<database_name>.<table_name>;

Lihat daftar database Fluss

SHOW DATABASES FROM <catalog_name>;

Hapus katalog Fluss

Menghapus katalog hanya menghapus pemetaan di StarRocks. Data aktual di Fluss tidak terpengaruh.

DROP CATALOG <catalog_name>;