メインコンテンツまでスキップ

Smartsheetからデータを取り込む

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

Databricks LakeFlow Connectを使用してマネージド Smartsheet インジェスト パイプラインを作成する方法を学びます。

要件

  • 取り込みパイプラインを作成するには、まず以下の要件を満たす必要があります。

    • ワークスペースでUnity Catalogが有効になっている必要があります。

    • ワークスペースでサーバレスコンピュートを有効にする必要があります。 「サーバレス コンピュート要件」を参照してください。

    • 新しい接続を作成する場合:メタストアに対してCREATE CONNECTION権限が必要です。Unity Catalogの「権限の管理」を参照してください。

      コネクタが UI ベースのパイプライン オーサリングをサポートしている場合、管理者はこのページのステップを完了することで、接続とパイプラインを同時に作成できます。 ただし、パイプラインを作成するユーザーが API ベースのパイプライン オーサリングを使用している場合、または管理者以外のユーザーである場合、管理者はまずカタログ エクスプローラーで接続を作成する必要があります。 「管理対象取り込みソースへの接続」を参照してください。

    • 既存の接続を使用する場合:接続オブジェクトに対してUSE CONNECTION権限、またはALL PRIVILEGES権限が必要です。

    • 対象カタログに対してUSE CATALOG権限が必要です。

    • 既存のスキーマに対してUSE SCHEMAおよびCREATE TABLE権限、または対象カタログに対してCREATE SCHEMA権限が必要です。

  • Smartsheet から取り込むには、まず「Smartsheet 取り込み用にOAuthを構成する」のステップを完了する必要があります。

取り込みパイプラインを作成する

各ソースオブジェクト(シートまたはレポート)は、ストリーミングテーブルに取り込まれます。サポートされているソースオブジェクトタイプの一覧については、 「サポートされているソースオブジェクトタイプ」を参照してください。

  1. Databricksワークスペースのサイドバーで、 データ取り込み をクリックします。
  2. 「データの追加」 ページで、 「Databricksコネクタ」 の下にある 「Smartsheet」 をクリックします。
  3. 取り込みウィザードの 「接続」 ページで、Smartsheetへのアクセス認証情報が保存されている接続を選択します。メタストアでCREATE CONNECTION権限を持っている場合は、クリックできます プラスアイコン。 Smartsheet の取り込み用に OAuth を設定する際に認証の詳細を使用して新しい接続を作成するには、接続を作成します。
  4. 次へ をクリックします。
  5. 取り込み設定 ページで、パイプラインの名前を入力します。
  6. イベントログを書き込むカタログとスキーマを選択してください。カタログに対してUSE CATALOGCREATE SCHEMA権限をお持ちの場合は、クリックできます。 プラスアイコン。 ドロップダウンメニューから「スキーマを作成」を選択して、新しいスキーマを作成します。
  7. パイプラインの作成および続行 をクリックします。
  8. ソース ページで、取り込むシートまたはレポートを選択します。
  9. 保存して続行 をクリックします。
  10. 「宛先」 ページで、データをロードするカタログとスキーマを選択します。カタログに対してUSE CATALOGCREATE SCHEMA権限をお持ちの場合は、クリックできます。 プラスアイコン。 ドロップダウンメニューから「スキーマを作成」を選択して、新しいスキーマを作成します。
  11. 保存して続行 をクリックします。
  12. (オプション) スケジュールと通知 ページで、 プラスアイコン。スケジュールを作成します 。宛先テーブルを更新する頻度を設定します。
  13. (オプション)クリック プラスアイコン。通知を追加して パイプライン操作の成功または失敗に関する電子メール通知を設定し、 [保存してパイプラインを実行] をクリックします。

これらの例を参考に、パイプラインを設定してください。

単一のソースオブジェクトを取り込む

Smartsheetではsource_schemaは常に"default"なります。source_tableは16桁のシートまたはレポートIDで、SmartsheetのURLまたはシートのプロパティで確認できます。

以下のパイプライン定義ファイルは、単一のSmartsheetシートを取り込みます。

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

resources:
pipelines:
pipeline_smartsheet:
name: smartsheet_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <smartsheet-connection>
objects:
- table:
source_schema: default
source_table: '7483920174635241'
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

複数のソースオブジェクトを取り込む

以下のパイプライン定義ファイルは、複数のシートまたはレポートを取り込みます。

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

resources:
pipelines:
pipeline_smartsheet:
name: smartsheet_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <smartsheet-connection>
objects:
- table:
source_schema: default
source_table: '7483920174635241'
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: '3219847562038416'
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

コネクタとテーブルオプションを使用する

connector_optionstable_configurationを使用して、スキーマ強制、列選択、行フィルタリングを制御します。

以下のパイプライン定義ファイルは、列の除外と行のフィルタリングが設定されたシートを取り込みます。

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: hr_data

resources:
pipelines:
pipeline_smartsheet:
name: smartsheet_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <smartsheet-connection>
connector_options:
enforce_schema: false
objects:
- table:
source_schema: default
source_table: '7483920174635241'
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
destination_table: employee_roster
table_configuration:
exclude_columns:
- Employee Name
- Status
row_filter: "row_number <= 10 OR Department != 'Engineering'"

バンドルジョブ定義ファイル

以下は、宣言型自動化バンドルで使用するジョブ定義ファイルの例です。ジョブは毎日、最後の実行からちょうど 1 日後に実行されます。

YAML
resources:
jobs:
smartsheet_dab_job:
name: smartsheet_dab_job

trigger:
periodic:
interval: 1
unit: DAYS

email_notifications:
on_failure:
- <email-address>

tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.pipeline_smartsheet.id}

一般的なパターン

高度なパイプライン構成については、 「管理された取り込みパイプラインの一般的なパターン」を参照してください。

次のステップ

パイプラインの開始、スケジュール設定、アラートの設定を行います。「一般的なパイプラインのメンテナンス作業」を参照してください。

その他のリソース