自分のウェアハウスを使用する
プロジェクトのテーブルは、通常は組み込みの PlaidCloud Lakehouse に保存されます。ワークスペース管理者は、PlaidCloud スタッフの支援なしで、PlaidCloud 内から自分の Snowflake または Databricks ウェアハウスを接続することもできます。接続後、ワークフローはプロジェクトのテーブルをお客様のウェアハウスで直接読み書きします。データはお客様のアカウント内に残り、お客様のガバナンスと課金の下で管理されます。PlaidCloud は、その上で変換、ワークフロー、ダッシュボードを実行します。
ウェアハウスを接続する
Section titled “ウェアハウスを接続する”ウェアハウスの接続、変更、削除ができるのは、ワークスペース管理者のみです。
- ユーザーメニューを開き、自分のウェアハウスを使用するを選択します。ホームのチェックリストにあるウェアハウスを使用するの行で接続を選択するか、Snowflake または Databricks の接続ダイアログでこれを自分のウェアハウスとして使用するを選択することもできます。
- Snowflake または Databricks を選択します。
- 次のいずれかの方法で接続します。Sign in with Snowflake または Sign in with Databricks(最も簡単な方法です。Snowflake または Databricks でサインインするを参照)を使用するか、セットアップスクリプトを実行して、生成された資格情報を貼り付けます(以下を参照)。
1. 最初にセットアップスクリプトを実行する
Section titled “1. 最初にセットアップスクリプトを実行する”ダイアログは、選択した名前からセットアップスクリプトを作成し、入力に合わせて更新します。スクリプトをコピーでコピーし、ご自身のアカウントで実行します。このスクリプトが既存のウェアハウスを変更することはありません。
| Snowflake | Databricks | |
|---|---|---|
| 実行ロール | ACCOUNTADMIN |
ワークスペースとメタストアの管理者 |
| 作成されるもの | 60 秒のアイドル後にサスペンドされるウェアハウス(月間クレジット上限を設定し、90 パーセントで通知、100 パーセントでサスペンド)、データベース、ロール、サービスユーザー | サービスプリンシパル、アイドル時に停止する SQL ウェアハウス、カタログ(すでに存在する場合は作成されません) |
| 変更できる名前 | ウェアハウス、サイズ、月間クレジット上限、データベース、ロール、サービスユーザー | サービスプリンシパル名、SQL ウェアハウス名、サイズ、アイドル状態から停止するまでの分数、カタログ |
| デフォルト | PLAIDCLOUD_WH(XSMALL、月 100 クレジット)、PLAIDCLOUD、PLAIDCLOUD_ROLE、PLAIDCLOUD_SVC |
plaidcloud、PlaidCloud(2X-Small、アイドル 10 分)、カタログ plaidcloud |
| 認証 | キーペア(生成方法はスクリプトに表示されます) | サービスプリンシパルの OAuth シークレット |
このスクリプトでは、次の設定も行われます。
- ネットワークアクセス。 PlaidCloud は
130.211.116.97/32のアドレスから接続します。Snowflake のスクリプトは、サービスユーザーに対してこのアドレスのみを許可するネットワークポリシーを作成します。Databricks では、ワークスペースですでに IP アクセスリストが適用されている場合、スクリプトにそのアドレスを許可するステートメントが含まれます。お客様のアカウントを保護しているネットワークポリシーや IP アクセスリストにも、このアドレスを追加してください。 - ポリシーの引き継ぎ。 Snowflake では、ロールに行アクセス、マスキング、プロジェクション、集計、結合の各ポリシーとタグを適用する権限が付与されるため、PlaidCloud がテーブルを書き換えてもポリシーは維持されます。Databricks では、使用している行フィルターまたは列マスクの関数に対して、サービスプリンシパルに
EXECUTEを付与してください。 - 実行コスト。 Snowflake のロールには
SNOWFLAKE.GOVERNANCE_VIEWERデータベースロールが付与されます。これにより、PlaidCloud は各実行に帰属したクレジットを読み取れるほか、最終読み取りにも対応できます。Databricks には、systemカタログにあるクエリ履歴とウェアハウスサイズへの読み取りアクセスが付与されます。 - 最終読み取り。 Databricks では、テーブルの最終読み取り情報に必要な
system.accessへのUSE SCHEMAとsystem.access.table_lineageへのSELECTも、スクリプトによって付与されます。実行ごとのウェアハウスコストを参照してください。
2. 接続する
Section titled “2. 接続する”| フィールド | エンジン | 入力する内容 |
|---|---|---|
| アカウント URL | Snowflake | アカウントのホスト(例: myorg-myaccount.snowflakecomputing.com)。 |
| 秘密鍵 | Snowflake | サービスユーザーの秘密鍵(PEM)。キーペアに有効期限はありません。 |
| ワークスペース URL | Databricks | ワークスペースのホスト(例: adb-1234567890123456.7.azuredatabricks.net)。 |
| SQL ウェアハウスの HTTP パス | Databricks | 例: /sql/1.0/warehouses/abc123def456。 |
| アプリケーション ID | Databricks | サービスプリンシパルのアプリケーション(クライアント)ID。 |
| OAuth シークレット | Databricks | サービスプリンシパルの OAuth シークレット。PlaidCloud が自動的に更新します。 |
高度で、代わりに Snowflake のプログラムによるアクセストークンや Databricks の個人用アクセストークンを使用できます。トークンには有効期限があり、その日以降は新しいトークンを追加するまで PlaidCloud はお客様のウェアハウスにアクセスできなくなります。期限の 14 日前から期限後まで、日付を知らせるバナーが表示され、更新を選択できます。キーペアまたは OAuth シークレットを使用すれば、有効期限の問題を避けられます。
アドレスには、アカウントのパブリック URL(末尾が .snowflakecomputing.com、.cloud.databricks.com、.azuredatabricks.net、または .gcp.databricks.com)を指定する必要があります。プライベートエンドポイントやカスタムエンドポイントはサポートされていません。
3. 確認して使用する
Section titled “3. 確認して使用する”- 接続を確認は、アドレス、サインイン、PlaidCloud に必要なすべての権限をテストします。何も保存されません。
- 自分のウェアハウスとして使用は、同じチェックを実行し、ウェアハウスをアタッチしてデフォルトに設定し、ワークスペースが切り替わるまで待機します。通常は数分かかりますが、ウィンドウを閉じても問題ありません。切り替え後は、ワークスペース内の新規プロジェクトがお客様のウェアハウスを使用します。
チェックに失敗すると、問題と対処方法が分かりやすい言葉で表示されます。不足している必要な権限は、そのまま実行できる GRANT ステートメントとして一覧表示され、コピーボタン、すべてコピーボタン、セットアップスクリプトを表示が用意されています。サポート向けにコピーは、PlaidCloud サポート向けに、ウェアハウス自体のエラーテキストをコピーします。
チェックでは、推奨 — 「最終読み取り」を有効にしますの下に、付与を推奨する権限が別途一覧表示され、それぞれにコピーがあります。これらの権限があると、テーブルの最終読み取り情報がウェアハウスの履歴を読み取れるようになります。これらがなくてもウェアハウスは使用できます。その場合、接続は問題なく行われ、最終読み取りには Read history incomplete と表示されます。
- Snowflake:
GRANT DATABASE ROLE SNOWFLAKE.GOVERNANCE_VIEWER TO ROLE <role>;(SNOWFLAKEデータベースのIMPORTED PRIVILEGESでも動作します)。最終読み取りにはアクセス履歴が必要ですが、Snowflake Standard エディションにはありません。 - Databricks: サービスプリンシパルに対する、
systemのUSE CATALOG、system.accessのUSE SCHEMA、system.access.table_lineageのSELECT。
| 表示される内容 | 対処方法 |
|---|---|
| サービスユーザーがオブジェクトを使用できない | そのロールに、対象オブジェクトに対する権限を付与します。セットアップスクリプトにはすべての付与が含まれています。 |
| ウェアハウスがサスペンドされている、または存在しない | ウェアハウス名と、ウェアハウスが自動的に起動できることを確認します(Snowflake では AUTO_RESUME、Databricks では実行中の SQL ウェアハウス)。 |
| ウェアハウスがクレジットのクォータを使い切った | リソースモニターのクォータまたは予算を引き上げるか、リセットされるまで待ちます。 |
| ネットワークポリシーが PlaidCloud をブロックしている | セットアップスクリプトと同様に、ポリシーで 130.211.116.97/32 を許可します。 |
| トークンまたはキーの有効期限が切れた、または無効になった | 新しいトークンを作成するか、キーペアに切り替えます。 |
| Unity Catalog がサービスプリンシパルのアクセスを拒否した | カタログに対する USE CATALOG、CREATE SCHEMA、USE SCHEMA を付与します。 |
| PlaidCloud がサインインできなかった | ユーザーまたはサービスプリンシパルと、そのキー、トークン、シークレットを確認します。 |
| PlaidCloud がウェアハウスに到達できなかった | URL を確認し、ネットワークポリシーや IP アクセスリストで PlaidCloud のアドレスを許可します。 |
| プライベートエンドポイントやカスタムエンドポイントはサポートされていない | アカウントのパブリック URL を使用します。 |
Snowflake または Databricks でサインインする
Section titled “Snowflake または Databricks でサインインする”キー、シークレット、トークンを貼り付ける代わりに、管理者はサインインしてウェアハウスをアタッチできます。これにより、各ユーザーが自分の Snowflake または Databricks の ID でサインインするため、ダッシュボードとクエリは、お客様のウェアハウスでそれぞれのユーザー自身の権限で実行されます。
管理者が最初に行う設定
Section titled “管理者が最初に行う設定”ご自身のアカウントで、アカウント管理者が PlaidCloud をサインインアプリケーションとして一度だけ登録します。自分のウェアハウスを使用するダイアログには、PlaidCloud のリダイレクト URL を含め、使用する正確なテキストが表示されます。
- Snowflake。 ダイアログに表示される
CREATE SECURITY INTEGRATIONステートメントを実行し、SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETSステートメントの結果からOAUTH_CLIENT_IDをコピーします。 - Databricks。 アカウントコンソールの Settings > App connections で、
PlaidCloudという名前のアプリを追加します。ダイアログに表示されるリダイレクト URL と、すべての API へのアクセスを設定し、Generate a client secret はオフのままにして、そのクライアント ID をコピーします。
ウェアハウスをアタッチする
Section titled “ウェアハウスをアタッチする”- Quickest: sign in with Snowflake(または Databricks)で、アカウント URL(またはワークスペース URL)とクライアントIDを入力します。
- Snowflake では、データベースと PlaidCloud 用のデータ ロールを入力します。ウェアハウスは省略可能で、デフォルトではお客様のものが使用されます。Databricks では、SQL ウェアハウスの HTTP パスを入力します。カタログは省略可能で、デフォルトではお客様のものが使用されます。
- Sign in with Snowflake または Sign in with Databricks を選択し、ベンダーのアカウントにサインインして承認します。
PlaidCloud は、お客様のアカウント内に、このウェアハウス専用の独自のサービス ID を作成します。ワークフロー、スケジュール、その他、操作する人がいない処理は、この ID として実行されます。
- Snowflake。 PlaidCloud は、指定したデータロールのみを持つキーペア付きの新しいサービスユーザーを作成します。ロールは単純なデータロールである必要があります。次のようなロールは、PlaidCloud が拒否します。サインインに使用したロールそのもの、
ACCOUNTADMIN、SECURITYADMIN、USERADMIN、SYSADMIN、ORGADMINのいずれかであるか、これらを継承しているロール、CREATE USER、CREATE ROLE、MANAGE GRANTS、CREATE INTEGRATION、CREATE NETWORK POLICYを持つロール、ユーザーを所有しているロールです。ロールには、セットアップスクリプトのAPPLY ROW ACCESS POLICY、APPLY MASKING POLICY、APPLY PROJECTION POLICY、APPLY AGGREGATION POLICY、APPLY JOIN POLICY、APPLY TAGの付与を含めることができます。これらは、再構築したテーブルがポリシーを維持するために必要です。PlaidCloud は、既存の Snowflake ユーザーの再利用も拒否します。サインインに使用するロールには、ユーザーを作成し、データロールを付与する権限が必要です。 - Databricks。 PlaidCloud は、SQL ウェアハウスへのアクセスと、カタログのデータ権限のみを持つ新しいサービスプリンシパルを作成します。PlaidCloud がサービスプリンシパルを作成できるように、ワークスペース管理者としてサインインしてください。
サービス ID に必要な権限が不足している場合でも、ウェアハウスはサインインしたユーザー向けにアタッチされ、不足している権限を示す警告が表示されます。管理者が再度サインインするまで、ワークフローの実行は同じ理由で拒否されます。
全員がサインインする
Section titled “全員がサインインする”ワークスペースにサインインで接続したウェアハウスがある場合、すべてのメンバーのユーザーメニューにウェアハウスにサインインが表示されます。これを選択し、Sign in with Snowflake または Sign in with Databricks を選択します。PlaidCloud はサインイン状態を維持します。サインインせずに開いたダッシュボードや、サインインの有効期限が切れた後に開いたダッシュボードには、Sign in with Snowflake to view this dashboard: in PlaidCloud, open your user menu and choose Sign in to your warehouse.(または Databricks)と表示されます。このメニュー項目から再度サインインしてください。
このようなウェアハウス上のダッシュボードは、閲覧者自身のウェアハウス上の権限で実行されます。サインインしていない閲覧者には、Sign in with Snowflake to view this dashboard: in PlaidCloud, open your user menu and choose Sign in to your warehouse. と表示されます。
ウェアハウスを管理する
Section titled “ウェアハウスを管理する”ワークスペース管理者は、ユーザーメニューを開いてウェアハウスの管理を選択します。お使いのウェアハウスウィンドウには、各ウェアハウスの名前、タイプ、デフォルト、プロジェクト、ステータスが一覧表示されます。
| ボタン | 動作 |
|---|---|
| ウェアハウスを追加 | 接続時と同じフローを、ウェアハウスを追加というタイトルで開きます。お客様のウェアハウスが追加され、新規プロジェクトのデフォルトは変わりません。 |
| デフォルトに設定 | 新規プロジェクトがこのウェアハウスを使用します。すでに作成済みのプロジェクトは、作成時のウェアハウスのままです。 |
| 削除 | ウェアハウスを切断します。ウェアハウスがデフォルトではなく、使用しているプロジェクトがない場合にのみ使用できます。 |
ウェアハウスを削除すると、PlaidCloud はお客様のアカウント内のその資格情報(すべてのサインインとサービス ID を含む)を取り消し、保持していたそのコピーを削除します。データはお客様のウェアハウスに残ります。資格情報を取り消せない場合は、お客様のアカウントで自分で取り消すよう PlaidCloud が案内します。
実行ごとのウェアハウスコスト
Section titled “実行ごとのウェアハウスコスト”自分のウェアハウスでは、変換された Alteryx ワークフローの実行履歴にウェアハウスコスト列が表示され、移行を検証するウィンドウには、前回の実行のコストと次回の実行の見積もりが表示されます。コストの単位は、Snowflake ではクレジット、Databricks では DBU です。
| ラベル | 意味 |
|---|---|
| attributed | Snowflake がこれらのクレジットを実行のクエリに課金したものです。GOVERNANCE_VIEWER の付与を通じて読み取ります。帰属情報は、Snowflake のレポート遅延の後に表示されます。 |
| estimated | クエリの実行時間とウェアハウスのサイズから計算され、先頭に ≈ を付けて表示されます。Databricks では常にこの表示になります。Snowflake では、帰属情報が届く前や、付与がない場合にこの表示になります。 |
コストには、PlaidCloud のエンジンが実行したステップが含まれます。一部のみ算出された実行には partial と表示され、コストがまだ報告されていない実行にはその旨が表示されます。
ポリシーと説明が引き継がれる
Section titled “ポリシーと説明が引き継がれる”PlaidCloud で設定したスキーマ、テーブル、列の説明は、お客様のウェアハウス独自のカタログにコメントとして書き込まれます。Snowflake の行アクセス、マスキング、プロジェクション、集計、結合の各ポリシーと、Databricks の行フィルターおよび列マスクは、PlaidCloud がテーブルを置き換え、再作成、またはクローンしても、そのまま維持されます。ポリシーを引き継げない場合、PlaidCloud はテーブルを元の状態のままにし、メッセージにポリシーと理由が示されます。
プロジェクトを自分のウェアハウスにバインドする
Section titled “プロジェクトを自分のウェアハウスにバインドする”ワークスペースにウェアハウスが接続されると、新規プロジェクトダイアログ(Analyze > Projects > 新規プロジェクト)にレイクハウスピッカーが表示されます。テナントのデフォルトを選択するか、特定のウェアハウスを選択します。テナントのデフォルトは、いずれかのウェアハウスがデフォルトになっていない限り組み込みの PlaidCloud Lakehouse です。ウェアハウスがデフォルトの場合は、新規プロジェクトが自動的にそこに作成されます。デフォルトを設定するには、ウェアハウスを管理するで自分のウェアハウスとして使用またはデフォルトに設定を使用します。この設定の影響を受けるのは、その後に作成されるプロジェクトのみです。既存のプロジェクトは、作成時のバックエンドのままです。以降は次のようになります。
- プロジェクトのワークフローが作成、ロード、変換するすべてのテーブルが、お客様のレイクハウスで作成され、書き込まれます。
- ステップ、ビュー、ダッシュボードでの読み取りは、お客様のウェアハウスに対するクエリとして実行されます。
- PlaidCloud Lakehouse には何もコピーされません。データはお客様のアカウント内に残ります。
ワークフローは、組み込みのレイクハウスの場合とまったく同じように構築できます。インポート、変換、結合、公開の各ステップは、すべて同じように動作します。バックエンドはプロジェクトの作成時に設定され、プロジェクト全体に適用されます。
レイクハウスにバインドされたプロジェクトへのファイルのインポート
Section titled “レイクハウスにバインドされたプロジェクトへのファイルのインポート”レイクハウスにバインドされたプロジェクトに CSV、Parquet、XML、Access のファイルをインポートすると、外部クラウドバケット経由でファイルをステージングする代わりに、ウェアハウス独自のネイティブな並列バルクロードパスでロードされます。Snowflake では内部ステージと COPY INTO、Databricks ではマネージドボリュームと COPY INTO を使用します。追加のクラウド IAM を構成する必要はなく、ウェアハウスがどのクラウドで動作していても同じように機能します。
クエリとテーブルの結果のエクスポート
Section titled “クエリとテーブルの結果のエクスポート”レイクハウスにバインドされたプロジェクトからクエリまたはテーブルの結果をエクスポートすると、すべての行を PlaidCloud 経由で戻すのではなく、クラウドストレージに直接配信されます。
- Snowflake — エクスポートは Snowflake のサーバーサイドアンロード(ステージへの
COPY INTO)として実行されるため、ウェアハウスが結果をストレージに直接書き込みます。大きなエクスポートは、自動的に複数のファイルに分割されます(以前は、Snowflake の単一ファイル上限を超えるエクスポートは失敗していました)。 - Databricks — エクスポートは Databricks のサーバーサイドアンロード(Unity Catalog のマネージドボリュームへの
INSERT OVERWRITE DIRECTORY)として実行されるため、ウェアハウス自身が結果の書き込みとエンコードを行い、PlaidCloud は完成したファイルをストレージに中継するだけです。大きなエクスポートは自動的に複数のファイルにまたがって出力され、CSV は gzip 圧縮で配信することもできます。
レイクハウスデータに対するダッシュボード
Section titled “レイクハウスデータに対するダッシュボード”ダッシュボードは、両方のエンジンで動作します。
- Databricks — ダッシュボードは、サービスプリンシパルの OAuth 資格情報(または個人用アクセストークン)を使用して、Databricks ドライバー経由で接続します。サインインでアタッチしたウェアハウスでは、各閲覧者のダッシュボードが閲覧者自身の Databricks ID で実行されます。
- Snowflake — ダッシュボードは、ウェアハウスのサービスユーザーとキーペアを使用して接続します。サインインでアタッチしたウェアハウスでは、代わりに各閲覧者のダッシュボードが閲覧者自身の Snowflake ID で実行されます。プロジェクトのダッシュボードは、プロジェクトの作成時または公開時にセットアップされます。
PlaidCloud にウェアハウスを登録してもらう
Section titled “PlaidCloud にウェアハウスを登録してもらう”ウェアハウスを自分で接続する必要はありません。接続するエンジンに応じて、以下の詳細を PlaidCloud の担当者にお伝えください。管理者が代わりに登録します。
Snowflake
Section titled “Snowflake”| フィールド | 提供する内容 |
|---|---|
| ホスト名 | Snowflake アカウントのホスト。 |
| スーパーユーザー | PlaidCloud が認証に使用する Snowflake ユーザー。 |
| データベース | PlaidCloud がプロジェクトのスキーマを作成して管理するデータベース。 |
| ウェアハウス | PlaidCloud がクエリを実行するコンピューティングウェアハウス。 |
| ロール | PlaidCloud が使用する Snowflake ロール。 |
| 秘密鍵 | キーペア認証用の、暗号化されていない生の PEM 秘密鍵。base64 エンコードしたコピーではなく、鍵のテキストそのものを貼り付けてください。パスフレーズで保護された鍵はまだサポートされていません。 |
秘密鍵を渡す前に、キーペアを生成し、公開鍵を Snowflake のスーパーユーザーに割り当ててください。ロールには、対象データベースでテーブルを作成、読み取り、書き込みできる権限が必要です。
Databricks
Section titled “Databricks”| フィールド | 提供する内容 |
|---|---|
| ホスト名 | Databricks ワークスペースの URL。 |
| HTTP パス | PlaidCloud がクエリを実行する SQL ウェアハウスの HTTP パス。 |
| Unity Catalog | PlaidCloud がプロジェクトのスキーマを作成して管理する Unity Catalog のカタログ。 |
| 個人用アクセストークン | 認証用の Databricks PAT。 |
トークンの ID には、そのカタログでテーブルを作成、読み取り、書き込みできる権限が必要です。
どちらの登録でもスキーマは求められません。各プロジェクトには、プロジェクトがレイクハウスにバインドされる際に、その DSN から自動的に導出された独自のスキーマが割り当てられます。
登録フォームには接続をテストボタンがあり、入力した詳細で実際に接続を開き、成功または失敗の理由を報告します。何も保存されないため、レイクハウスを登録する前に資格情報を確認できます。Snowflake のテストには、暗号化されていない生の PEM 秘密鍵が必要です(パスフレーズで保護された鍵は未サポートと報告されます)。Databricks のテストでは PAT を使用します。
登録したウェアハウスは、保存した直後には使用できません。ご自身で追加するウェアハウスと同じ理由で、ワークスペースに表示されるまで数分かかる場合があります(ウェアハウスの管理を参照)。