従来の Dataform から移行する

従来の Dataform は 2024 年 2 月 26 日に非推奨となり、それ以降はレガシー プロジェクトにアクセスできなくなります。このドキュメントでは、従来の Dataform と Google Cloud の Dataform との違いと、従来の Dataform プロジェクトを Google Cloud の Dataform にインポートする方法について説明します。

従来の Dataform と Google Cloud の Dataform の違い

Dataform は、データ アナリストがテーブル、増分テーブル、ビューを開発して BigQuery にデプロイするためのサーバーレス サービスです。Dataform は、SQL ワークフロー開発、GitHub、GitLab、Bitbucket、Azure DevOps Services との接続、継続的インテグレーション、継続的デプロイ、ワークフロー実行のためのウェブ環境を提供します。

Google Cloud の Dataform は、次の点で従来の Dataform と異なります。

  • Google Cloud の Dataform は、Dataform リポジトリと Bitbucket リポジトリの接続をサポートしています。
  • アクセス制御は IAM に基づいています。
  • ワークフロー設定ファイルのクエリ同時実行制限(concurrentQueryLimit)の構成が削除されています。

    従来の Dataform では、同時実行の制限により、BigQuery に多数の同時クエリを送信できませんでした。Google Cloud の Dataform で同時実行を管理するには、BigQuery のクエリキューを有効にすることをおすすめします。

  • レガシー環境はリリース構成に置き換えられます。

  • 以前のスケジュールは、ワークフロー構成に置き換えられます。

  • ワークフローの失敗アラートは Cloud Logging で構成されます

  • Google Cloud の Dataform と従来の Dataform では、使用される NPM バージョンと package-lock.json の形式が異なります。

    従来の Dataform と Google Cloud の Dataform の両方で SQL ワークフローを開発するには、パッケージのインストールに従来の package-lock.json 形式を使用してください。Google Cloud の Dataform に完全に移行するまでは、Google Cloud の Dataform にパッケージをインストールしないでください。

Google Cloud の Dataform の機能について詳しくは、Dataform の機能の概要をご覧ください。

現時点では Google Cloud でサポートされていない従来の Dataform 機能

現時点では、従来の Dataform の次の機能は、Google Cloud の Dataform ではサポートされていません。

  • 単体テストを手動で実行します。
  • 開発ワークスペースでファイル コンテンツを検索します。

このリストは、Google Cloud で Dataform の新機能がリリースされるたびに更新されます。

既知の制限事項

Google Cloud の Dataform には、以下に示す既知の制限事項があります。

  • Google Cloud の Dataform はプレーンな V8 ランタイムで動作し、Node.js が提供する追加機能とモジュールをサポートしません。既存のコードベースで Node.js モジュールが必要な場合は、これらの依存関係を削除する必要があります。

    package.json に名前フィールドが含まれていないプロジェクトでは、パッケージをインストールするたびに package-lock.json で差分が生成されます。これを回避するには、package.jsonname プロパティを追加する必要があります。

  • package.json の依存関係の git+https:// URL はサポートされていません。

    このような URL をプレーンの https:// アーカイブ URL に変換します。 たとえば、git+https://github.com/dataform-co/dataform-segment.git#1.5https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz に変換します。

  • Dataform コア 3.0.0. では、Dataform は Docker イメージを配布していません。Dataform の独自の Docker イメージを構築して、Dataform CLI コマンドと同等のコマンドを実行できます。独自の Docker イメージを構築するには、Docker ドキュメントのアプリケーションをコンテナ化するをご覧ください。

始める前に

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Enable the APIs

必要なロール

レガシー プロジェクトをインポートするために必要な権限を取得するには、リポジトリに対する Dataform 管理者roles/dataform.admin)の IAM ロールを付与するよう管理者に依頼してください。 ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

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

レガシー プロジェクトをインポートする

Google Cloud の Dataform にレガシー プロジェクトをインポートするには、Google Cloud コンソールで次の手順を行います。

  1. app.dataform.co の Dataform プロジェクトが GitHub または GitLab に接続されていることを確認します。
  2. Google Cloud コンソールの [Dataform] ページに移動します。

    [Dataform] ページに移動

  3. 新しいリポジトリを作成する

  4. レガシー プロジェクトを格納するリモートの Git リポジトリにリポジトリを接続します

インポートした Dataform プロジェクトを構成する

レガシー プロジェクトを Google Cloud の Dataform に合わせて調整するには、次の手順に従います。

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

    [Dataform] ページに移動

  2. リポジトリを選択します。

  3. 開発ワークスペースを作成します

  4. 開発ワークスペースに移動します。

  5. ワークフロー設定ファイルで、デフォルトの場所を指定します。

workflow_settings.yaml

次の形式で defaultLocation パラメータを追加します。

defaultLocation: DATASET_LOCATION,

DATASET_LOCATION は、BigQuery データセットのデフォルトのロケーション(USEUus-east1 など)に置き換えます。

defaultLocation パラメータは app.dataform.co で無視されます。

dataform.json

次の形式で defaultLocation パラメータを追加します。

"defaultLocation": "DATASET_LOCATION",

DATASET_LOCATION は、BigQuery データセットのデフォルトのロケーション(USEUus-east1 など)に置き換えます。

defaultLocation パラメータは app.dataform.co で無視されます。

  1. package-lock.json を削除します。
  2. package.json で、次の操作を行います。

    1. @dataform/core3.0.0-beta.2 以降にアップグレードします。
    2. 次の形式でパッケージ名を追加します。

      {
          "name": "PACKAGE_NAME",
          "dependencies": {
              "@dataform/core": "^3.0.0-beta.2"
          }
      }
      

      PACKAGE_NAME は、Dataform パッケージの名前(プロジェクト名など)に置き換えます。

    3. package.json 依存関係内の git+https:// URL をプレーンの https:// アーカイブ URL に変換します。

      たとえば、git+https://github.com/dataform-co/dataform-segment.git#1.5https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz に変換します。

      事前構成済みの Dataform パッケージで git+https:// URL を使用している場合は、リリースページ(たとえば、Dataform セグメント リリース ページ)でこれらのパッケージの更新済みのインストール手順を確認してください。

  3. BigQuery の権限ユーザー権限を構成します。

  4. environments.json からリリース構成環境を移行します。

  5. environments.json からワークフロー構成スケジュールを移行します。

  6. Cloud Logging を使用してアラートを構成します

次のステップ