メインコンテンツまでスキップ
waffle.svg
Domo Knowledge Base

Snowflake Federated Agent

Version 2

 

はじめに

Domo Federated Agentとは、Snowflakeを介してオンプレミスデータをDomoに接続できるようにするソリューションです。AgentはDomoへのソケット接続を作成し、データベースへのリクエストをプロキシします。これにより、DomeのSnowflakeデータをリアルタイムで、いつでも、どこでも視覚化できるようになります。Snowflake Federated Agentでは、データは常にお客様のデータベースにあり、Domoに保存されることはありません。 

Federated Agentを入手する方法

Snowflake Federated Agentの価格やアクセスについて詳しくは、 カスタマーサクセスマネージャー(CSM)までお問い合わせください。 

必要条件

  • データベースへの管理者アクセス権と、新しいテーブルをデータベースに書き込む権限

  • データベースアクセス資格情報

  • Domoでの管理者レベルアクセス

  • データベース接続URL

  • (オプション)Domo アクセストークン

Agentの設定

Domoフェデレーテッドエージェントを適切に設定するには、
  1. Domoが提供する解凍ファイルのconfディレクトリに移動します。

  2. 「agentConfig.yml」というタイトルのAgent設定ファイルを開きます。

    注記:設定ファイルはすべて.ymlファイルです。大文字と小文字が区別されます。
  3. Domoドメインに入力します。

    Snowflake_Federated_Customer_Domain.jpg

  4. adapterType: snowflake行およびconfigurationFileName: snowflakeAdapterConfig.yml行のコメントを解除します。

    adapterType.png

Domoへの認証には、developerTokenプロパティを使用する方法(推奨)とOauth2(デフォルト)を使用する2つの方法があります。developerTokenを使用すると、毎回自動的にDomoに認証されるため、こちらの方法をお勧めします。Oauth2を使用すると、Agentを変更または再起動するたびに、再認証する必要があります。 

developerTokenを使用して認証するには、

  1. Domoでアクセストークンを作成します。アクセストークンの作成に関する詳細な手順については、「アクセストークンを管理する 」を参照してください。

  2. developerToken行のコメントを解除して、アクセストークンを入力します。


Snowflake_Federated_Access_Token.gif


Oauth2を使用して認証するには、

追加の設定は必要ありません。developerToken行のコメントをそのままにしておくと、AgentによりOauthログインの認証を求めるプロンプトが表示されます。

Adapterの設定

  1. Domoが提供する解凍ファイルのconfディレクトリで、snowflakeAdapterConfig.ymlファイルを開きます。

  2. コメントを解除した行に必要な情報を入力します。

Domoで視覚化するすべてのテーブルに対して、tableName: 行をコピーする必要があります。

tableName.png

重要:テーブル名が指定されていない場合は、Snowflake Agentではデータベースで使用可能なすべてのテーブルが視覚化されます。

パスワードの暗号化

Snowflake Federated Agentを実行するには、パスワードを設定する必要があります。オプションで、パスワードを使用してデータベースのパスワードとDomoアクセストークンを暗号化することができます。

パスワードを暗号化しない場合でも、パスワードを生成して、2つの方法のいずれかで保存する必要があります。

パスワードを環境変数として設定する
重要:これは、暗号化パスワードを設定するための推奨される方法です

変数:DOMO_FD_ENCRYPTION_PW

例: DOMO_FD_ENCRYPTION_PW=<暗号化パスワード>

コマンドラインプロパティとして渡す
注記:-pまたは--encryptionPasswordを使用できます。
 

この方法を選択する場合は、binディレクトリにある「startAgent.sh」または「startAgent.bat」ファイルを編集し、java -jar行の最後にp=<yourPassword>プロパティを追加する必要があります。この方法を使用すると、パスワードはコマンドの履歴に保存されます。

例:java -jar libs/federated-agent.jar -p=testpw

Snowflake_Federated_Command_Line_Property.jpg

オプションで、データベースパスワードとDomo Auth Tokenは、暗号化jarを使用して暗号化することができます。パスワードをテキスト形式で設定ファイルに保存することもできます。

パスワードまたはトークンを暗号化するには、binフォルダーの「startEncryption.sh」または「startEncryption.bat」ファイルを実行して、その指示に従ってください。新しく暗号化されたデータベースパスワードをコピーして、適切なAdapter設定に保存します。

標準カレンダーテーブルの設定

Domoで時間粒度クエリを機能させるには、「domo.standardcalendar」をデータベースに読み込む必要があります。

