For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/developers-python-sdk-connect-dataset.md.
  • 🇯🇵 日本語
  • Lakehouse Manager Dataset コネクタ

    Lakehouse Manager テーブルと相互作用するためにコネクタを作成し、それを使用するには、デフォルトのデータセットまたはカスタムデータセットに接続できます

    目的

    Info

    Dataset コネクタを使用すると、クエリを実行したり、コンテンツをプログラムで挿入、更新、削除したりできます。

    Lakehouse Manager に接続する

    Lakehouse Manager テーブル と相互作用するためにコネクタを作成し、それを使用するには、デフォルトのデータセット または カスタムデータセット に接続できます。

    以下に、各タイプで使用される接続文字列を示します。

    from forepaas.dwh import connect
    
    cn_default = connect("dwh/default_dataset/")
    cn_custom = connect("dwh/custom_dataset_name/")

    その後、cn_default.list() メソッドを使用して、Lakehouse Manager に利用可能なテーブルを確認できます。その後、cn_default.select(...) または cn_default.query(...) を使用して、希望するテーブルからデータを取得できます。

    この記事の次のセクションで、詳細を確認できます。

    Warning

    テーブルは、Connector.list() メソッドやその他のコネクタ オブジェクト メソッドを使用する前に、Lakehouse Manager に読み込まれる必要があります。 言い換えると、テーブルを最初に Lakehouse Manager で作成する必要があります。 そのテーブルを SDK で使用するには、テーブルを最初に Lakehouse Manager で作成する必要があります。

    コネクタメソッド

    list()

    データセット内のテーブルのリストを取得します。

    出力

    Type説明
    listテーブル名のリスト["chicago_calendar_full", "stations_rides"]

    query(sql, limit=-1, return_type='dataframe')

    互換性のあるsource上でSQLクエリを実行し、データフレーム(デフォルト)、イテラブルカーソル、または辞書のリストを返します。

    入力パラメータ

    NameType説明
    sqlstr実行するSQLクエリselect * from stations_rides
    limitint最大結果数(-1: 制限なし)-1
    return_typestr返すタイプ'dataframe', 'cursor' または 'dict'

    出力

    Type説明
    mixed選択したタイプ(データフレーム、カーソル、リスト[辞書])の結果

    select(table_name, conds={}, limit=-1, return_type='dataframe' )

    シンプルなフィルタでテーブルからデータを抽出し、データフレーム(デフォルト)、イテラブルカーソル、または辞書のリストを返します。

    入力パラメータ

    NameType説明
    table_namestrソーステーブル名stations_rides
    condsdictフィルタとして使用する値の辞書。Keysは、valuesをフィルタリング値として使用してフィルタリングする属性です。ListはIN演算子を生成し、それ以外は=演算子を生成しますNone / {"date":["01/11/2013", "01/12/2013"], "station_name":"Harlem-Lake"}
    limitint最大結果数。(-1: 制限なし)-1
    return_typestring返すタイプ'dataframe', 'cursor' または 'dict'

    出力

    Type説明
    mixed選択したタイプ(データフレーム、カーソル、リスト[辞書])の結果

    update(table_name, set, conds=None, ignore=False)

    シンプルなパラメータを通じてUPDATESQLクエリを実行し、影響を受けた行の数を返します。

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'
    setdict更新する値の辞書。キーは更新するフィールド名、値は更新値です。{“rides”:0}
    condsdictフィルタとして使用する値の辞書。Keysは、valuesをフィルタリング値として使用してフィルタリングする属性です。ListはIN演算子を生成し、それ以外は=演算子を生成しますNone / {"date":["01/11/2013", "01/12/2013"], "station_name":"Harlem-Lake"}
    ignorebooleanTrueの場合、UPDATE IGNOREクエリを実行します。それ以外はUPDATEクエリを実行します。True, False

    出力

    Type説明
    int更新された行の数(DBMSが互換性がある場合)42

    delete(table_name, conds)

    特定のクエリとフィルタリング条件に基づいて削除を実行し、削除された行の数を返します。 フィルタが必要ない場合は、以下に説明するtruncateメソッドを使用してください。

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'
    condsdictフィルタとして使用する値の辞書。Keysは、valuesをフィルタリング値として使用してフィルタリングする属性です。ListはIN演算子を生成し、それ以外は=演算子を生成します{"station_name":"Harlem-Lake"}

    出力

    Type説明
    int削除された行の数(DBMSが互換性がある場合)42

    truncate(table_name)

    テーブルからすべての行を削除(クリア)します。

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'

    出力

    Type説明
    booleanトランクが成功した場合はTrue。テーブルが存在しない場合はFalse。その他の場合は例外を発生させます。True, False

    insert(table_name, rows, odku=0, returnWarnings=False)

    挿入クエリを実行し、オプションでon duplicate key update(ODKU)操作を追加し、バッチの挿入に関する統計を返します。 ODKUオプションを有効にすると、クエリは自動的に既存の行を更新し、エラーを返す代わりに、各行に挿入する既存のプライマリキー値に基づいて更新を実行します。

    Warning

    各行を挿入する場合、必ず目的のテーブルのプライマリキーを提供する必要があります。

    Info

    この関数の代わりにモジュールbulk_insertを使用することをお勧めします。このページのコネクタメソッドセクションに記載されているように、データチャンクと挿入の管理がより優れています。

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'
    rowsdataframe挿入または更新するデータフレーム。pd.DataFrame([ {"station_id": 1, "station_name":"First Station"}, {"station_id":2, "name":"Second Station"}])
    odkubooleanFalse = ODKUを実行しない; True = ODKUを実行するTrue, False
    returnWarningsbooleanTrueの場合、各種類の警告文字列の集計とカウントを返しますTrue / False

    出力

    Type説明
    dict挿入バッチに関する統計。{"inserts":13, "skipped":10, "updates":3, "records": 30, "affected":4, "warnings": {"integer truncated":4}}

    drop_table(table_name)

    クエリエンジンからテーブルを削除します

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'

    出力

    Type説明
    boolean削除に成功した場合はTrue。テーブルが存在しない場合はFalse。その他の場合は例外を発生させます。True, False

    get_table_schema(table_name, catalog_name, schema_name, strict=True)

    テーブルスキーマをforepaas.dwh.attributes.AttributeSchemaオブジェクトのリストとして返します

    入力パラメータ

    NameType説明
    table_namestrソーステーブルの名前'stations_rides'
    catalog_namestrカタログの名前。Noneの場合、デフォルトのコネクタのカタログが使用されます。'default_dataset'
    schema_namestrスキーマの名前。Noneの場合、テーブルの一意性はすべてのカタログのスキーマにわたって確認されます。'default_schema'
    strictbooltrueの場合、列にサポートされていないタイプがある場合はエラーを発生させます。それ以外は警告をログに記録します。True / False

    出力パラメータ

    Type説明
    listAttributeSchemaオブジェクトには4つの属性を持つことができます: name, data_type, nullable & default_value

    例出力

    [
        AttributeSchema(name='id', data_type=DataType.INT, nullable=False),
        AttributeSchema(name='name', data_type=DataType.VARCHAR, nullable=True),
        AttributeSchema(name='email', data_type=DataType.VARCHAR, nullable=False, default_value=''),
        AttributeSchema(name='created_at', data_type=DataType.TIMESTAMP, nullable=False)
    ]

    LogicalObject メソッド

    LogicalObject メソッドを使用するには、まず以下のようにインポートする必要があります。

    from forepaas.dwh.logical import LogicalObject
    
    logical = LogicalObject() 
    logical.list()

    build(objects)

    Lakehouse Manager で論理的なビルドを実行します。

    入力パラメータ

    名前タイプ説明
    objectslistビルドする論理オブジェクトのリスト。['user_data', 'product_metrics']

    出力

    タイプ説明
    intビルド結果のステータスコード。

    出力例

    200 # Build successful

    create_from_physical(table, dataset='default_dataset', **kwargs)

    既存の物理テーブルに基づいて論理オブジェクトを作成します。

    注意: 現在、Trino および PostgreSQL カタログのみで動作します。

    入力パラメータ

    名前タイプ説明
    tablestr物理テーブルの名前。'raw_customer_data'
    datasetstrデータセット名。Trino/PostgreSQL データセットのみで動作します。デフォルト: 'default_dataset''my_trino_dataset'
    kwargsdictAPI に追加設定として JSON コンテンツとして渡される名前付き引数。{'owner': 'data_team', 'tags': ['customers', 'raw']}

    出力

    タイプ説明
    LogicalObject作成された論理オブジェクト。

    get(name)

    Lakehouse Manager から論理オブジェクトを取得します。

    入力パラメータ

    名前タイプ説明
    namestr取得する論理オブジェクトの名前。'sales_dashboard_view'

    出力

    タイプ説明
    LogicalObject取得された論理オブジェクト。

    list(dataset_name='default_dataset')

    Lakehouse Manager にあるすべての論理オブジェクトをリスト表示します。

    入力パラメータ

    名前タイプ説明
    dataset_namestr論理オブジェクトをフィルタリングするデータセット。デフォルトは "default_dataset"'default_dataset'

    出力

    タイプ説明
    list[LogicalObject]論理オブジェクトのリスト。

    remove(name)

    Lakehouse Manager から論理オブジェクトを削除します。

    入力パラメータ

    名前タイプ説明
    namestr削除する論理オブジェクトの名前。'old_temp_table'

    出力

    タイプ説明
    object削除操作のステータス。

    出力例

    {'success': True, 'info': None, '_id': '690325793a04befefec45bf1', 'uid': None}

    補足情報

    PostgreSQL または Snowflake ライブラリによって収集されるメトリクスの不足により、Data Platform コネクタによって返される統計は限定的な要因に基づいて計算されます。

    • エラーが発生しない場合、inserts および skipped 行は、挿入前後の総行数および提供された records (挿入するデータの長さ) に基づいて計算されます。例えば、5 行のテーブルに3行を挿入しようとし、結果が7行の合計になった場合、2行が inserted され、1行が skipped されたと考えられます。一方、records は3です。
    • データのバッチでエラーが発生した場合、そのバッチ全体が警告としてマークされます。
    • Snowflake に関する注意: insert_many() および insert_dataframe() によって返される統計には warnings が計算されません。挿入に失敗したすべての行またはスキップされた行は skipped としてマークされます。

    さらに詳しく

    当社のソリューションを実装するためのトレーニングや技術サポートが必要な場合は、営業担当者にお問い合わせください、または このリンク をクリックして見積もりを受け取り、当社のプロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼してください。

    Discord の専用 チャネル で Data Platform を構築するチームと直接質問し、フィードバックを共有し、交流してください。

    OVHcloud サービスについてサポートが必要な場合は、ヘルプセンター でリクエストを作成してください。

    ユーザーコミュニティ に参加してください。