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

E-MapReduce:JDBC を使用して StarRocks インスタンスに接続する

最終更新日:Feb 27, 2025

JDBC 経由でサーバーレス StarRocks インスタンスに接続すると、さまざまなプラットフォーム間でシームレスなデータアクセスエクスペリエンスが提供され、アプリケーション統合プロセスが大幅に簡素化されます。 このトピックでは、JDBC を使用してサーバーレス StarRocks インスタンスに接続する手順について説明します。

前提条件

サーバーレス StarRocks インスタンスが作成されていること。詳細については、「インスタンスを作成する方法」をご参照ください。

手順

  1. pom.xml ファイルに次の依存関係を含めることで、MySQL JDBC ドライバーを Maven プロジェクトに追加します。

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.27</version><!-- 必要に応じてバージョンを変更してください -->
    </dependency>
    説明

    mysql-connector-java は MySQL データベース用の JDBC ドライバーです。データベースごとに特定の JDBC ドライバーが必要です。互換性のない JDBC ドライバーを使用すると、互換性の問題が発生する可能性があります。適切な JDBC ドライバーについては、ターゲットデータベースの公式 Web サイトを参照することをお勧めします。現在、StarRocks は公式の JDBC ドライバーを提供していないため、このトピックでは MySQL JDBC ドライバーを使用しています。

  2. 以下に示すサンプルコードを使用して、StarRocks インスタンスに接続します。

    public class ConnStarrocks {
        /**MySQL データベースに接続する
    	1. ドライバーを読み込む
    	2. データベース接続文字列 "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("データベースに接続しています...");
                conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
    
                // クエリを実行するための Statement オブジェクトを作成する。
                System.out.println(" Statement オブジェクトをインスタンス化しています...");
                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!");
        }	
    }

    出力は次のようになります。

    image

    使用されているパラメーターについては、以下の表を参照してください。特定の環境に合わせて必要に応じて置き換えてください。

    パラメーター

    説明

    JDBC_DRIVER

    データベース接続用の JDBC ドライバー。たとえば、com.mysql.cj.jdbc.Driver です。

    DB_URL

    jdbc:mysql://<FE アドレス>:<fe_query_port>/<データベース> 形式のデータベース接続文字列。ここで使用されるパラメーターは次のとおりです。

    • <FE アドレス>: サーバーレス StarRocks インスタンスの FE の内部アドレスまたはパブリックアドレス。[インスタンスの詳細] ページの [FE の詳細] 領域で確認できます。

      • 内部アドレスを使用する場合は、同じ VPC 内にあることを確認してください。

      • パブリックアドレスを使用する場合は、セキュリティグループルールで対応するポートでの通信が許可されていることを確認してください。詳細については、「ネットワークアクセスとセキュリティ設定」をご参照ください。

    • <fe_query_port>: サーバーレス StarRocks インスタンスの FE のクエリポート (デフォルトは 9030)。[インスタンスの詳細] ページの [FE の詳細] 領域で確認できます。

    • <データベース>: サーバーレス StarRocks インスタンスのデータベース名。このトピックでは、「StarRocks Shared-Nothing インスタンスを使用する」で作成した load_test データベースを使用します。

    USER

    サーバーレス StarRocks インスタンスのユーザー名。管理者ユーザーは、デフォルトで管理者権限が付与されています。[ユーザー管理] ページから新しいユーザーを追加して接続することもできます。ユーザーの追加については、「ユーザーとデータ認証を管理する」をご参照ください。

    PASSWORD

    USER に対応するパスワード。パスワードのセキュリティを確保してください。

    sql

    SQL 文。このトピックで使用されている SQL 文の例は、「StarRocks Shared-Nothing インスタンスを使用する」で作成した load_test データベースの insert_wiki_edit テーブルに基づいています。

参照

サーバーレス StarRocks の SQL エディターを使用すると、Web インターフェースを介して SQL クエリを直接記述、実行、および管理できるため、StarRocks インスタンスの操作が効率化されます。詳細については、「EMR StarRocks Manager 経由で StarRocks インスタンスに接続する方法」をご参照ください。