すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:MySQLコネクタ

最終更新日:Jan 11, 2025

MySQLコネクタを使用すると、外部MySQLインスタンスのテーブル内のデータをクエリし、インスタンスにテーブルを作成できます。コネクタを使用すると、MySQLとHiveなどの2つのシステム間、または2つのMySQLインスタンス間のテーブルを結合できます。

背景情報

このトピックでは、以下のセクションでMySQLコネクタに関する情報を説明します。

前提条件

  • TrinoサービスがデプロイされたHadoopまたはデータレイククラスターが作成されているか、Trinoクラスターが作成されています。詳細については、「クラスターの作成」をご参照ください。

  • ApsaraDB RDS for MySQLインスタンスが購入されています。詳細については、「ApsaraDB RDS for MySQLインスタンスの作成」をご参照ください。

制限事項

  • E-MapReduce(EMR) V3.38.0以降のHadoopまたはTrinoクラスターのみがMySQLコネクタをサポートしています。

  • MySQL 5.7、8.0以降を実行するApsaraDB RDS for MySQLインスタンスにのみ、MySQLコネクタを使用して接続できます。

  • TrinoのコーディネーターノードとすべてのワーカーノードがMySQLにアクセスできることを確認してください。デフォルトポートは 3306 です。

  • MySQLコネクタは、次のSQLステートメントをサポートしていません。

    • DELETE

    • GRANT

    • REVOKE

    • SHOW GRANTS

    • SHOW ROLES

    • SHOW ROLE GRANTS

MySQLコネクタの構成

MySQLコネクタの構成を変更します。詳細については、「コネクタの構成」をご参照ください。

コネクタのデフォルト構成

EMRコンソールにログインします。Trinoサービスの [構成] タブに移動します。[構成]タブで、[mysql.properties] タブをクリックします。ビジネス要件に基づいて構成項目を変更します。次の表に、構成項目を示します。

構成項目

説明

connection-url

アクセスするApsaraDB RDS for MySQLデータベースのURL。詳細については、「インスタンスのエンドポイントとポートの表示と管理」をご参照ください。

例: jdbc:mysql://rm-2ze5ipacsu8265q****.mysql.rds.aliyuncs.com:3306

connection-user

データベースへのアクセスに使用するユーザー名。アカウントにデータベース内のテーブルにアクセスするための権限があることを確認してください。

connection-password

connection-user 構成項目で指定されたアカウントのパスワード。

複数のMySQLサービスの構成

複数のMySQLサービスに接続する場合、etc/catalog ディレクトリに複数の構成ファイルを作成できます。ファイル名が異なり、ファイル名拡張子が .properties であることを確認してください。たとえば、sales.properties という名前の構成ファイルを作成すると、Trinoはファイルで構成されたコネクタを使用して、sales という名前のカタログを作成します。

複数のMySQLサービスに接続する場合、connector[x].properties タブでカスタム構成項目を追加して、MySQLサービスのコネクタプロパティを構成できます。各 connector[x].properties タブの名前で、x は 1 から始まる整数を示します。次の手順を実行します。

  1. EMRコンソールにログインします。Trinoサービスの [構成] タブに移動します。[構成]タブで、[mysql.properties] タブをクリックします。[connection-user][connection-password]、および [connection-url] 構成項目を変更します。

    [構成]タブの上部にある [構成項目の追加] をクリックして、カスタム構成項目を追加することもできます。詳細については、「構成項目の管理」トピックの「構成項目の追加」セクションをご参照ください。

  2. 構成を保存します。

    1. [構成] タブの下部にある [保存] をクリックします。

    2. 表示されるダイアログボックスで、[実行理由] パラメーターを構成し、[保存] をクリックします。

  3. Trinoサービスを再起動します。

    1. 右上隅で、[詳細] > [再起動] を選択します。

    2. 表示されるダイアログボックスで、[実行理由] フィールドに理由を入力し、[OK] をクリックします。

    3. [確認] メッセージで、[OK] をクリックします。

データ型マッピング

DECIMAL型のデータの処理

