03 Muat data — dua cara
26.5M tick yang sama dimuat dua kali: ClickPipes, pipeline terkelola yang akan Anda pakai di produksi, lalu one-liner s3() — dan kapan memilih yang mana.
Datanya tersimpan di bucket S3 publik, jadi tidak perlu key atau kredensial apa pun — Anda cukup mengarahkan ke URL-nya. Transfernya berjalan di sisi server dari S3 ke ClickHouse, jadi 26.5 juta baris tidak dialirkan lewat laptop Anda dan tidak bergantung pada Wi-Fi tempat acara.
Anda akan memuat 26.5M tick yang sama dengan dua cara berbeda supaya bisa melihat keduanya.
Metode 1 adalah ClickPipes, pipeline terkelola berbasis klik yang akan Anda pakai di produksi.
Metode 2 adalah satu baris SQL — cara tercepat memasukkan data saat demo. Kerjakan berurutan;
satu TRUNCATE di antaranya menjaga jumlah barisnya tetap bersih.
Metode 1 — ClickPipes, cara terkelola untuk produksi
ClickPipes adalah layanan ingesti yang sepenuhnya terkelola: arahkan ke object storage atau sebuah stream dan ia akan terus memuat data, tanpa konektor yang perlu Anda bangun. Ini keseluruhan alurnya.
- Di menu sebelah kiri, klik Data sources, lalu tombol Create ClickPipe.

Data sources juga tempat "Upload file" dan "Add sample data" berada.
- Di bawah Select the data source, pilih Amazon S3 (paling atas pada daftar Popular).

- Pada Setup your ClickPipe connection, beri name apa saja, atur Authentication method → Public (bucket-nya publik), dan tempelkan ini ke S3 file path:
https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquetBiarkan Continuous ingestion tetap off — ini file sekali pakai — lalu klik Incoming data →.

- Pada Incoming data, ClickHouse menampilkan pratinjau file yang cocok — Anda akan melihat
fx/ticks.parquetsebesar 158.43 MB. Pastikan File type → Parquet, biarkan kompresi pada Detect automatically, lalu klik Parse information →.

- Pada Parse information, ClickHouse menampilkan pratinjau satu baris contoh dan mendeteksi
kolomnya. Di bawah Upload data to, pilih Existing table, pilih Database yang
memuat tabel Anda (biasanya
default), dan atur Table →forex. Periksa bahwa field sumber (datetime,bid,ask,base,quote) sejajar dengan kolom yang sesuai — semuanya seharusnya terpetakan otomatis. Biarkan field tambahan_path/_file/_sizetidak terpetakan. Lalu klik Details and settings →.

Tangkapan layar ini menunjukkan database techthai milik presenter — gunakan database mana pun
yang memuat tabel Anda.
- Pada Details and settings, biarkan Permissions default sebagaimana adanya (ClickPipes membuatkan user writer khusus untuk Anda), lalu klik Create ClickPipe.

Tanpa job Spark, tanpa loader buatan sendiri.
- Anda dibawa kembali ke Data sources, tempat ClickPipe Anda muncul. Dalam beberapa detik Status-nya berubah menjadi Completed dan Records menunjukkan 26,488,218 — semua tick termuat dari object storage.

Periksa apa yang termuat. Jalankan ini di SQL Console:
-- expect 26,488,218 ticks across 12 pairs
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;Yang seharusnya Anda lihat
ticks = 26,488,218 dan pairs = 12. Itu ~26.5 juta baris yang dimuat dari object storage dalam hitungan detik.
Metode 2 — one-liner s3(), tercepat saat demo
Sekarang muat data yang persis sama dengan satu pernyataan SQL, langsung dari file publik itu. Pertama kosongkan tabelnya supaya jumlah barisnya tidak berganda, lalu insert:
-- clear the rows ClickPipes just loaded so we don't double up
TRUNCATE TABLE forex;
-- load all ~26.5M ticks from the public S3 file in one line (server-side)
INSERT INTO forex
SELECT * FROM s3('https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet', NOSIGN, 'Parquet');
-- and check again (expect 26,488,218)
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;NOSIGN berarti "tanpa kredensial" — hanya itu yang dibutuhkan untuk membaca bucket publik.
SELECT * langsung bekerja karena urutan kolom tabel sama dengan urutan di file.
ClickPipes vs fungsi s3() — kapan pakai yang mana
26,488,218 baris yang sama, dimuat dengan dua cara. Bedanya ada pada apa yang terjadi setelah pemuatan pertama — apakah Anda ingin pipeline terkelola yang berjalan terus atau sekadar pembacaan sekali jalan.
| ClickPipes | Fungsi tabel s3() | |
|---|---|---|
| Apa itu | Layanan ingesti yang sepenuhnya terkelola dan Anda siapkan di console | Fungsi SQL yang Anda panggil langsung di dalam kueri |
| Paling cocok untuk | Produksi dan pemuatan berkelanjutan yang ingin Anda jalankan lalu lupakan | Pemuatan sekali jalan yang cepat, eksplorasi ad-hoc, script |
| Berkelanjutan / file baru | Bisa terus mengawasi bucket atau stream dan memuat data baru secara berkelanjutan | Sekali jalan — hanya membaca yang ada setiap kali Anda menjalankannya |
| Penyiapan | UI berpemandu, tanpa perlu SQL | Satu pernyataan INSERT … SELECT |
| Pemantauan dan retry | Sudah termasuk — status, penanganan error, dan retry di console | Tidak ada — Anda menjalankannya ulang sendiri kalau gagal |
| Sumber | Banyak: S3, GCS, Azure, Kafka dan stream lain, CDC Postgres/MySQL, dan lainnya | Hanya object storage (kerabatnya: gcs(), azureBlobStorage(), url()) |
Aturan praktis: pilih ClickPipes kalau data terus mengalir masuk dan Anda ingin ia
terkelola; pilih s3() kalau Anda hanya ingin menarik sebuah file sekarang. Hari ini Anda
memakai one-liner supaya cepat mulai mengueri — sekarang mari kita kueri datanya.
02 Buat tabel
Satu CREATE TABLE untuk 26.5M tick forex, dan alasan base serta quote memimpin sort key — keputusan yang akan Anda rasakan di modul 04.
04 Jalankan kueri pasar
Tujuh kueri terhadap 26.5M tick, masing-masing menggantikan satu halaman SQL: hitungan aproksimasi, topK, candlestick OHLC, persentil, kombinator -If, argMax, dan finale sort key.