重要:

  • 標準カレンダーテーブルが設定されていない場合は、日付タイプの列を含むクエリは失敗します。

  • DomoではSQLクエリの識別子に二重引用符を使用するため、大文字小文字の違いにより、Snowflakeで使用されない識別子がクエリに含まれる場合があります。このような状況が発生しないようにするために、Snowflakeにより提供されるセッションパラメーター「QUOTED_IDENTIFIERS_IGNORE_CASE」を使用します。これにより、セッション内で作成された識別子のすべてのアルファベット文字が、識別子が二重引用符で囲まれているかどうかに関係なく、大文字で格納されます。ALTER USERコマンドを使用してユーザーレベルでセッションパラメーターを設定することにより、問題を修正することができます。構文は次のようになります。

    ALTER USER [ IF EXISTS ] <name> SET { [ objProperties ] [ sessionParams ] }

    詳細については、https://docs.snowflake.net/manuals/sql-reference/parameters.html#quoted-identifiers-ignore-caseを参照してください。  

 

標準カレンダーテーブルを設定するには、

  1. Domoが提供する解凍ファイルのstandardCalendarフォルダに移動します。

  2. snowflakeフォルダを選択します。各データベースタイプの下に、<databaseName>Standardcalendar.sql形式でテーブル作成ステートメントが一覧表示されます。

    注記:使用するデータベースごとに、以下のスキーマを使用する標準カレンダーテーブルを作成する必要があります。
  3. テーブルが作成されたら、 standardCalendarloadファイルのstandardcalendar_data.csvまたはstandardcalendar_data.txtファイルのいずれかを使用してデータを読み込みます。

    注記:フィールドは「,」文字で、行は「\r\n」リターンで終了するようにします。データを囲む引用符も、フィールドをエスケープする必要もありません。日付は「yyyy-MM-dd」形式です。
  4. オプションで、データがINSERTステートメントとして書式設定されているstandard_calendar_data.sqlファイルもあります。

domo.standardcalendar Schema
フィールド名 データタイプ
Domo_Key 日付
日付 日付
DayOfWeek 文字列
DayNumberInWeek 整数
DayNumberInMonth 整数
DayNumberInQuarter 整数
DayNumberInYear 整数
MonthName 文字列
MonthAbrv 文字列
MonthNumberInYear 整数
四半期 文字列
整数
CalendarMonth 文字列
CalendarQuarter 文字列
WeekStart 日付
QuarterStart 日付
DaySinceEpoch 整数
WeekSinceEpoch 整数
MonthSinceEpoch 整数
QuarterSinceEpoch 整数
YearSinceEpoch 整数
MonthStart 日付
YearStart 日付
QuarterNumberInYear 整数

年次カレンダーの設定

データフェデレーション用に年次カレンダーを設定する必要がある場合は、labs@domo.com宛てにメールを送信してください。その際、以下の項目を記載してください。

  • Domoドメイン

その後、Domoよりデータベースにカレンダーを追加するためのスキーマと手順を提供します。

Agentを実行する

上記のすべてのコンポーネントが適切に設定されたら、Agentを実行します。

Agentを実行するには、

  1. Domoが提供したファイルのbinフォルダから、お使いのコンピュータに適切な「startAgent」ファイルを使用します。

    • Windowsの場合は、.batファイルを使用します。

    • MacまたはLinuxの場合は、.shファイルを使用します。

  2. DomoのData Centerに移動して、Domoでテーブル用にDataSetが作成されたことを確認してください。

    • フィルターをData AnywhereのDataSetタイプに適用して、クエリされたフェデレーションDataSetを表示します。

これで、DomoでフェデレーションDataSetを使用してカードを作成し、オンプレミスデータを利用できるようになりました。

ヒント:同じタイプの複数のデータベースを使用するには、タイプ設定をコピーして別の設定ファイルを指定してください。

よくある質問

引き続きPDPを使用して、フェデレーションDataSetでBeastmodeを作成できますか?

はい、引き続きPDPを使用して、標準のDataSetと同じようにBeastmodeを作成いただけます。

Domo DataFlowでフェデレーションDataSetを使用できますか?

いいえ、フェデレーションDataSetは、Magic ETL、MySQL Dataflow、Fusionでの入力としてサポートされていません。

フェデレーションDataSetを利用したカードにアラートを設定できますか?

いいえ、アラートは現在、フェデレーションDataSetを利用したカードではサポートされていません。