first commit
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user