メインコンテンツへスキップ

はじめに

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

フェデレーテッドエージェントを入手する方法

Snowflakeフェデレーテッドエージェントの価格やアクセスについて詳しくは、カスタマーサクセスマネージャー(CSM)までお問い合わせください。

必要条件

  • データベースへの管理者アクセス権と、新しいテーブルをデータベースに書き込む権限
  • データベースアクセス認証情報
  • Domoでの管理者レベルのアクセス
  • データベース接続URL
  • (オプション) アクセストークンを管理する

エージェントの設定

Domoフェデレーテッドエージェントを適切に設定するには:
  1. Domoが提供する解凍ファイルのconfディレクトリに移動します。
  2. 「agentConfig.yml」というタイトルのエージェント設定ファイルを開きます。
注記: 設定ファイルはすべて.ymlファイルです。大文字と小文字が区別されます。
  1. Domoドメインに入力します。
    Snowflake_Federated_Customer_Domain.jpg
  2. adapterType: snowflake 行および configurationFileName: snowflakeAdapterConfig.yml 行のコメントを解除します。
    adapterType.png
Domoへの認証には、developerTokenプロパティを使用する方法(推奨)とOauth2を使用する方法(デフォルト)の2つの方法があります。developerTokenを使用すると、毎回自動的にDomoに認証されるため、こちらの方法を推奨します。Oauth2を使用すると、エージェントを変更または再起動するたびに、再認証する必要があります。 developerTokenを使用して認証するには:
  1. Domoでアクセストークンを作成します。アクセストークンの作成に関する詳細な手順については、「 アクセストークンを管理する 」を参照してください。
  2. developerToken行のコメントを解除して、アクセストークンを入力します。
    Snowflake_Federated_Access_Token.gif
Oauth2を使用して認証するには: 追加の設定は必要ありません。developerToken行のコメントをそのままにしておくと、エージェントによりOauthログインの認証を求めるプロンプトが表示されます。

アダプターの設定

  1. Domoが提供する解凍ファイルのconfディレクトリで、snowflakeAdapterConfig.ymlファイルを開きます。
  2. コメントを解除した行に必要な情報を入力します。
Domoで可視化するすべてのテーブルに対して、 tableName: 行をコピーする必要があります。
tableName.png
重要: テーブル名が指定されていない場合は、Snowflakeエージェントではデータベースで使用可能なすべてのテーブルが可視化されます。

パスワードの暗号化

Snowflakeフェデレーテッドエージェントを実行するには、パスワードを設定する必要があります。オプションで、パスワードを使用してデータベースのパスワードとDomoアクセストークンを暗号化することができます。 パスワードを暗号化しない場合でも、パスワードを生成して、2つの方法のいずれかで保存する必要があります。

パスワードを環境変数として設定する

重要: これは、暗号化パスワードを設定するために推奨される方法です。
変数: DOMO_FD_ENCRYPTION_PW 例: DOMO_FD_ENCRYPTION_PW=<your encryption password>

コマンドラインプロパティとして渡す

注記: -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認証トークンは、暗号化jarを使用して暗号化することができます。パスワードをテキスト形式で設定ファイルに保存することもできます。 パスワードまたはトークンを暗号化するには、binフォルダの startEncryption.sh またはstartEncryption.batファイルを実行して、その指示に従ってください。新しく暗号化されたデータベースパスワードをコピーして、適切なアダプターの設定に保存します。

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

