b8a5b10bc4
Assign owners to all 177 tables and descriptions + tier tags to the 18 business tables, then trigger SearchIndexing + DataInsights apps so the platform Data Insights page shows real totals, description coverage and tier distribution instead of empty plots.
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
import json, os, time, urllib.request, urllib.parse, urllib.error
|
|
|
|
OM = "http://openmetadata-server:8585/api"
|
|
H = {"Authorization": "Bearer " + os.environ["OM_TOKEN"]}
|
|
now = int(time.time() * 1000)
|
|
start = now - 7 * 86400000
|
|
|
|
|
|
def get(path):
|
|
r = urllib.request.Request(OM + path, headers=H)
|
|
try:
|
|
with urllib.request.urlopen(r, timeout=30) as resp:
|
|
return resp.status, json.loads(resp.read().decode())
|
|
except urllib.error.HTTPError as e:
|
|
return e.code, e.read().decode()[:160]
|
|
|
|
|
|
charts = [
|
|
"total_data_assets",
|
|
"percentage_of_data_asset_with_owner",
|
|
"percentage_of_data_asset_with_description",
|
|
"total_data_assets_by_tier",
|
|
]
|
|
for c in charts:
|
|
p = "/v1/analytics/dataInsights/system/charts/name/%s/data?start=%d&end=%d" % (c, start, now)
|
|
st, r = get(p)
|
|
summary = r
|
|
if isinstance(r, dict):
|
|
res = r.get("results") or r.get("data") or []
|
|
summary = "results=%d e.g. %s" % (len(res), json.dumps(res[:2])[:220])
|
|
print("%-45s %s %s" % (c, st, summary))
|