Files

43 lines
1.4 KiB
Python

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)