Domoで日付単位クエリを機能させるには、domo.standardcalendarをデータベースに読み込む必要があります。
重要:
  • 標準カレンダーテーブルが設定されていない場合は、日付タイプの列を含むクエリは失敗します。
  • DomoではSQLクエリの識別子に二重引用符を使用するため、大文字小文字の違いにより、Snowflakeで使用されない識別子がクエリに含まれる場合があります。このような状況が発生しないようにするために、Snowflakeにより提供されるセッションパラメーターQUOTED_IDENTIFIERS_IGNORE_CASEを使用します。これにより、セッション内で作成された識別子のすべてのアルファベット文字が、識別子が二重引用符で囲まれているかどうかに関係なく、大文字で格納されます。 ALTER USER コマンドを使用してユーザーレベルでセッションパラメーターを設定することにより、問題を修正することができます。構文は次のようになります。
    ALTER USER [ IF EXISTS ]
    &lt;name&gt;
    SET { [ objProperties ] [ sessionParams ] }
    
    詳細については、 https://docs.snowflake.com/ja/sql-reference/parameters#quoted-identifiers-ignore-case を参照してください。
標準カレンダーテーブルを設定するには:
  1. Domoが提供する解凍ファイルのstandardCalendarフォルダに移動します。
  2. snowflakeフォルダを選択します。各データベースタイプの下に, <databaseName>Standardcalendar.sql フォーマットでテーブル作成ステートメントが一覧表示されます。
    注記: 使用するデータベースごとに、以下の スキーマ を使用する標準カレンダーテーブルを作成する必要があります。
  3. テーブルが作成されたら、standardCalendarファイルのstandardcalendar_data.csvまたはstandardcalendar_data.txtファイルのいずれかを使用してデータを読み込みます。
注記: フィールドは「,」文字で、行は「\r\n」リターンで終了するようにします。データを囲む引用符も、フィールドをエスケープする必要もありません。日付は「yyyy-MM-dd」形式です。
  1. オプションで、データがINSERTステートメントとして書式設定されているstandard_calendar_data.sqlファイルもあります。
domo.standardcalendarスキーマ
フィールド名 データタイプ
Domo_Key 日付
Date 日付
DayOfWeek 文字列
DayNumberInWeek 整数
DayNumberInMonth 整数
DayNumberInQuarter 整数
DayNumberInYear 整数
MonthName 文字列
MonthAbrv 文字列
MonthNumberInYear 整数
Quarter 文字列
Year 整数
CalendarMonth 文字列
CalendarQuarter 文字列
WeekStart 日付
QuarterStart 日付
DaySinceEpoch 整数
WeekSinceEpoch 整数
MonthSinceEpoch 整数
QuarterSinceEpoch 整数
YearSinceEpoch 整数
MonthStart 日付
YearStart 日付
QuarterNumberInYear 整数

年次カレンダーの設定

フェデレーテッドデータ用に年次カレンダーを設定する必要がある場合は、 labs@domo.com 宛てにメールを送信してください。その際、以下の項目を記載してください。
  • Domoドメイン
その後、Domoよりデータベースにカレンダーを追加するためのスキーマと手順を提供します。

エージェントを実行する

上記のすべてのコンポーネントが適切に設定されたら、エージェントを実行します。 エージェントを実行するには:
  1. Domoが提供したファイルのbinフォルダから、お使いのコンピューターに適切なstartAgentファイルを使用します。
    • Windowsの場合は、.batファイルを使用します。
    • MacまたはLinuxの場合は、.shファイルを使用します。
  2. DomoのData Centerに移動して、Domoでテーブル用にDataSetが作成されたことを確認してください。
    • フィルターをData AnywhereのDataSetタイプに適用して、クエリされたフェデレーテッドDataSetを表示します。
これで、DomoでフェデレーテッドDataSetを使用してカードを作成し、オンプレミスのデータを利用できるようになりました。
ヒント: 同じタイプの複数のデータベースを使用するには、タイプ設定をコピーして別の設定ファイルを指定してください。

よくある質問

はい、引き続きPDPを使用して、標準のDataSetと同じようにBeastmodeを作成していただけます。
いいえ、フェデレーテッドDataSetは、Magic ETL、MySQL DataFlow、Fusionでの入力としてサポートされていません。
いいえ、アラートは現在、フェデレーテッドDataSetを利用したカードではサポートされていません。