従来の Dataform と Google Cloud の Dataform の違い
Dataform は、データ アナリストがテーブル、増分テーブル、ビューを開発して BigQuery にデプロイするためのサーバーレス サービスです。Dataform は、SQL ワークフロー開発、GitHub、GitLab、Bitbucket、Azure DevOps Services との接続、継続的インテグレーション、継続的デプロイ、ワークフロー実行のためのウェブ環境を提供します。
Google Cloud の Dataform は、従来の Dataform と次の点で異なります。
- Google Cloud の Dataform は、Dataform リポジトリと Bitbucket リポジトリの接続をサポートしています。
- アクセス制御は IAM に基づいています。
dataform.json
のクエリ同時実行制限(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.json
にname
プロパティを追加する必要があります。package.json
の依存関係のgit
+https://
URL はサポートされていません。このような URL をプレーンの
https://
アーカイブ URL に変換します。 たとえば、git+https://github.com/dataform-co/dataform-segment.git#1.5
をhttps://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz
に変換します。
始める前に
- 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.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
BigQuery and Dataform API を有効にします。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
BigQuery and Dataform API を有効にします。
必要なロール
レガシー プロジェクトをインポートするために必要な権限を取得するには、リポジトリに対する Dataform 管理者(roles/dataform.admin
)の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
レガシー プロジェクトをインポートする
Google Cloud の Dataform にレガシー プロジェクトをインポートするには、Google Cloud コンソールで次の手順を行います。
app.dataform.co
の Dataform プロジェクトが GitHub または GitLab に接続されていることを確認します。Google Cloud コンソールの [Dataform] ページに移動します。
レガシー プロジェクトを格納するリモート Git リポジトリにリポジトリを接続します。
インポートした Dataform プロジェクトを構成する
レガシー プロジェクトを Google Cloud の Dataform に調整するには、次の手順に従います。
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリを選択します。
開発ワークスペースに移動します。
dataform.json
で、defaultLocation
パラメータを追加します。このパラメータはapp.dataform.co
で無視されます。"defaultLocation": "DATASET_LOCATION",
DATASET_LOCATION は、BigQuery データセットのデフォルトの場所(
US
、EU
、us-east1
など)に置き換えます。package-lock.json
を削除します。package.json
で、次の操作を行います。@dataform/core
を3.0.0-beta.2
以降にアップグレードします。次の形式でパッケージ名を追加します。
{ "name": "PACKAGE_NAME", "dependencies": { "@dataform/core": "^3.0.0-beta.2" } }
PACKAGE_NAME は、Dataform パッケージの名前(プロジェクト名など)に置き換えます。
package.json
依存関係のgit+https://
URL をプレーンなhttps://
アーカイブ URL に変換します。たとえば、
git+https://github.com/dataform-co/dataform-segment.git#1.5
をhttps://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz
に変換します。ビルド済み Dataform パッケージで
git+https://
URL を使用している場合は、リリース パッケージの最新のインストール手順(dataform-segment リリースページなど)を確認してください。
BigQuery の権限とユーザー権限を構成します。
次のステップ
- Google Cloud の Dataform に従来の環境とスケジュールを移行する方法については、レガシー環境とスケジュールを移行するをご覧ください。
- Google Cloud の Dataform の詳細については、Dataform の概要をご覧ください。
- Google Cloud における Dataform の機能の詳細については、Dataform の機能の概要をご覧ください。
- リポジトリを作成する方法については、Dataform リポジトリを作成するをご覧ください。
- Dataform のコード ライフサイクルと構成方法については、Dataform のコード ライフサイクルの概要をご覧ください。