精度の 38 より大きい MySQL DECIMAL 型を Trino DECIMAL 型にマップするには、decimal_mapping 構成プロパティを指定するか、decimal_mapping 構成プロパティのセッションプロパティを allow_overflow に設定します。結果のデータ型のスコープは、decimal-default-scale または decimal-rounding-mode 構成プロパティによって決定され、精度は 38 に固定されます。

デフォルトでは、マッピングのために丸めまたは切り捨てが必要な値は、実行時にエラーになります。丸めモードは、decimal-rounding-mode 構成プロパティまたは decimal-rounding-mode 構成プロパティのセッションプロパティによって決定されます。この構成プロパティは、UNNECESSARY、UP、DOWN、CEILING、FLOOR、HALF_UP、HALF_DOWN、または HALF_EVEN に設定できます。デフォルト値は UNNECESSARY です。

一般的な構成プロパティ

次の表で説明されているプロパティを構成して、データソースのデータ型をTrinoのデータ型にマップし、Trinoにメタデータをキャッシュできます。

プロパティ

説明

unsupported-type-handling

データ型がサポートされていない列を処理するために使用されるメソッド。有効な値:

  • IGNORE:列にアクセスできません。これがデフォルト値です。

  • CONVERT_TO_VARCHAR:列のデータ型が無制限の VARCHAR 型に変換されます。

jdbc-types-mapped-to-varchar

カンマ(,)で区切られた要素で構成されるデータを、無制限の VARCHAR 型のデータに強制的に変換することを許可するかどうかを指定します。

case-insensitive-name-matching

データベースとテーブルの名前で大文字と小文字が区別されるかどうかを指定します。有効な値:

  • true:大文字と小文字は区別されません。

  • false:大文字と小文字は区別されます。これがデフォルト値です。

case-insensitive-name-matching.cache-ttl

大文字と小文字が区別されないデータベース名とテーブル名のキャッシュ有効期限(TTL)。

デフォルト値: 1 。単位:分。

metadata.cache-ttl

テーブルと列の統計情報を含むメタデータのキャッシュ TTL 。

デフォルト値: 0 。値 0 は、メタデータをキャッシュできないことを示します。

metadata.cache-missing

テーブルと列の統計情報を含むメタデータの状態をキャッシュするかどうかを指定します。有効な値:

  • true:状態がキャッシュされます。

  • false:状態はキャッシュされません。これがデフォルト値です。

例:MySQLデータのクエリ

  1. ApsaraDB RDS for MySQLデータベースに関する情報を表示します。

    1. SSHモードでクラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。

    2. 次のコマンドを実行して、Trinoクライアントに接続します。

      • DataLakeクラスター

        trino --server master-1-1:9090 --catalog iceberg --schema default
        // DataLake cluster
      • HadoopクラスターまたはTrinoクラスター

        trino --server emr-header-1:9090 --catalog iceberg --schema default
        // Hadoop or Trino cluster
    3. 次のコマンドを実行して、スキーマを表示します。

      SHOW schemas FROM mysql;
      
      説明

      mysql は、.properties構成ファイルの名前です。

    4. 次のコマンドを実行して、データベースを表示します。

      SHOW tables FROM mysql.web;
      
      説明

      この例では、web は ApsaraDB RDS for MySQL データベースの名前です。

  2. テーブル内のデータをクエリします。

    • 次のステートメントを実行して、mysql.web.clicks テーブルのデータをクエリします。

      SELECT * FROM mysql.web.clicks
      
    • 次のステートメントを実行して、mysql.web.clicks テーブルの列に関する情報をクエリします。

      SHOW columns FROM mysql.web.clicks;
      

      次のステートメントを実行して、列に関する情報をクエリすることもできます。

      DESCRIBE mysql.web.clicks;
      

プッシュダウン

プッシュダウン機能の詳細については、Trino公式ドキュメントのプッシュダウンを参照してください。

MySQLコネクタは、次の演算子と関数に対してプッシュダウン機能をサポートしています。

  • 演算子

    • Join

    • Limit

    • Top-N

  • 関数

    • avg()

    • count()

    • max()

    • min()

    • sum()

    • stddev()

    • stddev_pop()

    • stddev_samp()

    • variance()

    • var_pop()

    • var_samp()