Amazon Redshift: 100万行チャレンジ



CData JDBC Driver を使用して、2分以内に100万行を Amazon Redshift にアップロードできます。

この記事では、Amazon Redshift への100万行のデータロードにチャレンジします。このチャレンジでは、CData JDBC Driver for Redshift をシンプルな Java アプリケーションと CSV ファイルと組み合わせて使用しました。

ネイティブドライバーの200倍高速

いくつかの 他の 記事で説明しているとおり、CData ドライバーはパフォーマンスにおいて業界をリードしています。CData の開発チームは、読み取りと書き込みのデータ処理パフォーマンスの最適化に膨大な時間を費やし、ドライバーがボトルネックにならないよう取り組んできました。

Amazon Redshift においては、100万行のデータを挿入する時間を6時間以上(ネイティブドライバー使用時)から2分未満に短縮しました(ネイティブドライバーの約200倍高速)。

テスト



この結果を再現するには、CData JDBC Driver for Amazon Redshift の試用版をダウンロードし、Redshift クラスターに新しいテーブルを設定するだけです。これで、他のどのドライバーよりも高速にデータをロードして、CData の違いを体験する準備が整います。この記事では、シンプルなカスタム Java アプリケーションで JDBC ドライバーを使用しましたが、CData の幅広い製品ラインナップにより、多くの他のツールや開発プラットフォームでも同じパフォーマンスを実現できます。主要な BI、レポーティング、ETL ツール、Java、.NET などの言語でのカスタムアプリケーション、PowerShell、Microsoft SSIS など、様々な環境で活用いただけます。

  1. Amazon Redshift クラスターを設定します。クラスターを設定したら、ターゲットテーブルの DDL を作成します。
    DROP TABLE customer_load_challenge;
    
    CREATE TABLE customer_load_challenge
    (
      cust_id  INTEGER NOT NULL,
      name     VARCHAR(25) NOT NULL,
      address  VARCHAR(25) NOT NULL,
      city     VARCHAR(10) NOT NULL,
      nation   VARCHAR(15) NOT NULL,
      region   VARCHAR(12) NOT NULL,
      phone    VARCHAR(15) NOT NULL
    );
    
  2. CData JDBC Driver for Amazon Redshift の無料試用版をダウンロードします。
  3. サンプルデータの CSV ファイルをダウンロードします。
  4. CSV ファイルからデータをバッチ処理し、各バッチを Amazon Redshift にロードするシンプルなアプリケーションを作成します。このアプリケーションでは、PreparedStatementaddBatch() メソッドを使用して、各バッチのサイズを最大化し(Amazon Redshift への呼び出し回数を最小化)ました。

    サンプルコード

    //1つのバッチ
    Connection connection = DriverManager.getConnection("jdbc:redshift:server=" + server + ";port=" + port + ";user=" + user + ";password=" + password + ";database=dev;AllowPreparedStatement=true;");
    String cmd = "INSERT INTO customer_load_challenge (cust_id, name, address, city, nation, region, phone ) VALUES (?,?,?,?,?,?,?)";
    PreparedStatement pstmt = connection.prepareStatement(cmd);
    
    for (int row = 0; row < rows.length; row++){
      String[] line = rows[row].split(",");
      for (int i = 0 ; i < line.length; i++) {
        pstmt.setString(i + 1, line[i]);
      }
      pstmt.addBatch();
    }
    
    int[] affected = pstmt.executeBatch();
  5. アプリケーションを実行します。

結果



以下は、7つのバッチで100万行をロードした結果です(バッチサイズは Redshift の制限に基づいています)。各バッチのナノ秒数と、全体の挿入に要した合計ナノ秒数(約1分51秒)が表示されています:

詳細情報と無料トライアル



100万行のロード時間を約6時間から2分未満に短縮できることは、CData ドライバーを使用するメリットの一つにすぎません。豊富な機能と高いパフォーマンスを備えた CData ドライバーを使用すれば、クラウドベースでもオンプレミスでも、SaaS でもアプリケーションベースでも、NoSQL でも RDBMS でも、すべてのデータに対して統一されたエクスペリエンスを得ることができます。さらに、ワールドクラスのサポートチームがバックアップします。30日間の無料トライアルをダウンロードして、CData の違いを今すぐ体験してください。

始める準備はできましたか?

Amazon Redshift 用ドライバーの詳細、または無料トライアルをダウンロード:

今すぐダウンロード