はじめに
Cloud Amplifierを使用すると、Snowflake内のエンタープライズデータアセットを使用するためのアクセス権をDomoに付与できます。SnowflakeとCloud Amplifierの統合により、データは組織のガバナンス構造とデータ構造内でSnowflakeに残り、Snowflakeはデータアクセスとクエリ処理を制御します。Cloud Amplifierでは、Domoのデータエクスペリエンス機能の包括的なポートフォリオにアクセスして、データからより多くの価値を引き出すことができます。 このガイドでは、Snowflakeに精通しているユーザー向けに、読み取り/書き込み機能の設定や OAuthの設定方法 など、SnowflakeをCloud Amplifierに登録する方法を説明します。注記: Magic ETLはSnowflakeとCloud Amplifierの統合を活用するため、ユーザーはSnowflake内のデータを簡単に変換することができます。Snowflake上のMagic ETLについては、 こちら を参照してください。
SnowflakeをCloud Amplifierに登録する方法については、以下のトピックを参照してください。
構造的な概要
この画像は、Cloud Amplifier-Snowflakeの統合を表しています。
必要条件
Cloud Amplifierの設定は、読み取り専用または読み取り/書き込みの2つの部分で構成されています。 読み取り専用設定が完了したら、Snowflakeから読み込まれた仮想テーブルの使用を開始できます。この仮想テーブルは、カードの作成、アラートの設定、Magic ETLフローでの入力に使用できます。読み取り専用設定を行い、その後、書き込み設定に戻ることができます。推奨されるアカウントの作成 - すべて
Snowflake接続を設定する前に、以下の手順を完了することを強く推奨します。- (推奨)Snowflakeサービスアカウントを作成する — この統合専用の新しいSnowflakeアカウントを作成することを推奨します。Snowflakeで読み取りアクセス権を持つ任意のアカウントを使用できますが、サービスアカウントがベストプラクティスです。DomoでSnowflakeの仮想テーブルを作成するには、このアカウントにデフォルトのSnowflake環境への読み取りアクセス権が必要です。
- (推奨)Domoサービスアカウントを作成する — この統合専用の新しいDomoアカウントを作成することを推奨します。アカウント権限では、「クラウドアカウントを管理」および「DataSetを管理」の許可が有効になっている必要があります。
アカウントの作成 - 書き込み
書き込み設定のためにCloud Amplifierに登録する前に、以下の手順を完了する必要があります。-
(必須)デフォルトのSnowflakeデータベースを作成する — Domoで管理されるテーブルに書き込むには、Domo専用のSnowflakeデータベースが必要です。設定時は、このデータベースがデフォルトになります。
注記: このデータベース内のDomoが管理していないテーブルは、Cloud Amplifierには表示されません。
- (条件付き)IPアドレスを許可リストに追加する — Snowflake環境でIPアドレスにもとづいてアクセスが制限されている場合は、DomoのIPを許可リストに追加する必要がある場合があります。 ネットワーク接続のDomo IPアドレスの許可の詳細については、 こちら を参照してください。
読み取り専用設定
以下の手順に従って、読み取り専用アクセス権を設定し、Cloud Amplifierを使用してDomo内からSnowflakeテーブルの参照を開始します。-
[Data Warehouse] に移動します。
-
キャンバス上の
[新しいクラウド統合を追加] を選択します。

-
モーダルで [Snowflake] を選択します。
クラウドの統合モーダルが表示されます。

-
[+新しい統合を追加] を選択します。

-
Snowflakeの設定情報を入力します。
- [統合名] — Domoの統合を識別するのに役立つ固有の名前です。OAuthを設定する場合、この名前はDomoユーザーにSnowflakeネイティブ接続への参照を示す名前として表示されます。これは統合名とは異なり、Snowflakeには影響しません。
- (オプション)[統合の説明] — 統合の説明です。
-
[Snowflake接続URL] — SnowflakeのURLです。
これは
Snowflakeログインページに表示されています。URLのフォーマットは次の通りです。< 組織名 >-< アカウント名 >. snowflakecomputing.com
SnowflakeのURLを確認する方法については、 Snowflakeのドキュメント
を参照してください。
-
[Snowflakeユーザー名]/[Snowflakeパスワード] — 作成したSnowflakeサービスアカウントの認証情報です。

