infra: historical sales -> iceberg.historical (Trino) + Superset dashboard scripts
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user