メイン コンテンツをスキップする 補完的コンテンツへスキップ

Unity Catalogを使って管理対象テーブルで作業

このシナリオでは、管理対象のDelta Lakeテーブルに保存されたデータをUnity Catalogを使って準備、分析、変換するSparkバッチジョブについて説明します。

このシナリオでは、Delta Lakeデータセットの中で最もストリーミングされた曲とアルバムが含まれているストリーミング音楽のレコードで作業しています。Databricksの同じテーブルでシームレスに消費できるよう、人気とジャンル別に曲を分析したいと考えています。

以下は、このシナリオで使用するデータセットのサンプルです:
音楽ストリーミングレコードのサンプルデータ。

始める前に

[Spark Configuration] (Spark設定)ビューでSpark Batchジョブを既に設定済みであること。詳細については、Spark UniversalでDatabricks接続パラメーターを定義をご覧ください。

Spark Batchジョブを設定

このシナリオでは、サブジョブがいくつか含まれているSpark Batchジョブを作成する必要があります。サブジョブはそれぞれ、異なるアクションを実行するために使われます。
ストリーミング音楽レコードデータを処理するためのサブジョブがすべて含まれているSpark Batchジョブ。

手順

  1. 新しいSpark Batchジョブを作成し、以下のコンポーネントを追加します:
    • tDeltaLakeInputを7つ
    • tDeltaLakeOutputを8つ
    • tFileInputDelimitedを1つ
    • tFixedFlowInputを7つ
    • tMapを7つ
  2. Storing dataサブジョブを作成:
    1. tFileInputDelimitedをtDeltaLakeOuputに接続させます。
  3. 各フィルタリングアクション用に、Filteringサブジョブ(more popular tracksなど)を作成します:
    1. tDeltaLakeInputをtMapに接続させます。
    2. tFixedFlowInputをtMapに接続させます。
    3. tMapをtDeltaLakeOutputに接続させます。
  4. ジャンル別(animeなど)に、Partitioning by genreサブジョブを作成します:
    1. tDeltaLakeInputをtMapに接続させます。
    2. tFixedFlowInputをtMapに接続させます。
    3. tMapをtDeltaLakeOutputに接続させます。
  5. FilteringサブジョブをStoring dataサブジョブに接続させます。
  6. Partitioning by genreサブジョブをStoring dataサブジョブに接続させます。

データをUnity Catalogに保存

このシナリオの最初のステップは、ストリーミング音楽のレコードが含まれているCSVファイルをTalend Studioにロードし、データセットをDelta Lakeテーブルに保存することでです。

このタスクについて

このタスクでは、Storing dataサブジョブが使用されます。

手順

  1. tFileInputDelimitedの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tFileInputDelimitedの[Basic settings] (基本設定)ビュー。
    1. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    2. [Folder/File] (フォルダー/ファイル)パラメーターに、使用するデータを指すパスを入力します。この例では、CSVファイルです。
    3. 他のパラメーターはそのままにしておきます。
  2. tDeltaLakeOutputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tDeltaLakeOutputの[Basic settings] (基本設定)ビュー。
    1. [Define how to save the dataset] (データセットを保存する方法を定義)ドロップダウンリストから、Unity Catalogを選択します。
    2. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    3. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。
    4. [Catalog] (カタログ)パラメーターに、データを保存するカタログの名前を入力します。
    5. [Schema] (スキーマ)パラメーターに、データを保存するスキーマの名前を入力します。
    6. [Table] (テーブル)パラメーターに、データを保存するテーブルの名前を入力します。この例では、spotify_dataです。

タスクの結果

Storing dataサブジョブを使用する準備ができます。サブジョブを起動すると、spotify_dataというDelta Lakeテーブルが作成されます。

人気別に曲をフィルタリング

このシナリオの第2ステップは、Delta Lakeデータセットから曲を人気別にフィルタリングすることです。最初のフィルターは最も人気がある曲に適用され、2番目のフィルターはあまり人気がない曲に適用されます。

このタスクについて

このタスクでは、Filtering by more popular tracksサブジョブが使用されます。Filtering by less popular tracksサブジョブについても、同じアクションを繰り返すことができます。

