Azure SQL Data Warehouseは、リレーショナルと非リレーショナルの両方の大規模データを処理可能なクラウドベースのスケールアウト型データベースです。 Massively Parallel Processing(MPP)アーキテクチャーに基づくSQL Data Warehouseは、どのようなエンタープライズワークロードでも処理できます。
リアルタイムのビジネス意思決定への注目が高まる中でパラダイムシフトが起こり、データウェアハウスシステムを最新の状態に維持するだけでなく、ロード時間を短縮することが重視されるようになっています。SQL Data Warehouseにデータをロードする最速で最適な方法は、PolyBaseを使用してAzure BLOBストレージからデータをロードすることです。 PolyBaseは、SQL Data WarehouseのMassively Parallel Processing(MPP)設計を使用して、Azure BLOBストレージから並列にデータをロードします。
Talendの主な差別化要因として、オープンソースであること、そして社内開発のコンポーネントを使用したり、オープンソースコミュニティにより開発されたコンポーネントをTalend Exchangeを介して活用したりできることが挙げられます Tここでは、このようなカスタムコンポーネントの1つであるtAzureSqlDWBulkExecに焦点を当て、Talendがこれを利用してPolyBaseでSQL Data Warehouseにデータをロードする方法を説明します。
Download >> Talend Open Studio for Data Integration
わかりやすくするために、次の2つのシナリオで検討します。
- 任意のソースからSQL DWにデータをロードする
- Azure HDInsightとSparkを活用しながらSQL DWにデータをロードする
任意のソースからSQL DWにデータをロードする
このシナリオでは、Talendジョブの一部として1つ以上のソースからデータを取り込むことができます。Talendがすぐに利用できるように提供している多様な処理及びデータ品質のコネクターを使用して、必要に応じてデータの変換、クレンジング、エンリッチメントが行われます。 出力は、tFileOutputDelimitedを使用して区切り文字付きファイル形式に準拠させる必要があります。
次に、出力ファイルは、tAzureStoragePutを使用してAzure BLOBストレージにロードされます。 ファイルがBLOBにロードされると、tAzureSqlDWBulkExecを利用して、区切り文字付きファイルからSQL Data Warehouseテーブルにデータがバルクロードされます。
Azure HDInsightとSparkを活用しながらSQL DWにデータをロードする
データ量が増加すると、データをより高速で処理する必要が生じます。 Apache Sparkは、Hadoopと互換性のある高速で汎用の処理エンジンであり、信頼できるビッグデータ処理フレームワークとして一部のデータ駆動型企業で使用されています。 Azure HDInsightは、Spark用の最適化されたオープンソース分析クラスターを提供する、完全に管理されたクラウドのHadoop製品です。Talend Studioを使用してHDInsightクラスターに接続する方法については、How to Utilize Talend with Microsoft HDInsight(Microsoft HDInsightでTalendを活用する方法)をご覧ください。
Talend Big Data Platform(サブスクリプション製品)は、インメモリ分析、機械学習、及びキャッシングを組み合わせたネイティブのSparkコードを生成するためのグラフィカルなツールとウィザードを提供し、最適なパフォーマンスと手作業以上に効率的なコーディングを実現します。生成されたSparkコードは、HDInsightクラスター上で直接Talend Studioからネイティブで実行できます。
このシナリオでは、HDInsight Sparkクラスターを活用して1つ以上のソースからデータを取り込み、変換を適用して結果をHDFS(Azure BLOBストレージ)に出力するように、Talend Big Dataジョブをセットアップします。Talend Big Dataジョブの出力ファイルには、次のようにさまざまな形式があります(PolyBaseによりサポート)。
- 区切り文字付きテキスト:tFileOutputDelimitedを使用
- Hive ORC:tHiveOutputを使用
- Parquet:tHiveOutput / tFileOutputParquetを使用
Sparkジョブの完了後、tAzureSqlDWBulkExecを使用してSpark出力ファイルからSQL Data Warehouseテーブルにデータをバルクロードする標準ジョブが実行されます。
パフォーマンスのベンチマーク
tAzureSqlDWBulkExecはネイティブのPolyBase機能を使用するので、Azure SQL Data Warehouseにデータをロードすることによるパフォーマンスのメリットを十分に引き出します。 社内テストでは、標準的なJDBCと比較して、このアプローチが10倍のスループットを実現することが示されています。
Join The Conversation