Dataform で SQL ワークフローを作成して実行する

このクイックスタートでは、SQL ワークフローを作成して BigQuery で実行するための Dataform のプロセスについて説明します。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. BigQuery and Dataform API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. BigQuery and Dataform API を有効にします。

    API を有効にする

必要なロール

このチュートリアルのすべてのタスクを実行するために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。

  • Dataform 管理者(roles/dataform.admin)- リポジトリ
  • Dataform エディタ(roles/dataform.editor)- ワークスペースとワークフロー呼び出し

ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Dataform リポジトリの作成

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. [リポジトリを作成] をクリックします。

  3. [リポジトリの作成] ページで、次の操作を行います。

    1. [リポジトリ ID] フィールドに「quickstart-repository」と入力します。

    2. [リージョン] リストで europe-west4 を選択します。

    3. [作成] をクリックします。

Dataform 開発ワークスペースを作成して初期化する

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. [quickstart-repository] をクリックします。

  3. [開発ワークスペースを作成] をクリックします。

  4. [開発ワークスペースを作成] ウィンドウで、次の操作を行います。

    1. [ワークスペース ID] フィールドに「quickstart-workspace」と入力します。

    2. [作成] をクリックします。

    開発ワークスペース ページが表示されます。

  5. [ワークスペースを初期化] をクリックします。

ビューを作成する

以降のセクションでは、後でテーブルのデータソースとして使用するビューを定義します。

ビューを定義する SQLX ファイルを作成する

  1. [ファイル] ペインで、definitions/ の横にある [その他] メニューをクリックします。

  2. [ファイルを作成] をクリックします。

  3. [新しいファイルを作成] ペインで、次の操作を行います。

    1. [ファイルパスを追加] フィールドに「definitions/quickstart-source.sqlx」と入力します。

    2. [ファイルを作成] をクリックします。

ビューを定義する

  1. [ファイル] ペインで、定義フォルダを展開します。

  2. [definitions/quickstart-source.sqlx] をクリックします。

  3. ファイルに次のコード スニペットを入力します。

    config {
     type: "view"
    }
    
    SELECT
     "apples" AS fruit,
     2 AS count
    UNION ALL
    SELECT
     "oranges" AS fruit,
     5 AS count
    UNION ALL
    SELECT
     "pears" AS fruit,
     1 AS count
    UNION ALL
    SELECT
     "bananas" AS fruit,
     0 AS count
    
  4. [書式] をクリックします。

テーブルを作成する

以降のセクションでは、SQLX ファイルでテーブルタイプを定義してから、同じファイル内にテーブル構造を定義する SELECT ステートメントを記述します。

テーブル定義用の SQLX ファイルを作成する

  1. [ファイル] パネルで、definitions/ の横にある [その他] メニューをクリックして、[ファイルの作成] を選択します。

  2. [ファイルパスを追加] フィールドに「definitions/quickstart-table.sqlx」と入力します。

  3. [ファイルを作成] をクリックします。

テーブルの種類、構造、依存関係を定義する

  1. [ファイル] ペインで、definitions/ ディレクトリを展開します。

  2. quickstart-table.sqlx を選択して、次のテーブル型と SELECT ステートメントを入力します。

    config {
     type: "table"
    }
    
    SELECT
     fruit,
     SUM(count) as count
    FROM ${ref("quickstart-source")}
    GROUP BY 1
    
  3. [書式] をクリックします。

テーブルタイプを定義した後、BigQuery に quickstart-source がまだ存在しないため、Dataform はクエリ検証エラーをスローします。このエラーは、このチュートリアルの後半で SQL ワークフローを実行するときに解決されます。

Dataform に BigQuery へのアクセス権を付与する

BigQuery でワークフローを実行するには、Dataform サービス アカウントに次のロールが必要です。

  • Dataform が読み取りと書き込みの両方のアクセス権を必要とするプロジェクトに対する BigQuery データ編集者。 通常は、Dataform リポジトリをホストするプロジェクトが含まれます。
  • Dataform が読み取り専用アクセス権を必要とするプロジェクトに対する BigQuery データ閲覧者
  • Dataform リポジトリをホストするプロジェクトに対する BigQuery ジョブユーザー

これらのロールを付与するには、次の手順に沿って操作します。

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] ページに移動

  2. [Add] をクリックします。

  3. [新しいプリンシパル] フィールドに、Dataform サービス アカウント ID を入力します。

  4. [ロールを選択] プルダウン リストで、[BigQuery ジョブユーザー] ロールを選択します。

  5. [別のロールを追加] をクリックし、[ロールを選択] プルダウン リストで [BigQuery データ編集者] ロールを選択します。

  6. [別のロールを追加] をクリックし、[ロールを選択] プルダウン リストで [BigQuery データ閲覧者] ロールを選択します。

  7. [保存] をクリックします。

ワークフローを実行する

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. quickstart-workspace ページで、[実行を開始] をクリックします。

  3. [すべてのアクション] をクリックします。

  4. [実行] ペインで [実行を開始] をクリックします。

    Dataform は、デフォルトのリポジトリ設定を使用して、dataform という BigQuery データセットにワークフローの内容を作成します。

Dataform で実行ログを表示します。

  1. quickstart-repository ページで、[ワークフローの実行ログ] をクリックします。

  2. 実行の詳細を表示するには、最新の実行をクリックします。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

BigQuery で作成したデータセットを削除する

BigQuery アセットの料金が発生しないようにするには、dataform というデータセットを削除します。

  1. Google Cloud コンソールで BigQuery ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] パネルでプロジェクトを開き、[dataform] を選択します。

  3. [アクション] メニューをクリックして、[削除] を選択します。

  4. [データセットを削除する] ダイアログで、フィールドに「delete」と入力してから、[削除] をクリックします。

Dataform 開発ワークスペースを削除する

Dataform 開発ワークスペースの作成に費用は発生しませんが、開発ワークスペースを削除するには、次の手順を行います。

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. [quickstart-repository] をクリックします。

  3. [開発ワークスペース] タブで、quickstart-workspace によって [その他] メニューをクリックし、[削除] を選択します。

  4. [削除] をクリックして確定します。

Dataform リポジトリの削除

Dataform リポジトリの作成に費用は発生しませんが、リポジトリを削除するには次の手順を行います。

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. quickstart-repository から、[その他] メニューをクリックし、[削除] を選択します。

  3. [リポジトリの削除] ウィンドウで、リポジトリの名前を入力して削除を確定します。

  4. [削除] をクリックして確定します。

次のステップ