Dataform でパッケージを使用するには、リポジトリにパッケージをインストールする必要があります。
Dataform には、次の種類のパッケージをインストールできます。
- 公開 NPM パッケージを公開しました。
- 公開されていない一般公開の NPM パッケージ。
- 認証済みの限定公開 NPM パッケージ。
次に、JavaScript ファイルまたは SQLX ファイルでパッケージを使用するには、パッケージの選択した内容をファイルにインポートする必要があります。選択したコンテンツではなく、パッケージ全体を JavaScript ファイルまたは SQLX ファイルにインポートすることもできます。
本番環境でのパッケージのインストールに関する問題を回避するには、次の手順を行うことをおすすめします。
package.json
でパッケージ バージョンを明示的に指定します(例:3.0.0
)。package.json
の他のdependencies
オプション(>version
など)は使用しないでください。新しいパッケージのバージョンを非本番環境でテストします。さまざまなコード ライフサイクル環境の構成の詳細については、コード ライフサイクルの管理をご覧ください。
始める前に
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリを作成または選択します。
開発ワークスペースを作成または選択します。
リポジトリに
package.json
ファイルが含まれていない場合は、package.json
を作成して Dataform コアパッケージを移動します。省略可: 非公開パッケージをインストールするには、非公開パッケージを認証します。
必要なロール
パッケージのインストールに必要な権限を取得するには、ワークスペースに対するDataform 編集者 (roles/dataform.editor
)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
パッケージをインストールする
Dataform リポジトリ内にパッケージをインストールするには、package.json
ファイルに依存関係として追加する必要があります。
package.json
ファイルにパッケージを依存関係として追加する手順は次のとおりです。
- ワークスペースの [ファイル] ペインで、
package.json
を選択します。 パッケージを
dependencies
ブロックに追加します。公開されている一般公開の NPM パッケージを次の形式で追加します。
"PACKAGE-NAME": "PACKAGE-VERSION"
以下を置き換えます。
- PACKAGE-NAME をパッケージ名に置き換えます。
- PACKAGE-VERSION を、公開されている最新バージョンの公開 NPM パッケージに置き換えます。パッケージのインストールに関する問題を回避するため、バージョンを明示的に指定します(例:
3.0.0
)。
次の形式で、未公開のパブリック NPM パッケージを追加します。
"PACKAGE-NAME": "PACKAGE-URL"
以下を置き換えます。
- PACKAGE-NAME をパッケージ名に置き換えます。
- PACKAGE-URL は、サードパーティ パッケージ リポジトリの
tar.gz
URL に置き換えます(例:https://github.com/user/sample-package-repository/archive/master.tar.gz
)。
次の形式で、認証済みの非公開 NPM パッケージを追加します。
"REGISTRY-SCOPE/PACKAGE-NAME": "PACKAGE-URL"
以下を置き換えます。
- REGISTRY-SCOPE はパッケージの名前に置き換えます。REGISTRY-SCOPE は、リポジトリの
.nmprc
ファイルで定義されたレジストリ スコープと一致する必要があります。 - PACKAGE-NAME をパッケージ名に置き換えます。
- PACKAGE-URL を、パッケージ リポジトリの
tar.gz
URL(https://github.com/user/sample-package-repository/archive/master.tar.gz
など)に置き換えます。
- REGISTRY-SCOPE はパッケージの名前に置き換えます。REGISTRY-SCOPE は、リポジトリの
[パッケージをインストール] をクリックします。
次のコードサンプルは、公開されているオープンソースの変化が緩やかなディメンション パッケージ パッケージを .package.json
ファイルに追加したものです。
```json
{
"name": "repository-name",
"dependencies": {
"@dataform/core": "2.0.3",
"dataform-scd": "https://github.com/dataform-co/dataform-scd/archive/0.3.tar.gz"
}
}
```
Dataform の JavaScript ファイルにパッケージ関数または定数をインポートする
Dataform の JavaScript ファイル内でパッケージの関数または定数を使用するには、まずその関数または定数をファイルにインポートする必要があります。
関数または定数をパッケージから JavaScript ファイルにインポートする手順は次のとおりです。
- ワークスペースの [ファイル] ペインで、パッケージを使用する
.js
ファイルを選択します。 ファイルで、次の形式の関数または定数をインポートします。
const { EXPORT-NAME } = require("PACKAGE-NAME");
- EXPORT-NAME は、使用する関数または定数の名前に置き換えます。この名前は、パッケージ
index.js
ファイルのmodule.exports
で宣言します。 - PACKAGE-NAME は、使用するパッケージの名前に置き換えます。
- EXPORT-NAME は、使用する関数または定数の名前に置き換えます。この名前は、パッケージ
次のコードサンプルは、JavaScript ファイルでインポートされ使用される postoffice
パッケージの getDomain
関数を示しています。
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const { getDomain } = require("postoffice");
getDomain();
Dataform でパッケージ全体を JavaScript ファイルにインポートする
選択した関数や定数を JavaScript ファイルにインポートするのではなく、パッケージ全体を JavaScript ファイルにインポートするには、次の手順を行います。
- ワークスペースの [ファイル] ペインで、パッケージを使用する
.js
ファイルを選択します。 ファイルで、次の形式でパッケージをインポートします。
const CONSTANT-NAME = require("PACKAGE-NAME");
- CONSTANT-NAME は、定数の名前に置き換えます。
- PACKAGE-NAME は、使用するパッケージの名前に置き換えます。
次のコードサンプルは、JavaScript ファイルで使用されるインポートされた postoffice
パッケージの getDomain
関数を示しています。
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const postoffice = require("postoffice");
postoffice.getDomain();
Dataform の SQLX ファイルにパッケージ関数または定数をインポートする
SQLX ファイル内のパッケージの関数または定数を使用するには、まずそのファイルをインポートする必要があります。
関数または定数をパッケージから SQLX ファイルにインポートする手順は次のとおりです。
- ワークスペースの [ファイル] ペインで、パッケージを使用する
.sqlx
ファイルを選択します。 ファイルに次の
js
ブロックを入力します。js { const { EXPORT-NAME } = require("PACKAGE-NAME"); }
- EXPORT-NAME は、パッケージ
index.js
ファイルのmodule.exports
で宣言されている、使用する関数または定数の名前に置き換えます。 - PACKAGE-NAME は、使用するパッケージの名前に置き換えます。
- EXPORT-NAME は、パッケージ
次のコードサンプルは、js
ブロックでインポートされ、SQLX ファイルの SELECT
ステートメントで使用される postoffice
パッケージの getDomain
関数を示しています。
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const { getDomain } = require("postoffice");
}
SELECT ${getDomain("email")} as test
Dataform でパッケージ全体を SQLX ファイルにインポートする
選択した関数または定数を JavaScript ファイルにインポートするのではなく、パッケージ全体を SQLX ファイルにインポートするには、次の手順を行います。
- ワークスペースの [ファイル] ペインで、パッケージを使用する
.sqlx
ファイルを選択します。 ファイルで、次の形式でパッケージをインポートします。
js { const CONSTANT-NAME = require("PACKAGE-NAME"); }
- CONSTANT-NAME は、定数の名前に置き換えます。
- PACKAGE-NAME は、使用するパッケージの名前に置き換えます。
次のコードサンプルは、js
ブロックでインポートされた postoffice
パッケージと、SQLX ファイルの SELECT
ステートメントで使用される getDomain
関数を示しています。
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const postoffice = require("postoffice");
}
SELECT ${postoffice.getDomain("email")} as test
次のステップ
- Dataform で非公開 NPM パッケージを認証する方法については、Dataform で非公開パッケージを認証するをご覧ください。
- 必要な Dataform コアパッケージを管理する方法については、Dataform コアパッケージを管理するをご覧ください。
- Dataform で独自のパッケージを作成する方法については、Dataform でパッケージを作成するをご覧ください。
- Dataform でオープンソース パッケージを使用する方法については、Dataform で変化が緩やかなディメンションを使用するをご覧ください。