Files

84 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2026-10-09 02:35:14 +07:00
# Dremio OSS — Konfigurasi `deploy/`
Dremio ditambahkan sebagai **query engine paralel** di atas catalog Nessie yang
sama dengan Trino & StarRocks (membuktikan dua engine berbagi satu catalog tanpa
korupsi metadata).
| Item | Nilai |
|---|---|
| Image | `dremio/dremio-oss:${DREMIO_VERSION:-25.2.0}` |
| Web UI | `http://localhost:${DREMIO_UI_PORT:-12947}` |
| JDBC | `${DREMIO_JDBC_PORT:-12010}` → container `31010` |
| Arrow Flight | `${DREMIO_FLIGHT_PORT:-12011}` → container `32010` |
| Auth | **Lokal** (bukan OIDC — Dremio OSS tidak menyediakan OIDC) |
| Penyimpanan internal | Volume `dremio-data` (bukan PostgreSQL) |
## First-run & Source Nessie — otomatis via `bootstrap.sh` (Step 9)
`bootstrap.sh` **Step 9** menangani first-run admin + registrasi source Nessie
secara idempoten (aman diulang):
1. Tunggu Dremio siap.
2. Buat admin first-run bila belum ada — `PUT /apiv2/bootstrap/firstuser`
(body flat, tanpa auth; `400` = sudah pernah dibuat → dilewati).
3. Panggil `scripts/dremio/register-nessie-source.sh` untuk source Nessie.
Kredensial default (override lewat `.env`):
| Variabel | Default |
|---|---|
| `DREMIO_USER` | `admin` |
| `DREMIO_PASSWORD` | `dremio_admin_DevOnly1` |
| `DREMIO_ADMIN_EMAIL` | `admin@sicabe.local` |
Jalankan hanya step ini:
```bash
cd deploy
./bootstrap.sh --step 9
```
### Manual (alternatif)
1. Buka `http://localhost:12947` → buat akun admin pertama (form first-run).
2. Daftarkan source Nessie lewat script:
```bash
cd deploy
set -a; source config/environment.defaults.sh; source .env; set +a
DREMIO_USER=<admin> DREMIO_PASSWORD='<password>' \
./scripts/dremio/register-nessie-source.sh
```
Script: login (`/apiv2/login`, header `Authorization: _dremio<token>`) → cek
existing (`/api/v3/catalog/by-path/<name>`) → `POST /api/v3/catalog`
(`type=NESSIE`). Idempotent (source sudah ada → sukses tanpa buat ulang).
> **Temuan (diuji 2026-09-10, Dremio OSS 25.2.0):** klaim docs bahwa Catalog API
> "unable to retrieve or manage Nessie sources" (DX-64994) **tidak akurat** —
> create **dan** GET by-path berhasil. Kunci config yang benar:
> - **JANGAN** sertakan `storageType` (ditolak: `Invalid value found at: storageType`).
> - `awsRootPath` format **`/bucket/path`** (TANPA prefix `s3://`), mis. `/iceberg-data/warehouse`.
> - `credentialType=ACCESS_KEY`, `awsAccessKey`/`awsAccessSecret`, `secure=false`.
> - `propertyList`: `fs.s3a.path.style.access=true`, `fs.s3a.endpoint=minio:9000`,
> `dremio.s3.compat=true`.
Verifikasi query (data yang sama ditulis Trino):
```sql
SELECT * FROM nessie.demo.t ORDER BY id; -- 2 baris: alpha, beta
```
### Alternatif: via UI
**Add Source → Nessie** dengan field: endpoint `http://nessie:19120/api/v2`,
Authentication `None`, Storage AWS S3/MinIO (path-style, endpoint `minio:9000`),
access key/secret MinIO.
## Catatan
- **Dua engine berbagi satu Nessie catalog**: tulis dari Dremio (CTAS/INSERT)
langsung terlihat di Trino dan sebaliknya. Lakukan tulis secara bergantian
(bukan simultan) untuk menghindari konflik concurrency Nessie.
- Nessie **tidak mendukung Iceberg spec v3** → gunakan `format-version=2`.
- Referensi: `experiments/nessie-dremio/README.md` (H2 terbukti).