infra: historical sales -> iceberg.historical (Trino) + Superset dashboard scripts

This commit is contained in:
mo
2026-06-26 09:04:33 +00:00
parent 88ca338f5a
commit f4cd33b784
4 changed files with 164 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
import json
from superset.app import create_app
app = create_app()
with app.app_context():
from superset import db
from superset.models.core import Database
from superset.connectors.sqla.models import SqlaTable
name = "Trino \u00b7 Iceberg Lakehouse"
uri = "trino://admin@10.0.21.50:8089/iceberg"
dbobj = db.session.query(Database).filter_by(database_name=name).first()
if not dbobj:
dbobj = Database(database_name=name, sqlalchemy_uri=uri)
dbobj.expose_in_sqllab = True
db.session.add(dbobj)
db.session.commit()
print("created database id", dbobj.id)
else:
print("database exists id", dbobj.id)
tbl = (
db.session.query(SqlaTable)
.filter_by(table_name="historical_sales", schema="historical", database_id=dbobj.id)
.first()
)
if not tbl:
tbl = SqlaTable(table_name="historical_sales", schema="historical", database=dbobj)
db.session.add(tbl)
db.session.commit()
try:
tbl.fetch_metadata()
db.session.commit()
except Exception as e:
print("fetch_metadata warning:", str(e)[:200])
print("created dataset id", tbl.id)
else:
print("dataset exists id", tbl.id)
print("COLUMNS:", [c.column_name for c in tbl.columns])
print("DB_ID", dbobj.id, "TABLE_ID", tbl.id)