JDBC を使用してサーバーレス StarRocks インスタンスに接続すると、統一されたクロスプラットフォームのデータアクセス環境を提供し、アプリケーションの統合を簡素化します。
前提条件
サーバーレス StarRocks インスタンスが作成されていること。詳細については、「インスタンスの作成」をご参照ください。
手順
-
Maven プロジェクトに MySQL JDBC ドライバーを追加するには、
pom.xmlファイルに次の依存関係を追加します。<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version><!-- 必要に応じてバージョンを変更してください。 --> </dependency>説明StarRocks は公式の JDBC ドライバーを提供していないため、このトピックでは MySQL の JDBC ドライバーである
mysql-connector-javaを例として使用します。データベースごとに特定のドライバーが必要です。接続の問題を防ぐために、お使いのデータベースの公式サイトから、サポートされている JDBC ドライバーを使用してください。 -
次のサンプルコードを使用して StarRocks インスタンスに接続します。
public class ConnStarrocks { /** MySQL データベースへの接続 1. ドライバーのロード 2. JDBC URL の指定。例: "jdbc:mysql://localhost:9030/yourDatabaseName?" 3. ユーザー名の指定 4. パスワードの指定 **/ static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:9030/yourDatabaseName?useSSL=false&serverTimezone=UTC"; /** ユーザー名とパスワードは、実際の認証情報に置き換えてください。 **/ static final String USER = "****"; static final String PASSWORD = "1234*****"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // JDBC ドライバーを登録します。 Class.forName(JDBC_DRIVER); // データベース接続を確立します。 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASSWORD); // クエリを実行するための Statement オブジェクトを作成します。 System.out.println("Instantiating Statement object..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM websites"; // 結果セットを取得します。 ResultSet rs = stmt.executeQuery(sql); // 完了後、リソースをクローズします。 rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // JDBC エラーを処理します。 se.printStackTrace(); }catch(Exception e){ // Class.forName エラーを処理します。 e.printStackTrace(); }finally{ // リソースをクローズします。 if(stmt!=null) { stmt.close(); } if(conn!=null) { conn.close(); } } System.out.println("Goodbye!"); } }出力例:
C:\Users\xxx\.jdks\openjdk-22.0.2\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.2\lib\idea... Connecting to database... Instantiating Statement object... ID: GELongstreet, Name: 2015-09-12 00:00:00.0, URL: 0 ID: PereBot, Name: 2015-09-12 00:00:00.0, URL: 1 Goodbye! Process finished with exit code 0次の表で、コードサンプル内のパラメーターについて説明します。プレースホルダーの値を実際の情報に置き換えてください。
パラメーター
説明
JDBC_DRIVERデータベース接続用の JDBC ドライバー。たとえば、
com.mysql.cj.jdbc.Driverです。DB_URLデータベース接続用の JDBC URL。形式は
jdbc:mysql://です。パラメーターの説明は次のとおりです:: / -
<FE_endpoint>は、Serverless StarRocks インスタンスの FE ノードの内部またはパブリックエンドポイントです。このエンドポイントは、Instance Details ページの FE 詳細 セクションで確認できます。-
内部エンドポイントを使用する場合は、アプリケーションが同じ VPC 内で実行されていることを確認してください。
-
パブリックエンドポイントを使用する場合は、セキュリティグループ ルールで必要なポートへのトラフィックが許可されていることを確認してください。詳細については、「ネットワークアクセスとセキュリティ設定」をご参照ください。
-
-
<fe_query_port>: Serverless StarRocks インスタンスの FE ノードのクエリポートです。デフォルトポートは 9030 です。このポートは、Instance Details ページの FE 詳細 セクションで確認できます。 -
<database>: サーバーレス StarRocks インスタンスのデータベース名。この例では、「ストレージ・コンピュート統合インスタンスの使用開始」で作成された load_test データベースを使用します。
USERServerless StarRocks インスタンスのユーザー名です。デフォルトでは、管理者権限を持つ admin ユーザーが提供されます。また、Users ページでユーザーを作成することもできます。ユーザーの作成方法の詳細については、「ユーザーの管理と権限の付与」をご参照ください。
PASSWORD指定したユーザー名のパスワード。堅牢なパスワードを使用してください。
sql実行する SQL ステートメント。この例の SQL ステートメントは、「ストレージ・コンピュート統合インスタンスの使用開始」で作成されたデータベースの websites テーブルをクエリします。
-
関連ドキュメント
または、 EMR StarRocks Manager が提供する SQL エディターを使用して、Web UI で SQL クエリの記述、実行、管理を行うこともできます。詳細については、「EMR StarRocks Manager を使用した StarRocks インスタンスへの接続」をご参照ください。