手順

  1. tDeltaLakeInputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tDeltaLakeInputの[Basic settings] (基本設定)ビュー。
    1. [Define how to read the dataset] (データセットを読み取る方法を定義)ドロップダウンリストから、Unity Catalogを選択します。
    2. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    3. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。
    4. [Catalog] (カタログ)パラメーターに、データを保存するカタログの名前を入力します。
    5. [Schema] (スキーマ)パラメーターに、データを保存するスキーマの名前を入力します。
    6. [Table] (テーブル)パラメーターに、データの読み取り元にしたいテーブルの名前を入力します。この例では、spotify_dataです。
  2. tFixedFlowInputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tFixedFlowInputの[Basic settings] (基本設定)ビュー。
    1. [Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    2. [Number of rows] (行数)に、生成する行数を入力します。この例では、1です。
    3. [Use Single Table] (単一のテーブルを使用)モードを選択し、生成したいデータを関連するフィールドに入力します。この例ではcriteriaというカラムで、値は50です。
  3. tMapの[Basic settings] (基本設定)ビューから、次のようにマッピングを設定します:
    tMapのマッピング。
    1. tMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
    2. popularity行の式を作成します。この例では、row3.popularity>=row1.criteriaです。criteriaはtFixedFlowInputコンポーネントで50に設定されているので、この式は、人気が50以上の曲だけをフィルタリングすることを意味しています。
    3. popularity行、track_name行、track_genre行について、メインの入力フローと新しい入力フローとの結合を作成します。
    4. [OK]をクリックしてマップ設定を確定し、[Map Editor] (マップエディター)を閉じます。
  4. tDeltaLakeOutputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tDeltaLakeOutputの[Basic settings] (基本設定)ビュー。
    1. [Define how to save the dataset] (データセットを保存する方法を定義)ドロップダウンリストから、Unity Catalogを選択します。
    2. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    3. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。
    4. [Catalog] (カタログ)パラメーターに、データを保存するカタログの名前を入力します。
    5. [Schema] (スキーマ)パラメーターに、データを保存するスキーマの名前を入力します。
    6. [Table] (テーブル)パラメーターに、データを保存するテーブルの名前を入力します。この例では、spotify_popularです。

タスクの結果

Filtering by more popular tracksサブジョブを使用する準備ができます。サブジョブを起動すると、spotify_popularというDelta Lakeテーブルが作成されます。

曲をジャンル別にパーティショニング

このシナリオの第3ステップは、曲を5つのジャンル(この例ではacoustic、brazilian、anime、breakbeat、blues)にパーティショニングすることです。それぞれのジャンルが新しいテーブルを表しています。

このタスクについて

このタスクでは、Partitioning by genre: animeサブジョブが使用されます。以下の他のサブジョブについても、同じアクションを繰り返すことができます:
  • Partitioning by genre: acoustic
  • Partitioning by genre: brazil
  • Partitioning by genre: breakbeat
  • Partitioning by genre: blues

手順

  1. tDeltaLakeInputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tDeltaLakeInputの[Basic settings] (基本設定)ビュー。
    1. [Define how to read the dataset] (データセットを読み取る方法を定義)ドロップダウンリストから、Unity Catalogを選択します。
    2. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    3. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。
    4. [Catalog] (カタログ)パラメーターに、データを保存するカタログの名前を入力します。
    5. [Schema] (スキーマ)パラメーターに、データを保存するスキーマの名前を入力します。
    6. [Table] (テーブル)パラメーターに、データの読み取り元にしたいテーブルの名前を入力します。この例では、spotify_dataです。
  2. tFixedFlowInputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tFixedFlowInputの[Basic settings] (基本設定)ビュー。
    1. [Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    2. [Number of rows] (行数)に、生成する行数を入力します。この例では、1です。
    3. [Use Single Table] (単一のテーブルを使用)モードを選択し、生成したいデータを関連するフィールドに入力します。この例ではcriteria3というカラムで、値はanimeです。
  3. tMapの[Basic settings] (基本設定)ビューから、次のようにマッピングを設定します:
    tMapのマッピング。
    1. tMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
    2. popularity行の式を作成します。この例では、row10.popularity>=row11.criteria3です。criteria3はtFixedFlowInputコンポーネントでanimeに設定されているので、この式は、ジャンルがアニメである曲だけをフィルタリングすることを意味しています。
    3. album_name行、artists行、popularity行、track_genre行、track_name行について、メインの入力フローと新しい入力フローとの結合を作成します。
    4. [OK]をクリックしてマップ設定を確定し、[Map Editor] (マップエディター)を閉じます。
  4. tDeltaLakeOutputの[Basic settings] (基本設定)ビューから、次のようにパラメーターを設定します:
    tDeltaLakeOutputの[Basic settings] (基本設定)ビュー。
    1. [Define how to save the dataset] (データセットを保存する方法を定義)ドロップダウンリストから、Unity Catalogを選択します。
    2. [Property Type] (プロパティタイプ)ドロップダウンリストと[Schema] (スキーマ)ドロップダウンリストから、[Built-In] (組み込み)を選択します。
    3. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。
    4. [Catalog] (カタログ)パラメーターに、データを保存するカタログの名前を入力します。
    5. [Schema] (スキーマ)パラメーターに、データを保存するスキーマの名前を入力します。
    6. [Table] (テーブル)パラメーターに、データを保存するテーブルの名前を入力します。この例では、spotify_animeです。

タスクの結果

Partitioning by genre: animeサブジョブを使用する準備ができます。サブジョブを起動すると、spotify_animeというDelta Lakeテーブルが作成されます。

データ来歴を分析

このシナリオの最後のステップは、Unity Catalogのデータ来歴ツールで最終データを分析することです。

手順

  1. Spark Batchジョブを実行します。
    新しいテーブルは人気とジャンルに基づいて作成されます。
  2. Databricks側でspotify_dataテーブルを選択し、[Lineage] (来歴)タブに移動します。詳細は、Databricksの公式ドキュメンテーションでCapture and view data lineage using Unity Catalogをご覧ください。
    来歴グラフが表示されます。これで、グラフを分析し、CSVファイルから得られる最初のUnity Catalogボリュームに基づいてさまざまなテーブルがどのように作成されたかを確認できます。
    Databricksのデータ来歴グラフ。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。