-
[Snowflakeの権限設定] までスクロールして、権限オプションを選択します。
- [デフォルトの権限を使用] — デフォルトでは、ユーザーがSnowflakeに接続すると、初期の権限が割り当てられます。デフォルトの権限が指定されていない場合、システムはデフォルトでパブリック権限になり、何にもアクセスできません。
- [権限を指定] — 新規ユーザーに、パブリック権限ではなくデフォルトの権限を選択できます。
- [二次的な権限を使用] — これはSnowflakeがサポートする機能です。設定すると、Snowflakeは、自身に付与されている権限でテーブルにアクセスできるユーザーがいるかどうかを自動的に判断します。SnowflakeユーザーがSnowflakeで複数の権限を持ち、各権限が複数のテーブルにアクセスできる場合、そのユーザーは頻繁に権限を切り替える必要があります。二次的な権限機能は、複数の権限を切り替えることなくテーブルにアクセスできるようにすることでこれを防止します。このオプションでは、クエリ時にユーザーがSnowflakeの権限を選択することはできません。DomoがSnowflakeにクエリを実行する必要がある場合は、代わりにすべてのユーザーに特定の権限を定義できます。
- [OAuthを設定] で、OAuthでユーザーを個別に認証できるようにスイッチを切り替えます。後述の「 DomoのOAuthを設定する 」を参照してください。
-
データの読み込みとクエリに使用するSnowflakeウェアハウスを選択します。

-
これで、読み取り専用設定が完了しました。以下のステップに進み、DomoにSnowflakeデータを追加します。

-
(オプション)[データ表を選択] を選択して、DomoでDataSetを作成します。
モーダルに、Domoに追加するSnowflakeのデータベース、スキーマ、テーブルのナビゲーションが表示されます。追加するデータを見つけて選択し、 [DataSetを作成] を選択します。

書き込み設定
このセクションの手順を完了する前に、上記の 必要条件 を満たしてください。 書き込み機能のためのCloud Amplifierへの登録は、Snowflake管理者に必要な複数のステップからなるプロセスです。 以下の図は、SnowflakeインスタンスをCloud Amplifierに登録するプロセスを示しています。
- Snowflakeサービスアカウントに割り当てられている [デフォルトの権限] の名前と [Snowflakeの書き込みデータベース名] を入力します。 [Snowflakeの書き込みデータベース名] は、Domoからの新しいデータがすべて追加されるデフォルトのSnowflakeデータベースです。名前では 大文字と小文字が区別され、各文字は大文字にする必要があります。
-
[SQLを生成] を選択し、この統合に固有のSQLを生成します。

-
ダイアログからSQLをコピーし、Snowflakeウェアハウスに対してSQLを実行します。このSQLは、ACCOUNTADMIN権限を持つSnowflakeアカウント管理者のみが実行できます。
このSQLの出力は統合のCSVファイル記述で、Domoで設定を続けるために必要なIDが含まれています。

-
SQLの出力から以下の値をコピーします。
- ユーザーARN: STORAGE_AWS_IAM_USER_ARN
-
外部ID:STORAGE_AWS_EXTERNAL_ID
DomoにARNと外部IDを登録するための追加のSQLが生成されます。ACCOUNTADMIN権限を持つSnowflake管理者は、このプロセスの前のステップでデータを保存するために選択したウェアハウスに対してこのSQLを実行する必要があります。



- Domoで、スクリプトが正常に実行されたことを確認します。 DomoはSnowflakeの統合を初期化し、Snowflakeで必要なアセット(テーブルやスキーマなど)を作成して、このアカウントでCloud Amplifierを有効にします。
-
DomoがSnowflake環境に変更を加えることができることを理解していることを確認するボックスにチェックを入れて、書き込み統合を確定します。

- [適用] を選択します。 Snowflakeのテーブルを選択する 画面が表示された場合は、接続が確立しています。
-
(オプション)モーダルに、Domoに追加するSnowflakeのデータベース、スキーマ、テーブルのナビゲーションが表示されます。追加するデータを見つけて選択し、[DataSetを作成]を選択します。

Snowflakeから供給されたDataSetを使用する
Snowflakeから供給されたDataSetをDataFlowで使用すると、フローの実行時にSnowflakeがそのデータをライブでクエリします。また、Snowflakeから供給されたDataSetは、テーブルの LAST_ALTERED の日時にもとづいて15分ごとに更新がチェックされます。最後にチェックした後にテーブルが更新された場合、このテーブルをトリガーとして使用するDataFlowが実行されます。 このページのトップへSnowflake接続のセキュリティ
Snowflake接続を保護するには、キーペア認証とユーザー名とパスワードによる基本認証の2つのオプションがあります。OAuthの設定を選択することもできます。 基本認証を使用して、Snowflake接続のURL、ユーザー名、パスワードを入力します。 キーペアの実装については、以下で説明します。Snowflakeキーペア認証
Snowflakeは、セキュリティ強化のためにキーペア認証をサポートしています。 以下の手順に従って設定します。-
Snowflakeの前提条件についての こちらの記事
のすべての手順を完了して、ここに戻ります。
-
[Data Warehouse] に移動します。
-
左側のパネルで [クラウド接続を管理] を選択します。

