複数の Dataform リポジトリで再利用できるパッケージを作成するには、パッケージ専用の Dataform リポジトリを作成し、サードパーティの Git リポジトリに接続して他の Dataform リポジトリで使用できるようにする必要があります。
次に、最上位の index.js
ファイルを作成し、エクスポート可能なパッケージの内容(関数や定数など)をファイルに追加します。Dataform で作成されたパッケージの例については、GitHub の dataform-package-base
をご覧ください。
パッケージを作成したら、パッケージを別の Dataform リポジトリにインストールし、パッケージにエクスポート可能なコンテンツ(定数や関数など)を使用して SQL ワークフローを開発できます。
パッケージを作成する代わりに、インクルードを使用して単一の Dataform リポジトリ全体で JavaScript 関数と定数を再利用することもできます。詳細については、Dataform でインクルードを使用して変数と関数を再利用するをご覧ください。
始める前に
Google Cloud コンソールの [Dataform] ページに移動します。
パッケージ専用の Dataform リポジトリを作成します。リポジトリ名をパッケージと照合します。
パッケージをホストするサードパーティの Git リポジトリにリポジトリを接続します。
Dataform リポジトリでワークスペースを作成して初期化します。
必要なロール
パッケージの作成に必要な権限を取得するには、リポジトリに対するDataform 管理者 (roles/dataform.admin
)IAM ロールの付与を管理者に依頼してください。
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Dataform でパッケージを作成する
Dataform で再利用できる JavaScript コードを使用して独自のパッケージを作成するには、ワークスペースで次の手順を行います。
[ファイル] ペインで、
[その他] メニューをクリックします。
[ファイルを作成] をクリックします。
[新しいファイルを作成] ペインで、次の操作を行います。
[ファイルパスの追加] フィールドに「
index.js
」と入力します。[ファイルを作成] をクリックします。
index.js
ファイルに、パッケージをエクスポートする JavaScript コードを入力します。次の形式で定数を作成します。
const CONSTANT_NAME = CONSTANT_VALUE; module.exports = { CONSTANT_NAME };
以下を置き換えます。
CONSTANT_NAME
は、定数の名前に置き換えます。CONSTANT_VALUE
は、定数の値に置き換えます。
次の形式で関数を作成します。
function FUNCTION_NAME(PARAMETERS) { FUNCTION_BODY } module.exports = { FUNCTION_NAME }
以下を置き換えます。
FUNCTION_NAME
は、関数の名前で置き換えます。PARAMETERS
は、関数のパラメータに置き換えます。FUNCTION_BODY
は、関数を実行するコードに置き換えます。
(省略可)
definitions
ディレクトリで、エクスポートされないパッケージのコードを追加します。
次のパッケージ コードサンプルは、getDomain
関数をエクスポートする postoffice
パッケージの index.js
ファイルを示しています。
// filename index.js
// package name postoffice
const GENERIC_DOMAINS = "('samplemail.com','samplemail.co.uk','examplemailbox.com'";
function getDomain(email) {
let cleanEmail = `trim(${email})`
const domain = `substr(${cleanEmail}, strpos(${cleanEmail}, '@') + 1)`;
return `case
when ${domain} in ${common.GENERIC_DOMAINS} then ${cleanEmail}
when ${domain} = "othermailbox.com" then "other.com"
when ${domain} = "mailbox.com" then "mailbox.global"
when ${domain} = "support.postman.com" then "postman.com"
else ${domain}
end`;
}
module.exports = { getDomain }
次のステップ
- パッケージをリポジトリにインストールし、そのコンテンツを JavaScript または SQLX ファイルにインポートする方法については、パッケージを Dataform にインストールするをご覧ください。
- Dataform のパッケージの詳細については、パッケージを使用して複数のリポジトリでコードを再利用するをご覧ください。
- Dataform で再利用できる JavaScript 変数と関数の作成方法については、Dataform でインクルードを使用して変数と関数を再利用するをご覧ください。