MaxCompute Java Database Connectivity (JDBC) ドライバーは、標準の JDBC API を提供します。JDBC API を使用して、MaxCompute 内の大量のデータに対して分散コンピューティングとクエリを実行できます。また、JDBC ドライバーを使用して、JDBC をサポートするツールを MaxCompute に接続することもできます。
使用上の注意
MaxCompute JDBC ドライバーを使用して MaxCompute に接続します。詳細については、「使用上の注意」をご参照ください。
MaxCompute JDBC ドライバーを使用して、Business Intelligence (BI) 分析ツールを MaxCompute に接続します。これにより、ツールを使用して MaxCompute のデータを可視化して分析できます。リファレンス:
MaxCompute JDBC ドライバーを使用して、データベース管理ツールを MaxCompute に接続します。これにより、ツールを使用して MaxCompute プロジェクトを管理できます。リファレンス:
使用上の注意
MaxCompute JDBC ドライバーを使用して SQL 文を実行し、実行結果を取得するには、次の要件を満たす必要があります:
プロジェクトのメンバーであること。
プロジェクトに対する CreateInstance 権限を持っていること。
使用するテーブルに対する Select および Download 権限を持っていること。
説明MaxCompute JDBC V1.9 以前を使用する場合、クエリごとに一時テーブルが自動的に作成されます。Tunnel コマンドを使用して、一時テーブルからクエリ結果を取得できます。これらのバージョンを使用するには、CreateTable 権限が必要です。
MaxCompute JDBC V2.2 以降を使用する場合、クエリごとに一時テーブルは自動的に作成されません。CreateTable 権限を持っているかどうかに関係なく、Instance Tunnel インターフェイスを呼び出してクエリ結果を取得できます。
詳細については、「MaxCompute の権限」をご参照ください。
MaxCompute はデータ保護機能を提供します。プロジェクトでデータ保護機能が有効になっている場合、プロジェクトからデータを移動することはできません。V2.4 より前のバージョンの MaxCompute JDBC を使用する場合、
result setは取得できません。MaxCompute JDBC V2.4 以降を使用する場合、取得する結果行の数は READ_TABLE_MAX_ROW パラメーターの値を超えることはできません。このパラメーターの詳細については、「プロジェクト操作」をご参照ください。データ保護機能の詳細については、「データ保護メカニズム」をご参照ください。MaxCompute V2.0 のデータ型エディションは、TINYINT、SMALLINT、DATETIME、TIMESTAMP、ARRAY、MAP、STRUCT などのより多くのデータ型をサポートします。これらの新しいデータ型を使用するには、次のコマンドを実行して MaxCompute V2.0 データ型エディションを有効にする必要があります。詳細については、「データ型エディション」をご参照ください。
set odps.sql.type.system.odps2=trueJDBC V3.4.1 以降のバージョンでは、長い SQL 文 (1 KB 超) がある場合、同時実行性を慎重に制御する必要があります。たとえば、8 vCPU と 16.0 GiB のメモリを搭載した ECS インスタンスを使用する場合、同時実行性は 100 を超えないようにすることをお勧めします。リクエストの同時実行性を効果的に制御できない場合は、JDBC V3.8.8 または V3.9.3 にアップグレードし、
skipCheckIfSelect=trueを設定して SQL 解析機能をスキップできます。この機能の詳細については、「バージョン更新履歴」をご参照ください。
よくある質問
MaxCompute JDBC ドライバーのログファイルを表示するにはどうすればよいですか?
デフォルトでは、MaxCompute JDBC ドライバーのログファイルは、MaxCompute JDBC ドライバーの JAR パッケージと同じディレクトリに保存されます。ファイル名は jdbc.log です。
コードと MaxCompute JDBC ドライバーが同じ uber JAR パッケージにある場合、MaxCompute JDBC ドライバーのログファイルは uber JAR パッケージと同じディレクトリに保存されます。
MaxCompute JDBC ドライバーのログには、クラス名、メソッド名、パラメーター、戻り値、行数など、JDBC API 呼び出しに関する詳細が表示されます。この情報をデバッグに使用できます。
MaxCompute Logview URL を取得するにはどうすればよいですか?
MaxCompute JDBC ドライバーは、MaxCompute SDK for Java に基づいてカプセル化されています。Logview URL は、MaxCompute クライアント、MaxCompute Studio、および DataWorks で SQL 文を実行すると生成されます。Logview URL は、MaxCompute JDBC ドライバーを使用して SQL 文を実行するときにも生成されます。Logview URL を使用して、ジョブのステータスを表示し、ジョブの進行状況を追跡し、ジョブの実行結果を取得できます。Logview URL は、properties.log4j パラメーターを使用して設定されます。デフォルトでは、ログは標準エラーログとして表示されます。
MaxCompute は接続プールと自動コミットモードをサポートしていますか?
MaxCompute は、従来のデータベースのロングコネクションとは異なる REST サービスを提供します。MaxCompute JDBC ドライバーが接続を確立するのは、軽量なタスクと見なされます。ドライバーは接続プールが使用されるシナリオをサポートしていますが、MaxCompute JDBC ドライバーには接続プールは不要です。
MaxCompute はトランザクションをサポートしていません。各クエリはサーバー上で即座に実行されます。自動コミットモードは、MaxCompute JDBC ドライバーで自動的に有効になります。MaxCompute JDBC ドライバーの自動コミットモードを無効にすることはできません。
パーティションフィールドとデータ型を取得するにはどうすればよいですか?
Connection.getMetadata()メソッドを使用して DatabaseMetaData オブジェクトを取得し、getColumns()メソッドを使用してすべての列のメタデータを取得できます。