-
モーダルで [Snowflake] を選択します。

-
既存の統合にマウスポインターを合わせ、
[オプション] > [アカウントを編集] を選択するか、 新しい統合を作成します 。
-
統合モーダルの [Snowflakeアカウントを編集] で [キーペア] のラジオボタンを選択します。モーダルには、キーペア認証に関するSnowflakeのドキュメントを確認するオプションが用意されています。

-
[ファイルを選択] を選択して、秘密鍵ファイルをアップロードします。

- Snowflakeの秘密鍵パスフレーズを入力します。
- モーダルの残りの部分を移動し、その他の変更を行ってから、統合を保存します。
注記: 接続に問題がある場合は、後述の「 よくある質問 」および「 トラブルシューティング 」セクションを参照してください。
OAuthの設定
SnowflakeのOAuthを有効にすることができます。これには、SnowflakeとCloud Amplifierの統合のすべてのユーザーがSnowflakeで認証を受け、許可されたSnowflakeデータのみにアクセスできるようにする必要があります。 SnowflakeのOAuthを設定するには、まずSnowflakeで設定を完了し、次にDomoで設定を完了する必要があります。その後、 Okta SSOと統合 することを選択できます。SnowflakeのOAuthを設定する
Snowflake OAuthセキュリティ統合の設定から始めます。-
ACCOUNTADMINのSnowflakeコンソール内で、以下のクエリを実行します。
- 統合名[Domo_platform]は、任意の値に置き換えることができます。
-
Domoのインスタンスにもとづいて、リダイレクトURI(oauth_redirect_uri)が正しいことを確認します。
create or replace security integration [domo_platform]type = oauthenabled = trueoauth_client = customoauth_client_type = 'CONFIDENTIAL'oauth_redirect_uri = 'https: //oauth. domo. com/api/data/v1/oauth/providers/snowflake-oauth/exchange'oauth_issue_refresh_tokens = trueoauth_refresh_token_validity = 86400; -- Update as appropriate, currently 1 day
-
以下のように、統合名を使用して新しいセキュリティ統合の詳細が正しいことを確認します。
-
以下のコマンドを実行して、新しいクライアントIDとシークレットを取得します。
- Domo設定プロセスで使用するためにクライアントIDとシークレットをコピーします。
DomoのOAuthを設定する
- 上記の 読み取り専用設定 の手順1~8を実行してから、ここに戻ります。
-
スイッチを切り替えてOAuthを有効にすると、以下のフィールドが表示されます。
- [Snowflakeのアカウント識別子] — このフィールドが既に入力されている場合は、変更しないでください。
- [SnowflakeクライアントID] — Snowflakeから取得したクライアントIDを貼り付けます。
-
[Snowflakeクライアントシークレット] — Snowflakeから取得したクライアントシークレットを貼り付けます。

-
使用するSnowflakeの権限を選択し、[認証] を選択します。
Snowflakeのモーダルが表示されます。

-
Snowflakeの認証情報を入力し、[サインイン] を選択します。

-
アプリケーションの権限を確認し、[許可] を選択します。

-
行の追加や削除など、テーブルに対する変更がデータベースのメタデータで確認される頻度と、更新が必要になるまでのDomoのキャッシュの有効期間を選択します。Domoでキャッシュを無効にし、Snowflakeに対して各クエリをライブで実行する場合は、
[キャッシュTTL] フィールドの値を0に設定します。Snowflakeインスタンスを監視して、キャッシュTTLを無効にした場合の影響を理解することを推奨します。

- [次へ] を選択し、モーダルの [ウェアハウスを選択] 画面に移動します。
- 接続するウェアハウスを選択し、[次へ] を選択して接続を終了します。
Oktaを設定してSSOでアクセスする
以下のOkta SSOの手順に従う前に、 OAuthの設定 を完了する必要があります。-
Oktaの管理者ダッシュボードに移動します。

-
左側のナビゲーションで [Applications] > [Applications]に移動します。

-
[Browse App Catalog] を選択します。

-
検索バーを使用し、新しい Snowflake の統合を検索して選択します。

