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

GitHubからデータを取り込む

備考

ベータ版

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

このページでは、 Databricks LakeFlow Connectを使用してマネージドGitHubインジェスト パイプラインを作成する方法を示します。

要件

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

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

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

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

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

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

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

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

  • GitHubから取り込むには、まず「 GitHub取り込みのためのOAuth U2Mの設定」の を完了する必要があります。

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

各ソーステーブルはストリーミングテーブルに取り込まれます。サポートされているソーステーブルの一覧については、 「サポートされているデータ」を参照してください。

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

これらの例を参考に、パイプラインを設定してください。source_schemaフィールドは、データを取り込む GitHub 組織名を指定します。destination_table名は省略可能です。指定しない場合、コネクタはsource_table名を使用します。

単一のソーステーブルを取り込む

以下のパイプライン定義ファイルは、単一のソーステーブルを取り込みます。

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

# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories table.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

複数のソーステーブルを取り込む

以下のパイプライン定義ファイルは、複数のソーステーブルを取り込みます。

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

# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories and pull_requests tables.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: <your_org_name>
source_table: pull_requests
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

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

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

YAML
resources:
jobs:
github_dab_job:
name: github_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_github.id}

一般的なパターン

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

次のステップ

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

その他のリソース