Google Cloud SQL for MySQL に接続する

Cloud SQL for MySQL コネクタを使用すると、Cloud SQL for MySQL データベースをデータポータルに接続できます。データベース テーブルまたはカスタム クエリを使用して、インタラクティブなレポートとダッシュボードを作成します。これらの分析情報は、データベースに直接アクセスできない関係者やチームメンバーと共有できます。

サポート対象のバージョン

Cloud SQL for MySQL コネクタは、次の MySQL バージョンでテストされました。

  • 5.6
  • 5.7
  • 8.0

サポートされるバージョンの使用で問題が発生した場合は、データポータル コミュニティでお知らせください。Issue Tracker で機能に関するリクエストの追加や投票を行うこともできます。

Cloud SQL for MySQL に接続する方法

データポータルのデータソースは、1 つの Cloud SQL for MySQL データベース テーブル、または指定したカスタムクエリに接続できます。

Cloud SQL for MySQL データベースに接続する手順は次のとおりです。

  1. データポータルにログインします。
  2. データポータルのホームページで、[ 作成] をクリックして、[データソース] を選択します。
  3. Cloud SQL for MySQL コネクタを選択します。
  4. 接続オプションのいずれかを使用して、データベースへのアクセス権を構成します。
  5. [AUTHENTICATE] をクリックします。そのデータベース内のテーブルのリストが表示されます。
  6. リストからテーブルを選択するか、カスタムクエリを入力します。
  7. [接続] をクリックします。

これで、指定したテーブルのすべての列をレポートの中でフィールドとして使えるようになります。

接続オプション

ホスト名または IP アドレスを使用して接続する

接続パネルで、[基本] を選択します。接続の詳細を入力します。

  • インスタンス接続名
  • データベース
  • ユーザー名
  • パスワード

JDBC URL を使用して接続する

接続パネルで、[JDBC URL] を選択します。接続の詳細を入力します。

  • JDBC URL
    • jdbc:google:mysql://INSTANCE_CONNECTION_NAME/DATABASE

  • ユーザー名
  • パスワード

IPv6 リテラル アドレスを使用して接続するには、アドレスを角かっこで囲みます。次に例を示します。jdbc:google:mysql://[2001:db8:1:1:1:1:1:1]/your_db

カスタムクエリ

1 つの表に接続する代わりに、SQL クエリを指定するには [カスタムクエリ] オプションを選択します。データポータルでは、データベースに対するクエリが生成されると、このカスタム SQL を内部 SELECT ステートメントとして使用します。

カスタム SQL クエリに含めることができるステートメントは 1 つのみです。たとえば以下は、複数の SQL ステートメントが含まれるため機能しません


DECLARE cost_per_tb_in_dollar FLOAT64 DEFAULT 4.2;

SELECT total_bytes_billed / (1024 * 1024))* cost_per_tb_in_dollar)/(1024*1024))) FROM billing-table;

データポータルのクエリは 3 ~ 5 分後にタイムアウトする場合があります。カスタムクエリがタイムアウトした場合は、次の方法で問題を解決してみてください。

  • 実行速度を上げるために、クエリを簡素化します。
  • データベースでクエリを実行し、結果を別のテーブルに保存してからデータソース内の新しいテーブルを接続します。

メモ

インスタンス接続名の検索、必要な権限の構成、ネットワーク接続の設定の詳細については、次のセクションをご覧ください。

インスタンス接続名を確認する

インスタンス接続名は、 Google Cloudでインスタンスを識別するためのものです。これを確認するには、 Google Cloud コンソールを使用するか、コマンドラインを使用します。

コンソールを使用する

  1. https://console.cloud.google.com/sql/instances に移動します。
  2. 接続先のインスタンス ID をクリックします。
  3. 左側の [このインスタンスに接続] セクションに接続名が表示されます。

コマンドラインの使用

Cloud コマンドライン インターフェースを使用して接続名を確認するには、次のコマンドを使用します。

gcloud sql instances describe [INSTANCE_NAME] | grep connectionName

権限

接続を作成するには、Cloud SQL for MySQL プロジェクトにおいて cloudsql.client 以上の権限が必要です。この権限がない(または取得できない)場合は、代わりに MySQL コネクタを使用してください。

ネットワーク接続

Cloud SQL for MySQL コネクタでは、パブリック IP 接続とプライベート IP 接続を使った Cloud SQL for MySQL インスタンスへの接続がサポートされています。

Cloud SQL for MySQL コネクタを使用する前に、Cloud SQL for MySQL インスタンスのパブリック IP 接続またはプライベート IP 接続を構成する必要があります。

データポータルで Cloud SQL のデータにアクセスし、そのデータに対するクエリをプライベート接続で実行できるようにするには、Cloud SQL for MySQL インスタンスの設定で、[Google Cloud サービスのプライベート パス] オプションを選択します。

サポートされるデータタイプ

データポータルは、データベースの組み込みデータ型を、統合されたデータ型一式にマッピングします。データポータルがサポートされていない表やクエリで列を検出すると、その列についてはフィールドが作成されません。

ファイアウォールとデータベースへのアクセス

データポータルがファイアウォールの内側にあるデータベースに接続してクエリを実行できるようにするには、次のいずれかの IP アドレスへのアクセスを可能にする必要があります。また、これらのアドレスからのトラフィックを受け入れるようにデータベースを設定する必要があります。詳しい手順については、該当するデータベースの各ドキュメントをご覧ください。

IP アドレス

次のアドレスは、データポータルのグローバル インフラストラクチャ用に予約されています。

  • 142.251.74.0/23

  • 2001:4860:4807::/48(省略可、IPv6 をサポートするプラットフォームの場合)

データポータル Pro サブスクリプションでデータ所在地を有効にしている場合は、代わりに次のアドレスを使用します。

  • 142.251.56.0/24

  • 2001:4860:4815::/48(省略可、IPv6 をサポートするプラットフォームの場合)

Cloud SQL for MySQL コネクタの制限事項

  • データポータルでは、MySQL の空間データの拡張はサポートされていません。
  • このコネクタを使用すると、1 クエリあたり最大 15 万行のクエリを実行できます。この上限値を超えたデータは切り捨てられます。
  • 列見出し(フィールド名)には ASCII 文字のみを使用する必要があります。ASCII 以外の文字はサポートされていません。

トラブルシューティング

一般的なエラー メッセージとその解決方法については、データポータルのトラブルシューティング ガイドをご覧ください。