- [Application label] フィールドで、新しい統合にラベルを付けます。 例: Snowflake <アカウント>
-
[Subdomain] フィールドでは、 以下の手順に従います。
- SnowflakeアカウントのURLが新しいURLフォーマット( https://<; 組織名 >-< アカウント名 >. snowflakecomputing.com )である場合、サブドメインの値は< 組織名 >-< アカウント名 >です。
-
SnowflakeアカウントのURLが、組織名を含まず、クラウドリージョンを含む古いフォーマット( https://<; アカウントロケーター >.< リージョン >. snowflakecomputing.com )になっている場合、サブドメインはそのリージョンを含むSnowflakeアカウント名です。 *例:<アカウントロケーター>.<リージョン>
*
- ユーザーにアプリケーションアイコンを表示するかどうかを選択します。デフォルトでは表示されます。
- [Automatically log in when user lands on login page] ボックスにチェックを入れて、 [Next] を選択します。
-
[Sign-On Options] セクションで、 [SAML 2.0] のラジオボタンを選択します。

-
下にスクロールして [View Setup Instructions] を選択し、指示の別のページを開きます。

-
新しいページに移動する前に、[Done] を選択して設定を完了します。

- 設定手順の新しいページに移動し、手順を完了します。
よくある質問
データベース設定(Domo外)またはベストプラクティスの要件はありますか?
データベース設定(Domo外)またはベストプラクティスの要件はありますか?
Domoの統合のために、Snowflake内に専用のデータベースを作成してください。既存のSnowflakeデータベースに接続した場合、Domoにはそのデータベースにあるテーブルは表示されません。
SnowflakeのウェアハウスをCloud Amplifier用に設定する際のガイダンスはありますか?
SnowflakeのウェアハウスをCloud Amplifier用に設定する際のガイダンスはありますか?
Domoは、CDWアカウント内でデータの読み込み、クエリ、データ変換などの様々なアクティビティを実行します。多くの使用事例で、小規模なマルチクラスターウェアハウス(読み込み、クエリ、変換用の多目的ウェアハウス)を自動的にスケールアップするように設定することを推奨します。最大クラスターサイズを選択してスケールの上限を設定し、コストエンベロープを制限できます。実稼働ワークロードの準備が整い、既存の機能的なウェアハウスを使用することと、Domo統合用の新しいウェアハウスを設定することのどちらがよいかを検討している場合は、Cloud Amplifierによる最適化についての Domoブログの投稿
を参照してください。
を参照してください。Snowflakeデータでデータ変換を使用するにはどうすればよいですか?
Snowflakeデータでデータ変換を使用するにはどうすればよいですか?
Snowflakeのデータについて、Domoはデータを変換するための2つの異なるメカニズムをサポートしています。
-
DataSetビュー — DataSetビューは、
Views Explorerツールを使用して、Snowflake DataSetにデータ変換を作成します。グラフィックユーザーインターフェースから、フィルター、グループ化/集計、JOIN、UNION、計算列の作成などの操作を実行できます。DataSetビューは仮想DataSetとして作成され、クエリは親DataSetに返送されます。
注記: DomoでDataSetビューを作成しても、Snowflakeにビュー(通常のビューまたはマテリアライズドビュー)は作成されません。ビューの定義はDomoに保存され、必要に応じて結果のクエリがSnowflakeのテーブルに送信されます。
-
Magic ETL DataFlow — Magic ETLは、SnowflakeのCDW上で実行するDomoでサポートされています。SnowflakeデータでMagic ETLを使用すると、データはSnowflakeからMagic ETLに一時的な状態でエクスポートされて処理された後、Snowflakeに書き戻されます。Domoはこのデータのみを一時的に処理し、DataFlowの出力はDomoに保存しません(Snowflakeウェアハウスに送信されます)。
注記: データは、Magic ETL実行環境で7日間キャッシュされるか、そのMagic ETL実行から最新の2つのデータバージョンにキャッシュされます。
Domoで管理されるSnowflake DataSetとお客様が管理するSnowflake DataSetの違いは何ですか?
Domoで管理されるSnowflake DataSetとお客様が管理するSnowflake DataSetの違いは何ですか?
DomoをSnowflakeアカウントに接続すると、Domoは2つのクラスのデータベースと基盤となるテーブルを操作します。独立したパイプラインまたは取り込みメカニズムを使用して直接作成して更新したテーブルは、Domoで探索して登録し、読み取り専用アクセスを行えます。Domoは、これらのお客様が管理するデータベースを読み取り、直接クエリできます。また、読み取り/書き込みアクセス用にDomoで新しいデータベースを作成することを推奨します。Domoは、このDomoで管理されるデータベースを使用して、Domoインジェストパイプライン(Snowflakeにデータを取り込むのに利用できる数千ものコネクターなど)から取得したデータを書き込みます。Domoは、このDomoで管理されるデータベースを使用してデータ変換の出力(DataFlow出力)を作成します。
DomoとSnowflakeの間で権限はどのように設定されていますか?
DomoとSnowflakeの間で権限はどのように設定されていますか?
Snowflakeからの権限は、プログラムによってDomoに渡されるわけではありません。ただし、Domoのネイティブの権限モデルと、データセキュリティのためのPersonalized Data Permission(PDP)を使用して、Snowflakeの基盤となるアセットへのデータアクセスを管理することはできます。
コネクターを使用してSnowflakeからDataSetを作成する方法と、Cloud Amplifierを使用してDataSetを作成する方法の違いは何ですか?
コネクターを使用してSnowflakeからDataSetを作成する方法と、Cloud Amplifierを使用してDataSetを作成する方法の違いは何ですか?
- Snowflakeにデータを残す — 最大の違いは、すべてのSnowflakeコネクターがSnowflakeからDomoにデータをインポート/複製しているのに対し、Cloud AmplifierはSnowflakeにデータを残していることです。
- 一括作成 — Cloud Amplifierでは、最大50個のSnowflakeのテーブルを検索して一括選択し、50個の異なるDataSetを即座に作成できます。コネクターを使用してこれを行うには、各DataSetをコネクターで個別に設定する必要があります。
行や更新があってもSnowflakeビューのDataSetに、0行と表示され、 *最終更新日* が変更されません。これはどうしてでしょうか?
行や更新があってもSnowflakeビューのDataSetに、0行と表示され、 *最終更新日* が変更されません。これはどうしてでしょうか?
これは、Snowflakeビューの標準動作です。Snowflakeエンドポイントは、データが明示的にクエリされない限り、行数を提供しません。
SnowflakeでALTER USERステートメントを実行できません。何がいけないのでしょうか?
SnowflakeでALTER USERステートメントを実行できません。何がいけないのでしょうか?
Snowflakeで、ユーザーに対する所有者権限またはセキュリティ/管理者権限を持っていることを確認します。
秘密鍵をアップロードし、秘密鍵パスフレーズを入力しましたが、接続を確立できません。何が間違っているのでしょうか?
秘密鍵をアップロードし、秘密鍵パスフレーズを入力しましたが、接続を確立できません。何が間違っているのでしょうか?
こちらの Snowflakeのドキュメント
のすべての指示に従います。パスフレーズが、キーペアの作成に使用したパスフレーズと一致し、ALTER USERステートメントが正常に実行されたことを確認します。
にリクエストを送信することもできます。
のすべての指示に従います。パスフレーズが、キーペアの作成に使用したパスフレーズと一致し、ALTER USERステートメントが正常に実行されたことを確認します。このページのトップへ
トラブルシューティング
Cloud AmplifierとSnowflakeの統合で問題が発生した場合、以下の情報が役立つ可能性があります。 Domoサポート
にリクエストを送信することもできます。## テーブルが見つからない
## テーブルが見つからない
アカウントにアクセス権のあるテーブルが見つからない場合は、そのテーブルがマテリアライズされているかどうかを確認してください。Snowflake側の一時的なテーブルや仮のテーブルは、Cloud AmplifierでDataSetを作成する際には使用できません。
## 設定の問題
## 設定の問題
Cloud AmplifierとSnowflakeの統合に問題がある場合は、以下の手順に従います。
Snowflakeサービスアカウントを確認する
Snowflakeサービスアカウントを確認する
- サービスアカウントの認証情報を使用してSnowflakeにログインします。
- インポートするデフォルトのSnowflakeデータベースとクエリテーブルが表示されることを確認します。
正しい権限を割り当てる
正しい権限を割り当てる
ACCOUNTADMIN権限を持つSnowflake管理者が、Domoにより提供されるSQLをSnowflakeで実行していることを確認します。
正しいURLを使用する
正しいURLを使用する
DomoのSnowflake接続URLがSnowflakeログインURLと一致していることを確認します。URLはSnowflakeログインページにあります。URLのフォーマットは次のようになります。 <インスタンス名>.<リージョン>. snowflakecomputing.comこのページのトップへ
次のステップ: 統合が完了したら、 Snowflake上のMagic ETL の使い方や「 Magic ETL DataFlowを作成する 」をご覧ください。