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

はじめに

Workbench 5では、ODBC DataSetジョブを作成できます。データソースタイプにODBCを選択したら、接続の詳細を指定してクエリを設定することができます。
注記: Workbench 5の実行時に、使用しているWindowsが32ビット版なのか64ビット版なのかが判定されます。ユーザーがどちらかのWindowsを指定するよう求められることはありません。

ODBCデータに接続する

Workbench 5でODBC DataSetジョブを作成するには、
  1. 左側のアイコンバーにある アイコンをクリックします。
  2. ジョブリストペインの右上にある[+]ボタンをクリックします。
  3. [Domoドメイン] ドロップダウンメニューで、必要なアカウント(Domoインスタンス)を選択します。 アカウントが1つしか設定されていない場合は、そのアカウントが既に選択されているため、メニューは使用できません。
  4. [名前] フィールドに、DataSetジョブの名前を入力します。 これは、Workbenchで表示されるジョブ名です。DomoにアップロードされたDataSet名では ありません
  5. [トランスポートタイプ] メニューで、 [ODBC接続プロバイダー] を選択します。
  6. [読み取りタイプ] メニューで、 [データベースクエリ] を選択します。
  7. [DataSet名] フィールドに、DataSet名を入力します。これは、DomoにアップロードされたDataSet名です。 新しいジョブを保存した後に変更できるのは、 この設定のみ です。
  8. [DataSetタイプ] フィールドに、ドロップダウンからDataSetのタイプを選択します。 ここで選択 または入力するDataSetのタイプは、ジョブ実行後のDomoの コネクタータイプに反映されます。
  9. 適宜DataSetの説明を入力します。 Domoに表示されるDataSetの説明です。
  10. [作成] をクリックします。 現在認証されているアカウントのジョブリストに、ODBC DataSetジョブが新規に追加されます。ジョブを作成した後は、DataSet名以外の設定は編集できません。他の設定を変更する場合は、新しいジョブを作成する必要があります。
  11. [設定] サブタブをクリックします。
  12. 「ソース」の下の [編集] をクリックします。 ODBC接続を設定し、クエリを定義するためのパネルが開きます。
    注記: Workbenchで実行されるクエリは1つのみです。1つのクエリで処理できる範囲以上のことを行う必要がある場合は、ストアドプロシージャを作成し、Workbenchでそれを実行してください。
  13. [接続タイプ] フィールドで、接続オプションを選択します。 以下の表に、利用可能なオプションを説明しています。

    オプション

    説明

    システムのDSN

    システムで利用可能なDSNから、目的のDataSetに使用するDSNを指定します。認証が必要かどうかを指定できます。

    注記:

    • ODBC DataSetからデータをアップロードするとき、既存のデータソース名(DSN)を指定する必要があります。DSNは、Windows ODBCデータソースアドミニストレーターを使用して作成できます。(Windows ODBCデータソースアドミニストレーターにアクセスするには、スタートメニューの検索で「ODBC」と入力し、[データソース(ODBC)]を選択します)。DSNの作成に関する詳細は、Windows ODBCヘルプ(Windowsヘルプとサポートで「ODBC」を検索)を参照するか、 上記 のトレーニング動画を参照してください。MySQLドライバの設定について詳しくは、「 MySQLドライバのパフォーマンスを向上させるには 」を参照してください。

    • DataSet名(DSN)の定義方法、およびOpen Database Connectivity(ODBC)を使用したデータへのアクセスに関する情報は、ODBCの資料を参照してください。

    • デフォルトでは、ODBC接続はDSNで定義された設定を使用します。つまり、データベースにとって潜在的に有害なクエリでも、ジョブをプレビューや実行したりするときにODBC接続を通して送信することが許されてしまいます。これには、 alter delete create table insert into などのステートメントも含まれます。Workbenchがこういったコマンドを実行するのを防ぎたい場合は、DSNにこの変更を行う必要があります。

    Connection Builder

    ログイン認証やドライバー、サーバーURL、データベース名、ポート、タイムアウト値、接続パラメーターなど、ODBC接続の詳細を入力します。

    接続文字列

    接続のための文字列を1つ入力します。

  14. (条件付き)以下のいずれかを行ってください。
    • [接続タイプ][システムDSN] を選択した場合は、
      1. [システムDSN] メニューで、利用可能なDSNから目的のシステムDSNを選択します。
      2. (条件付き)このDSN接続が接続に認証を必要とする場合は、[認証が必要] をオンにし、ユーザー名とパスワードを該当フィールドに入力します。それ以外の場合は、 [認証が必要] はオフにします。
    • [接続タイプ][Connection Builder] を選択した場合は、
      1. フィールドに適切な情報を入力します。 接続によっては、パラメーターが必要となったり、不要となったりする場合があります。 以下の表を参考にしてください。

        フィールド

        説明

        ドライバー

        データベースへのアクセスに使用するドライバーの名前を指定します。

        注記: Windowsには、MSSQLなどのMicrosoft製品のドライバーがデフォルトで付属しています。Microsoftではないデータベース(Oracle、MySQL、PostgreSQL、Mongo、DB2、SAP HANAなど)に接続したい場合は、適切なドライバーを入手してインストールする必要があります。

        サーバー

        データベースのサーバー名またはURLを指定します。

        データベース

        アクセスするデータベースの名前を指定します。

        ポート

        データベースのポート番号を入力します。デフォルトのポートは、MySQLのポートです。

        タイムアウト

        DataSetから更新が行うまで接続を継続するタイムアウト値を、秒数で指定します。

        ユーザー名

        データベースの接続に使用するユーザー名を指定します。

        パスワード

        データベースの接続に使用するパスワードを指定します。

        接続パラメーター

        DataSet接続のためのパラメーターを指定します。

    • [接続タイプ][接続文字列] を選択した場合は、
      1. データソースに接続するのに使用する接続文字列を入力します。
  15. [適用]をクリックします。
  16. 「処理中」の下の [編集] ボタンをクリックします。
  17. [クエリ実行タイムアウト] メニューで、タイムアウト値を設定します。 これは、長時間実行されているジョブがタイムアウトになるまでの秒数です。
  18. [クエリ] ペインで、取得したいデータのクエリを入力します。 例:
    SELECT
      
    order_audit_id,
      
    user_name,
      
    customer_name,
      
    order_source,
      
    order_total,
      
    created
      
    FROM order_audit
    
  19. (オプション)[置換変数] タブと [グローバル置換変数] サブタブで、DataSetの列の置換変数を定義します。それぞれの置換変数に対して、
    1. 該当する列を [列] から選択します。
      注記: [列] の名前は、大文字と小文字が区別され、 [スキーマ] サブタブにある列の名前と一致している必要があります。
    2. 選択した列の置換変数を、[値] セクションで定義します。

      変数タイプ

      説明

      lastvalue

      lastvalue 変数は、関連付けられたジョブの最新のアップロードとともに送信されたデータ行の最終列について、関連するフィールドの変化を追跡します。構文は次のとおりです。

      !{lastvalue:name}!

      lastvalue 変数の値は、アップロードの終了後にWorkbenchで更新されます。 lastvalue 変数は、ジョブ( .xml )ファイルに保存されます。この変数を使って、実行のたびに「新しい」行のみを取得するクエリを作成することができます。例えば、新しい行が増えるに従って増えていく行の「id」を持つ列がデータに存在する場合、

      !{lastvalue:id}!

      を含むクエリを作成することができます。以下のようになります。

      select id, name, type, sales from tablename where id >!! order by id

      この例では、「id」列が SELECT WHERE ORDER BY 節に必ず含まれていないと、変数を使用して更新することが できません

      このジョブをアップロードするときにWorkbenchは、

      !{lastvalue:id}!

      変数を現在の「id」値と置き換えます。アップロード終了後、Workbenchは最後にアップロードされた「id」の値をジョブ( .xml )ファイルに保存します。

      注記: SELECT WHERE ORDER BY 節の中で lastvalue 変数を使って参照した列は必ず含めないと、データのアップロード後に変数を使用して更新することが できません

      previewonly

      Workbenchのプレビューを読み込む際、特定の操作が必要であることを示します。例えば、プレビューでは、データソースに存在する1,000,000件のデータではなく100行のみ返すように要求することができます。構文は次のとおりです。

      !{previewonly:Statement}!

  20. [適用] をクリックします。
  21. [更新方法] メニューで、更新する方法を選択します。
    • 更新時に、DataSetを完全に入れ替えたい場合は、[DataSetを置換] を選択します。
    • 更新データを既存のデータに追加したい場合は、[DataSetに追加] を選択します。
これでDomoにODBC DataSetが作成され、DataSetジョブを実行する準備ができました。しかし、Domoに送信する前にDataSetジョブでできる操作はたくさんあります。例えば以下のような操作があります。