Databricks Lakeflow Connect を使用してマネージド Confluence インジェスト パイプラインを作成する方法について説明します。
必要条件
インジェスト パイプラインを作成するには、まず次の要件を満たす必要があります。
ワークスペースは、Unity Catalog に対して有効にする必要があります。
ワークスペースに対してサーバーレス コンピューティングを有効にする必要があります。 サーバーレス コンピューティング要件を参照してください。
新しい接続を作成するには、メタストアに対する
CREATE CONNECTION特権が必要です。 「Unity Catalog の特権の管理」を参照してください。コネクタが UI ベースのパイプライン作成をサポートしている場合、管理者は、このページの手順を完了することで、接続とパイプラインを同時に作成できます。 ただし、パイプラインを作成するユーザーが API ベースのパイプライン作成を使用している場合、または管理者以外のユーザーである場合は、まず管理者がカタログ エクスプローラーで接続を作成する必要があります。 「マネージド インジェスト ソースへの接続」を参照してください。
既存の接続を使用するには、接続オブジェクトに対する
USE CONNECTION特権またはALL PRIVILEGESが必要です。ターゲット カタログに対する
USE CATALOG特権が必要です。既存のスキーマに対する
USE SCHEMA権限とCREATE TABLE権限、またはターゲット カタログに対するCREATE SCHEMA権限が必要です。
Confluence から取り込むには、「 Confluence 接続の作成」の手順を最初に完了する必要があります。
インジェスト パイプラインを作成する
各ソース テーブルは、ストリーミング テーブルに取り込まれます。 サポートされているソース テーブルの一覧については、「 サポートされているデータ」を参照してください。
Databricks ユーザーインターフェース
- Azure Databricks ワークスペースのサイドバーで、[ Data Ingestion をクリックします。
- [ データの追加 ] ページの [Databricks コネクタ] で、[ Confluence] をクリックします。
- インジェスト ウィザードの [ 接続 ] ページで、Confluence アクセス資格情報を格納する接続を選択します。 メタストアでの
CREATE CONNECTION特権がある場合は、[接続を作成する] をクリックして新しい接続を作成し、認証の詳細を [Confluence 接続を作成する] に作成することができます。
- [次へ] をクリックします。
- [ インジェストのセットアップ ] ページで、パイプラインの一意の名前を入力します。
- イベント ログを書き込むカタログとスキーマを選択します。 カタログに対する
USE CATALOG権限とCREATE SCHEMA権限がある場合は、[プラス] アイコンをクリックできますドロップダウン メニューでスキーマを作成し、新しいスキーマを作成します。
- [パイプラインの作成] をクリックして続行します。
- [ ソース ] ページで、取り込むテーブルを選択します。
- [ 保存] をクリックして続行します。
- [ 宛先 ] ページで、データを読み込むカタログとスキーマを選択します。 カタログに対する
USE CATALOG権限とCREATE SCHEMA権限がある場合は、[プラス] アイコンをクリックできますドロップダウン メニューでスキーマを作成し、新しいスキーマを作成します。
- [ 保存] をクリックして続行します。
- (省略可能)[ スケジュールと通知 ] ページで、[プラス] アイコンをクリック
スケジュールを作成します。 変換先テーブルを更新する頻度を設定します。
- (省略可能)[
パイプライン 操作の成功または失敗の電子メール通知を設定する通知を追加し、[ パイプラインの保存と実行] をクリックします。
宣言型オートメーション バンドル
宣言型オートメーション バンドルを使用して、Confluence パイプラインをコードとして管理します。 バンドルには、ジョブとタスクの YAML 定義を含め、Databricks CLI を使用して管理できます。また、さまざまなターゲット ワークスペース (開発、ステージング、運用など) で共有および実行できます。 詳細については、「 宣言型オートメーション バンドルとは」を参照してください。
Databricks CLI を使用してバンドルを作成します。
databricks bundle initバンドルに 2 つの新しいリソース ファイルを追加します:
- パイプライン定義ファイル (たとえば、
resources/confluence_pipeline.yml)。 「pipeline.ingestion_definitionと例」を参照してください。 - データ インジェストの頻度を制御するジョブ定義ファイル (たとえば、
resources/confluence_job.yml)。
- パイプライン定義ファイル (たとえば、
Databricks CLI を使用してパイプラインをデプロイします:
databricks bundle deploy
Databricks ノートブック
Azure Databricks ワークスペースに次のノートブックをインポートします。
セル 1 を as-isのままにします。
パイプライン構成の詳細を使用してセル 3 を変更します。 「pipeline.ingestion_definitionと例」を参照してください。
[ すべて実行] をクリックします。
例示
これらの例を使用して、パイプラインを構成します。
ソーステーブル1つを取り込む
宣言型オートメーション バンドル
次のパイプライン定義ファイルは、1 つのソース テーブルを取り込みます。
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for confluence_dab
resources:
pipelines:
pipeline_confluence:
name: confluence_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <confluence-connection>
objects:
# An array of objects to ingest from Confluence. This example ingests the pages table.
- table:
source_schema: default
source_table: pages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Databricks ノートブック
1 つのソース テーブルを取り込むパイプライン仕様の例を次に示します。
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<confluence-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "pages",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
複数のソース テーブルを取り込む
宣言型オートメーション バンドル
次のパイプライン定義ファイルは、複数のソース テーブルを取り込みます。
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for confluence_dab
resources:
pipelines:
pipeline_confluence:
name: confluence_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <confluence-connection>
objects:
# An array of objects to ingest from Confluence. This example ingests the pages and blogposts tables.
- table:
source_schema: default
source_table: pages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: blogposts
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Databricks ノートブック
複数のソース テーブルを取り込むパイプライン仕様の例を次に示します。
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<confluence-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "pages",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "default",
"source_table": "blogposts",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
宣言型オートメーション バンドル ジョブ定義ファイル
宣言型オートメーション バンドル
宣言型オートメーション バンドルで使用するジョブ定義ファイルの例を次に示します。 ジョブは、最後の実行から正確に 1 日後に毎日実行されます。
resources:
jobs:
confluence_dab_job:
name: confluence_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_confluence.id}
スペースでフィルタリングする
パイプライン定義内の任意のテーブル オブジェクトに connector_options.confluence_options を追加することで、取り込まれたデータを特定の Confluence スペースにフィルター処理できます。
include_confluence_spacesで正確なスペース キーを指定します。 スペースキーは大文字と小文字を区別し、スペース名とは異なった扱いになります。
スペース キーを見つけるには、スペース内の任意のページに移動し、URL を確認します。 これは、 /space/ または /display/に続く短い識別子です。 または、 Space ツール>Overview>Space の詳細 に移動して、キーを表示します。
詳細については、Confluence ドキュメントの スペース キー を参照してください。
Note
labels テーブルと attachments テーブルでは、スペース フィルター処理はサポートされていません。 Confluence API は、これらのオブジェクトの発生元の領域を識別しないため、include_confluence_spacesまたはlabelsが取り込まれると、attachmentsは無視されます。
宣言型オートメーション バンドル
- table:
source_schema: default
source_table: pages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
connector_options:
confluence_options:
include_confluence_spaces:
- KEY1
- KEY2
Databricks ノートブック
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<confluence-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "pages",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"connector_options": {
"confluence_options": {
"include_confluence_spaces": ["KEY1", "KEY2"]
}
}
}
}
]
}
}
"""
create_pipeline(pipeline_spec)
一般的なパターン
高度なパイプライン構成については、「 マネージド インジェスト パイプラインの一般的なパターン」を参照してください。
次のステップ
パイプラインを開始し、スケジュールを設定し、アラートを設定します。 一般的なパイプライン メンテナンス タスクを参照してください。