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 など、様々な環境で活用いただけます。
- 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 );
- CData JDBC Driver for Amazon Redshift の無料試用版をダウンロードします。
- サンプルデータの CSV ファイルをダウンロードします。
- CSV ファイルからデータをバッチ処理し、各バッチを Amazon Redshift にロードするシンプルなアプリケーションを作成します。このアプリケーションでは、PreparedStatement の addBatch() メソッドを使用して、各バッチのサイズを最大化し(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(); - アプリケーションを実行します。
結果
以下は、7つのバッチで100万行をロードした結果です(バッチサイズは Redshift の制限に基づいています)。各バッチのナノ秒数と、全体の挿入に要した合計ナノ秒数(約1分51秒)が表示されています:

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