Trino¶
サポートされている認証¶
- Basic(ユーザー名/パスワード)
前提条件¶
DataRobotでTrinoに接続するには、以下が必要です。
- Trinoデータベースに保存されたデータ
必須パラメーター¶
以下の表は、Trinoとの接続を確立するために最低限必要なフィールドの一覧です。
| 必須フィールド | 説明 | ドキュメンテーション |
|---|---|---|
Host |
Trinoコーディネーターのホスト名またはIPアドレス。 | Trinoドキュメント |
トラブルシューティング¶
| 問題 | 解決方法 | 説明 |
|---|---|---|
| DataRobotで操作を実行しようとすると、ファイアウォールが毎回IPアドレスをクリアするよう要求します。 | DataRobotで許可されたすべてのIPを追加します。 | 許可された送信元IPアドレスを参照してください。 許可されたIPをすでに追加している場合は、既存のIPが完全であることを確認してください。 |
コードの例¶
以下のPythonの例では、Trinoに接続してDataRobotにデータを移動する方法を示します。
DataRobotクライアントを初期化し、後で使用するためにデータベースの詳細を定義します。
api_token = '<token>'
endpoint = 'https://app.datarobot.com/api/v2'
import datarobot as dr
from datarobot.enums import DataStoreTypes
dr.Client(token=api_token, endpoint=endpoint)
TRINO_HOST = "datarobot.trino.galaxy.starburst.io"
TRINO_PORT = 443
USE_SSL = "true"
CATALOG = "<catalog>"
SCHEMA = "<schema>"
TABLE = "<table>"
QUERY = None
TRINO_USERNAME = "<username>"
TRINO_PASSWORD = "<password>"
TrinoドライバーのIDを特定するには、以下のいずれかの操作を行います。
-
TrinoドライバーのIDを作成します。
trino_driver = dr.DataDriver.create( class_name=DataStoreTypes.DR_DATABASE_V1, canonical_name='Trino Driver', database_driver='trino-v1', ) -
既存のTrinoドライバーのIDを参照します。
trino_driver = dr.DataDriver.get('<trino_driver_id>')
Trinoの資格情報を作成(または再利用)し、DataRobotに安全に保存します。
trino_credentials = dr.Credential.create_basic(
name='Trino Credentials',
user=TRINO_USERNAME,
password=TRINO_PASSWORD,
)
外部データストアへの接続を定義します。
datastore_fields = [
{"id": "host", "name": "Host Name", "value": TRINO_HOST},
{"id": "port", "name": "port", "value": str(TRINO_PORT)},
{"id": "ssl", "name": "ssl", "value": USE_SSL},
]
trino_datastore = dr.DataStore.create(
data_store_type=DataStoreTypes.DR_DATABASE_V1,
canonical_name='Trino Datastore',
driver_id=trino_driver.id,
fields=datastore_fields,
)
特定のデータソース(テーブルまたはクエリー)を指定します。
data_source_params = dr.DataSourceParameters(
data_store_id=trino_datastore.id,
catalog=CATALOG,
schema=SCHEMA,
table=TABLE,
query=QUERY,
)
trino_datasource = dr.DataSource.create(
data_source_type=DataStoreTypes.DR_DATABASE_V1,
canonical_name='Trino DataSource',
params=data_source_params,
)
Trinoからデータを取得し、スナップショットバージョンをDataRobotにインポートします。
trino_dataset = trino_datasource.create_dataset(
do_snapshot=True,
credential_id=trino_credentials.id,
)