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

MySQLコネクター

Version 6

 

はじめに

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を含めることもできます。

MySQLアカウントを作成する

MySQLアカウントは次の2つの方法で作成することができます。

  • アカウントの作成とアカウント権限の設定を行うためのアカウント管理ステートメントを使用する(CREATE USERGRANTなど)。このようなステートメントを使用すると、ベースとなる権限テーブルがサーバーによって更新されます。

  • MySQLの権限テーブルを、INSERTUPDATEDELETEなどのステートメントで直接操作する。

アカウント管理ステートメントを使用する方法を推奨します。権限表を直接操作するのに比べ、より簡潔でまたエラーも発生しにくいためです。

アカウントを作成するための別の方法として、GUIツールのMySQL Workbenchを使用することもできます。また、phpMyAdminなど、いくつかのサードパーティプログラムでもMySQLアカウントを管理することができます。

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

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

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

このセクションでは、[MySQLコネクター]ページの[認証情報]および[詳細]ペインのオプションについて説明します。このページ内の他のペインに含まれるコンポーネントである[スケジュール設定][DataSetに名前を付けて説明を入力]に関しては、ほとんどのタイプのコネクターで共通しています。詳細については「データコネクターを使用してDataSetを追加する」を参照してください。

注記:認証情報でコピー/ペースト機能を使用する場合、文字列の先頭や末尾に空白文字が入っていないことを確認してください。誤って空白文字をペーストすると、接続時にコネクターでエラーが発生します。

[認証情報]ペイン

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

フィールド

説明

ホスト

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

データベース名

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

ユーザー名

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

パスワード

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

CA証明書

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

ポート

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

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

[詳細]ペイン

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

メニュー

説明

クエリタイプ

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

クエリ

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

select * from Employee

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

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

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

  3. コピーしたSQL ステートメントを[クエリ]に貼り付けます。

 

クエリパラメーター

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

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

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

…続けて、[クエリパラメーター]に以下の内容を入力すると…

!{lastvalue:id}!=3

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

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

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

…続けて、[クエリパラメーター]に以下の内容を入力すると…

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

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

TinyInt値をBoolean値として扱いますか?

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

Boolean値を他の型にキャスト…

Boolean値をInteger型またはString型にキャストするかどうかを選択します。

データベース表(オプション)

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

表の列(オプション)

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

クエリヘルパー(オプション)

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

 

その他のペイン

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

トラブルシューティング

  • MySQL Workbenchを使用して、認証情報を確認します。

  • 暗号化された接続がサーバーでサポートされているかどうかを確認します。

  • Domo IP がホワイトリストに登録されているかどうかを確認します。

  • 実行時間を短縮するには、結合する表の列名が重複しておらず、それぞれの列が呼び出されるのは1回に限られることを確認します。


DomoのMySQLコネクターを使用し、SQLクエリを使用してMySQLデータベースからデータを引き出し、カスタムレポートを編集します。