複数の 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 でインクルードを使用して変数と関数を再利用するをご覧ください。