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

はじめに

MySQLは、広く使用されているオープンソースのリレーショナルデータベース管理システムです。DomoのMySQLコネクターを使用すると、MySQLデータベースからデータを取得してカスタムレポートを編集することができます。SQLクエリを入力することにより、必要なデータを指定することができます。MySQL APIの詳細については、ウェブサイト( http://dev.mysql.com/doc/refman/5.0/en/c-api.html )を参照してください。 MySQLコネクターは「データベース」コネクターです。つまり、クエリを使用してデータベースからデータを取得します。Data Centerでは、ウィンドウ上部のツールバーで [データベース] をクリックすることで、これを含むほかのデータベースコネクターのページにアクセスできます。 MySQLデータベースには、Data Centerから接続します。このトピックでは、MySQLコネクターユーザーインターフェースに固有のフィールドとメニューについて説明します。DataSetの追加や更新スケジュールの設定、DataSet情報の編集に関する一般的な情報は、「 コネクターを使用してDataSetを追加する 」を参照してください。
注記:
  • MySQLサーバーがTLSをサポートしていれば、このコネクターもTLSをサポートします。
  • 非SSL接続はサポートされていません。証明書が提供されていない場合、SSLで接続されますが、証明書による認証は行われません。接続では、すべてのサーバー証明書が信頼されます。詳細については、https://msdn.microsoft.com/en-us/library/bb879949%28v=sql.110%29.aspx を参照してください。
主な使用事例データマートとデータウェアハウスSQLクエリを取得する
主なメトリクス該当なし
社内における主な権限
  • CIO
  • CTO
平均導入時間5~40時間以上
使いやすさ(1~10の段階。1が「最も使いやすい」)7

ベストプラクティス

  • 結果セットのサイズをできる限り制限します。
  • 列数を最小限に抑えます。

必要条件

MySQLデータベースに接続してDataSetを作成するには、以下の情報が必要になります。
  • MySQLデータベースにログインするためのユーザー名とパスワード
  • データベースのホスト名
  • データベースのポート番号
  • データベース名またはスキーマ名
  • データを取得するためのSQLクエリ
  • SSL
オプションで、SSL CA証明書のあるURLを含めることもできます。SSL設定で3つの.PEM証明書ファイルをすべて使用する必要がある場合は、ファイルごとにフィールドがある MySQL Advanced Securityコネクター を利用できます。

MySQLアカウントを作成する

MySQLアカウントは次の2つの方法で作成することができます。
  • アカウントの作成とアカウント権限の設定を行うためのアカウント管理ステートメントを使用する( CREATE USER や GRANT など)。このようなステートメントを使用すると、ベースとなる権限テーブルがサーバーによって更新されます。
  • MySQLの権限テーブルを、 INSERT 、 UPDATE 、 DELETE などのステートメントで直接操作する。
アカウント管理ステートメントを使用する方法を推奨します。権限テーブルを直接操作するのに比べ、より簡潔でまたエラーも発生しにくいためです。 アカウントを作成するための別の方法として、GUIツールのMySQL Workbenchを使用することもできます。また、phpMyAdminなど、いくつかのサードパーティプログラムでもMySQLアカウントを管理することができます。

ホワイトリストに登録する

MySQLデータベースに接続する前に、データベースサーバーの接続ポートでIPアドレスをいくつかホワイトリストに登録する必要があります。IPアドレスの詳細なリストについては、「 コネクターのIPアドレスをホワイトリストに登録する 」を参照してください。

MySQLデータベースに接続する

このセクションでは、MySQLコネクターページの [認証情報] および [詳細] ペインのオプションについて説明します。このページのほかのペインの項目である [スケジュール設定][DataSetに名前を付け、説明を入力] に関しては、ほとんどのタイプのコネクターで共通しています。詳細については「 コネクターを使用してDataSetを追加する 」を参照してください。
注記: 認証情報でコピー/ペースト機能を使用する場合、文字列の先頭や末尾に空白文字が入っていないことを確認してください。誤って空白文字をペーストすると、接続時にコネクターでエラーが発生します。

[認証情報]ペイン

このペインには、データベースに接続するための認証情報の入力フィールドが含まれています。以下の表で、各フィールドについて説明します。

フィールド

説明

Host

SQLデータベースのホスト名を入力します。例: db.company.com

Database Name

SQLデータベース名、またはスキーマ名を入力します。

Username

MySQLユーザー名を入力します。

Password

MySQLパスワードを入力します。

CA Certificate

SSL CA証明書が存在する場所のURLを入力します(オプション)。

Port

データベースのポート番号を入力します。

有効なMySQL認証情報を一度入力しておくと、随時同じアカウントを使用して新しいMySQL DataSetを作成することができます。コネクターのアカウントは Data Center の [アカウント] タブで管理できます。このタブの詳細については、「 コネクターのユーザーアカウントを管理する 」を参照してください。

[詳細]ペイン

このペインで、SQLクエリを作成して、データベースからデータを取得します。パラメーターは使用しても、使用しなくても構いません。

メニュー

説明

Query Type

使用するMySQLクエリタイプを選択します(パラメーターの使用は問いません)。

Query

必要なデータを選択するためのSQL(構造化照会言語)クエリを入力します。例:

select * from Employee

Query Helper パラメーターを使用して、使用可能なSQLクエリを記述できます。 Query Helper を使用するには、以下の手順を実行します。

  1. データベーステーブルとテーブルの列を適切なメニューで選択します。

  2. [Query Helper] フィールドに表示されるSQLステートメントをコピーします。

  3. コピーしたSQLステートメントを [Query] フィールドに貼り付けます。

Query Parameter

クエリパラメーターの値を入力します。これは、クエリパラメーターの初期値です。このオプションを使用して、最終実行日以降の新しいデータを取得できます。

例えば、 [Query] フィールドに次のクエリを入力した場合は、

select * from test.lastValue where id <=!{lastvalue:id}! order by id desc

これに続けて、 [Query Parameter] に以下の内容を入力すると、

!{lastvalue:id}!=3

この場合、最初の実行時に3行返され、それ以降は必ず1行返されます。結果は、大きな値から小さな値の順に並び変えられています。

同様に、 [Query] フィールドに次のクエリを入力した場合は、

select * from test.lastValue where time >!{lastrundate:time}!

これに続けて、 [Query Parameter] に以下の内容を入力すると、

!{lastrundate:time}!=01/01/1990

この場合、最初の実行時に5行返され、それ以降は必ず0行返されます。

TinyInt Values Treated as Boolean Values?

TinyInt値をBoolean値として扱う場合は、 [Yes] を選択します。

Cast Boolean Values To…

値を整数または記号列にキャストするかどうかを選択します。

Database Tables(オプション)

Domoにインポートするデータベーステーブルを選択します。

Table Columns(オプション)

Domoにインポートするテーブルの列を選択します。

Query Helper(オプション)

このフィールドのSQLステートメントをコピーして、 [Query] フィールドに貼り付けます。詳細については、上記の「 Query 」を参照してください。

その他のペイン

スケジュール設定、再試行、更新に関するオプションなど、コネクターインターフェースのその他のペインに表示されるオプションについては、「 コネクターを使用してDataSetを追加する 」を参照してください。

トラブルシューティング

  • MySQL Workbenchを使用して、認証情報を確認します。
  • 暗号化された接続がサーバーでサポートされているかどうかを確認します。
  • Domo IPがホワイトリストに登録されているかどうかを確認します。
  • 実行時間を短縮するには、結合するテーブルの列名が重複しておらず、それぞれの列が呼び出されるのは1回に限られることを確認します。