2022年4月19日火曜日

PythonでApache Supersetのデータセット一覧を取得する

PythonでApache Supersetのデータセット一覧を取得するには、以下のサンプルコードを実行します。

list-dataset.py
# coding: utf-8
import pprint
import json
import requests

host = 'xxx.xxx.xxx.xxx:8080' # Supersetのホスト名またはIPアドレスとポート
user = 'admin' # ユーザ名
password = 'adminpass' # ユーザパスワード

base = "http://{}".format(host)
# ユーザ名とパスワードでアクセストークンの取得
res_login = requests.post(base + "/api/v1/security/login",
  json = {
    "password": user,
    "provider": "db",
    "refresh": True,
    "username": password
  }
)
access_token = res_login.json()['access_token']
print(access_token)

# CSRFトークンの取得
res_csrf = requests.get(base + "/api/v1/security/csrf_token",
  headers = {
    'Authorization': "Bearer {}".format(access_token)
  }
)
csrf_token = res_csrf.json()['result']
print(csrf_token)

# API呼び出し用Request headers
api_headers = {
  'Referer': base,
  'Authorization': "Bearer {}".format(access_token),
  'X-CSRFToken': csrf_token
}

# データセット一覧
res_ds = requests.get(base + "/api/v1/dataset",
  headers = api_headers
)
pprint.pprint(res_ds.json())
for ds in res_ds.json()['result']:
  print("---")
  print("dataset name: {}".format(ds['table_name'])) # データセット名
  print("kind: {}".format(ds['kind'])) # 種別

・実行方法
python3 list-dataset.py

関連情報

・その他のApache Supersetの情報は、以下のまとめページを参照してください。
Apache Supersetのまとめ

0 件のコメント:

コメントを投稿