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

:アプリケーション開発での JDBC の使用

最終更新日:Jan 14, 2025

Java Database Connectivity(JDBC)を使用して Lindorm Distributed Processing System(LDPS)にアクセスし、Spark SQL を使用してデータのクエリ、分析、生成を行うことができます。

前提条件

  • Lindorm インスタンスが作成され、そのインスタンスに対して LindormTable がアクティブ化されていること。 詳細については、「インスタンスの作成」をご参照ください。

  • Lindorm インスタンスに対して LDPS がアクティブ化されていること。 詳細については、「LDPS のアクティブ化と設定の変更」をご参照ください。

  • Java 統合開発環境(IDE)がインストールされていること。 Java Development Kit(JDK)のバージョンは 1.8 以降である必要があります。

LDPS へのアクセスに使用する JDBC エンドポイントの取得

LDPS への接続に使用するエンドポイントのクエリ方法については、「エンドポイントの表示」をご参照ください。

Beeline を使用した JDBC へのアクセス

  1. Spark リリースパッケージ をダウンロードします。

  2. ダウンロードした Spark リリースパッケージを解凍します。

  3. SPARK_HOME 変数を、パッケージが解凍されたパスに設定します。

    export SPARK_HOME=/path/to/spark/;
  4. 次の構成ファイルでパラメーターを構成します: $SPARK_HOME/conf/beeline.conf

    • endpoint: このパラメーターを LDPS の JDBC エンドポイントに設定します。

    • user: このパラメーターを、Lindorm ワイドテーブルへのアクセスに使用するユーザー名に設定します。

    • password: このパラメーターを、Lindorm ワイドテーブルへのアクセスに使用するパスワードに設定します。

    • shareResource: 複数のインタラクティブセッションで Spark リソースを共有するかどうかを指定します。 このパラメーターのデフォルト値は true です。

  5. /bin/beeline コマンドを実行します。 インタラクティブセッションで、SQL ステートメントを実行します。

    LDPS はさまざまな種類のデータソースをサポートしています。 詳細については、「注意事項」をご参照ください。

    たとえば、Hive Metastore をアクティブ化した後、次のステートメントを実行してテーブルを作成し、テーブルにデータを書き込み、テーブル内のデータをクエリできます。 詳細については、「Hive Metastore を使用して Lindorm のメタデータを管理する」をご参照ください。

    CREATE TABLE test (id INT, name STRING);
    INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison');
    SELECT id, name FROM test;

Java コードを開発して JDBC にアクセスする

  1. Maven など、お使いの環境で JDBC への依存関係を追加します。

    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>2.3.8</version>
    </dependency>
  2. JDBC にアクセスするための Java コードを開発します。 次のコードは、JDBC にアクセスする方法の例を示しています。

    import java.sql.*;
    
    public class App {
        public static void main(String[] args) throws Exception {
            // Hive JDBC ドライバーを読み込みます
            Class.forName("org.apache.hive.jdbc.HiveDriver");
    
            String endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****";
            String user = "";
            String password = "";
            Connection con = DriverManager.getConnection(endpoint, user, password);
    
            Statement stmt = con.createStatement();
            String sql = "SELECT * FROM test";
            ResultSet res = stmt.executeQuery(sql);
    
            while (res.next()) {
                System.out.println(res.getString(1));
            }
    
        }
    }
  3. オプション:ジョブの追加パラメーターを構成する場合は、JDBC エンドポイントでパラメーターを指定できます。 次の例は、JDBC エンドポイントでパラメーターを指定する方法を示しています。

    String endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****;spark.dynamicAllocation.minExecutors=3;spark.sql.adaptive.enabled=false";

Python コードを開発して JDBC にアクセスする

  1. Spark リリースパッケージ をダウンロードします。

  2. ダウンロードした Spark リリースパッケージを解凍します。

  3. パスに関連するパラメーターを構成します。

    1. Spark のパスを構成します。

      export SPARK_HOME=/path/to/dir/;
    2. CLASSPATH 変数を構成します。

      export CLASSPATH=$CLASSPATH:$SPARK_HOME/jars/*;
    3. JayDeBeApi をインストールします。

      pip install JayDeBeApi
  4. JDBC にアクセスするための Python コードを開発します。 次のコードは、JDBC にアクセスする方法の例を示しています。

    import jaydebeapi
    
    # JDBC ドライバーのクラス名
    driver = 'org.apache.hive.jdbc.HiveDriver'
    # JDBC 接続 URL
    endpoint = 'jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****'
    # JDBC ドライバーの JAR ファイルのパス
    jarPath = '/path/to/sparkhome/jars/hive-jdbc-****.jar'
    user = '****'
    password = '****'
    
    conn=jaydebeapi.connect(driver, endpoint, [user, password], [jarPath])
    cursor = conn.cursor()
    cursor.execute("select 1")
    results = cursor.fetchall()
    
    cursor.close()
    conn.close()
  5. オプション:ジョブの追加パラメーターを構成する場合は、JDBC エンドポイントでパラメーターを指定できます。 次の例は、JDBC エンドポイントでパラメーターを指定する方法を示しています。

    endpoint = "jdbc:hive2://123.234.XX.XX:10009/;?token=bisdfjis-f7dc-fdsa-9qwe-dasdfhhv8****;spark.dynamicAllocation.minExecutors=3;spark.sql.adaptive.enabled=false"