first commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# =============================================================================
|
||||
# eBdesk SiCABE — Ingestion agent OpenMetadata: dbt (LINEAGE bronze→silver→gold)
|
||||
# =============================================================================
|
||||
# Mengapa file ini ada:
|
||||
# Ingestion metadata (`ingest-trino.yaml`) hanya mengambil tabel & kolom — TIDAK
|
||||
# menghasilkan lineage, karena lineage berasal dari definisi transformasi, bukan
|
||||
# dari katalog. Transformasi bronze→silver→gold dijalankan oleh dbt, sehingga
|
||||
# lineage-nya diambil dari ARTEFAK dbt:
|
||||
# target/manifest.json (grafik model: ref()/source() → relasi antar tabel)
|
||||
# target/catalog.json (skema kolom per model → lineage antar KOLOM)
|
||||
# target/run_results.json(hasil eksekusi/test)
|
||||
#
|
||||
# Artefak dibuat di dalam container Airflow (project di /home/airflow/dbt/sicabe):
|
||||
# dbt docs generate --profile trino --target prod
|
||||
#
|
||||
# ⚠️ Catatan: `target/` berada di layer container (bukan bind-mount), jadi artefak
|
||||
# HILANG bila container Airflow di-recreate → jalankan `dbt docs generate` lagi
|
||||
# sebelum ingestion dbt.
|
||||
#
|
||||
# Jalankan (butuh OM_JWT_TOKEN):
|
||||
# ./scripts/ingest-openmetadata.sh --workflow config/openmetadata/ingest-dbt.yaml
|
||||
# =============================================================================
|
||||
source:
|
||||
type: dbt
|
||||
# Service database tempat model dbt ditautkan (harus sama dengan service Trino).
|
||||
serviceName: trino_sicabe
|
||||
sourceConfig:
|
||||
config:
|
||||
# Enum-nya huruf besar: DbtConfigType.DBT = 'DBT' (bukan 'dbt').
|
||||
type: DBT
|
||||
dbtConfigSource:
|
||||
dbtConfigType: local
|
||||
# Artefak dbt dibaca dari DBT_TARGET_PATH (lihat docker-compose.yml), BUKAN dari
|
||||
# <project>/target di dalam bind-mount repo — bind-mount itu tidak bisa ditulis
|
||||
# container (uid host vs uid 50000), sehingga artefaknya memang tidak pernah ada
|
||||
# di sana dan ingestion lineage selalu menghasilkan 0 relasi.
|
||||
dbtManifestFilePath: /tmp/dbt/target/manifest.json
|
||||
dbtCatalogFilePath: /tmp/dbt/target/catalog.json
|
||||
dbtRunResultsFilePath: /tmp/dbt/target/run_results.json
|
||||
dbtUpdateDescriptions: true
|
||||
dbtUpdateOwners: true
|
||||
includeTags: false
|
||||
searchAcrossDatabases: false
|
||||
|
||||
sink:
|
||||
type: metadata-rest
|
||||
config: {}
|
||||
|
||||
workflowConfig:
|
||||
loggerLevel: INFO
|
||||
openMetadataServerConfig:
|
||||
hostPort: http://openmetadata-server:8585/api
|
||||
authProvider: openmetadata
|
||||
securityConfig:
|
||||
jwtToken: ${OM_JWT_TOKEN}
|
||||
@@ -0,0 +1,71 @@
|
||||
# =============================================================================
|
||||
# eBdesk SiCABE — Ingestion agent OpenMetadata: Trino (Iceberg via Nessie)
|
||||
# =============================================================================
|
||||
# Menjelaskan mengapa file ini ada:
|
||||
# Membuat SERVICE di OpenMetadata hanya menyimpan konfigurasi koneksi. Metadata
|
||||
# sesungguhnya (database → schema → tabel → kolom) baru diambil oleh AGENT
|
||||
# (ingestion pipeline). Halaman Explore membaca search index, dan index itu
|
||||
# hanya terisi setelah agent berjalan. Tanpa file ini, service `trino_sicabe`
|
||||
# ada tetapi Explore kosong.
|
||||
#
|
||||
# Catatan skema (penting, berbeda dari skema API):
|
||||
# - di API OM 1.13.1 field TLS 'verifySSL' DITOLAK; di Ingestion Framework
|
||||
# yang benar adalah `verify` (string), di sini "false" karena sertifikat Trino
|
||||
# self-signed.
|
||||
# - `username` wajib di level config; `authType` memakai BasicAuth (username+password).
|
||||
# - Identitas agent = `svc_om` dengan role `data-catalog`: baca-saja
|
||||
# (select + kolom "*" untuk SEMUA tabel) sehingga katalog Explore LENGKAP,
|
||||
# namun TANPA hak write/ddl. (Sebelumnya identitas ini memakai `data-analyst`
|
||||
# sehingga katalog hanya sebagian.)
|
||||
#
|
||||
# Jalankan (butuh TRINO_SVC_OM_PASSWORD & OM_JWT_TOKEN di environment):
|
||||
# metadata ingest -c ingest-trino.yaml
|
||||
# =============================================================================
|
||||
source:
|
||||
type: trino
|
||||
serviceName: trino_sicabe
|
||||
serviceConnection:
|
||||
config:
|
||||
type: Trino
|
||||
scheme: trino
|
||||
hostPort: trino-coordinator:8443
|
||||
username: svc_om
|
||||
# BasicAuth hanya berisi `password` (username ada di level config) —
|
||||
# sesuai contoh resmi 'metadata ingest' untuk Trino.
|
||||
authType:
|
||||
password: ${TRINO_SVC_OM_PASSWORD}
|
||||
catalog: iceberg
|
||||
# `verify` adalah path CA bundle (string) — OM hanya meneruskannya bila
|
||||
# truthy, dan klien Trino memperlakukannya sebagai path. Memakai sertifikat
|
||||
# Trino (diekspor scripts/generate-trino-keystore.sh, di-mount ke
|
||||
# /etc/ssl/trino) membuat TLS DIVERIFIKASI, bukan dimatikan.
|
||||
verify: /etc/ssl/trino/trino.crt
|
||||
supportsMetadataExtraction: true
|
||||
supportsProfiler: true
|
||||
supportsQueryComment: true
|
||||
# Batasi ke namespace yang dikelola (bronze/silver/gold). Karena ini
|
||||
# pattern di level KONEKSI, filter schema juga tersedia di sourceConfig.
|
||||
schemaFilterPattern:
|
||||
includes:
|
||||
- bronze
|
||||
- silver
|
||||
- gold
|
||||
sourceConfig:
|
||||
config:
|
||||
type: DatabaseMetadata
|
||||
markDeletedTables: false
|
||||
includeTables: true
|
||||
includeViews: true
|
||||
includeTags: false
|
||||
|
||||
sink:
|
||||
type: metadata-rest
|
||||
config: {}
|
||||
|
||||
workflowConfig:
|
||||
loggerLevel: INFO
|
||||
openMetadataServerConfig:
|
||||
hostPort: http://openmetadata-server:8585/api
|
||||
authProvider: openmetadata
|
||||
securityConfig:
|
||||
jwtToken: ${OM_JWT_TOKEN}
|
||||
Reference in New Issue
Block a user