従来の 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 に変換します。

始める前に

  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 を有効にする

必要なロール

レガシー プロジェクトをインポートするために必要な権限を取得するには、リポジトリに対する 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 を使用してアラートを構成します

次のステップ