目次
  • Amazon S3ファイル方式
  • ETLツール方式
  • ローカルファイルシステム方式
  • AWS RedshiftからSQLでデータを抽出する方法 - AWSのData APIの活用
  • AWSのData APIを利用するための要件
  • 総括:SQLでAWS Redshiftのクエリを実行する
  • Integrate.ioでAWSのエクスペリエンスを向上させる

SQLは、データサイエンティストやアナリストの65%以上が使用しているなど、最も広く採用されているドメイン言語の1つであり、SQLでAWS Redshiftから貴重なデータにアクセスや解釈ができます。現代の意思決定者として、AWS RedshiftとSQLは、SDKを動かすのに不可欠なコンポーネントです。

Postgre SQLを通じて、Amazon Redshiftで運用コストを最小限に抑えつつデータに基づいた意思決定を行うことができます。

他の競合技術よりもAWS Redshiftを選ぶのにはたくさんのメリットがあります。まず、データウェアハウスは高度な圧縮技術を使用しており、最小限のストレージスペースでスキーマに関係なくデータセットの保存ができます。基本的に、効率的なデータウェアハウスは、ビジネスインテリジェンスを確定する上で大役を果たすことができるものを指します。

また、AWS RedshiftはMPP(超並列処理)で動作するため、データおよびクエリのワークロードが全ノードで均一にアップロードされ、データソース間で高速に効率的な処理が実現されます。

AWS Redshiftの汎用性により、SQLベースのサーバーなど、他の一般的なプラットフォームへのデータの抽出や格納ができるようになります。AWS RedshiftのデータをSQLで転送する方法はいくつかあり、データ移行における難題を簡素化できます。

AWSのData APIを活用することで、抽出処理を細かく設定でき、これによってドライバーやデータベース接続の設定に必要な従来の手順を省き、AWS Redshiftへのアクセスを簡素化できるのです。 

Amazon S3ファイル方式

AWS RedshiftからSQLでデータを抽出する方法の1つ目は、「AWSの一部であるAmazon S3ファイルへの転送」です。AWSのデータをS3バケットにアンロードし、SSIS(SQL Server Integration Services)を使ってデータをSQLサーバーにコピーすることで実行できます。select文を使用することで、データの並列再ロードを簡略化できます。

更に、例えば複数のテーブルを結合する特定のカラムの選択といったような、UNLOADコマンドラインで抽出したいデータを指定することもできます。デフォルトでは、UNLOADコマンドは複数のファイルに並列に書き込みます。つまり、AWS Redshiftクラスタの集約ごとのスライス数に基づくということですが、PARALLEL OFF関数で単一ファイルに絞ることも可能です。

また、各ファイル転送は最大6.2GBであり、UNLOADは超過したデータのために追加のファイルを作成することに注意しておかなければいけません。Integrate.io のような高度なウェアハウス統合プラットフォームの場合、規模やデータ量に関係なく、簡単に並行処理によるファイル管理を合理化することができます。

ETLツール方式

SSISなどの市販のETL(抽出、変換、格納)ツールは、SQLを通じてAWS Redshiftデータベースからデータを取得する最も便利な方法の1つであり、ETLプロセスは、基本的にソースシステムからデータウェアハウスへのVARCHARデータの転送を可能にします。

ETLツールの最初のステップは、Amazon Redshiftのコアアーキテクチャを補完するシステムの設定ですが、互換性のない設定は、長期的にはコストと壊滅的なパフォーマンスとスケーラビリティの問題を引き起こす可能性があります。

したがって、計算しやすくするために一連のガイドラインに従うと便利です。トッププラクティスには、複数の似たようなサイズのファイルからのデータロードをコピーする(=コピーコマンド)、タイムリーなテーブルメンテナンスの実践、データの一括格納(=複数のソースシステムからデータをステージングして蓄積)などがあります。 

さらに、ETLツールを使う場合、システムのパフォーマンスの定期チェックが不可欠です。公式のamazon-redshift-utilsレポジトリには、自動化を強化するためのETL監視プロセスの最適化をサポートするさまざまなスクリプトが用意されており、Integrate.ioは、ETLツールがデータウェアハウスのニーズを補完し、新しいデータの作成から常に最高のパフォーマンスを達成することをお約束します。

ローカルファイルシステム方式

また、AWS Redshift上でUNLOADコマンドを実行し、特定のデータセットをローダーなどのローカルファイルシステムに抽出し、アプリケーションが外部ストレージデバイスにファイルを保存、計算、取得できるようにすることも可能です。

Integrate.ioを使えば、ローカルファイルシステムへのスムーズで中断されない抽出が期待できます。当社の直感的なプラットフォームは、AWS Redshiftから SQLを介してデータを抽出する方法について、信頼できるソリューションとして機能する摩擦のないプロセスを保証します。

AWS RedshiftからSQLでデータを抽出する方法 - AWSのData APIの活用

AWS RedshiftからSQLでデータを抽出する場合、AWS Data APIは必須です(つまりJavaのJDBCのようなものです)。基本的にAPIは、Data APIによって提供されるAPIエンドポイントと通信することにより、SQLコマンドAmazon Redshiftに合理化します。

さらに、Data APIは非同期で機能するため、クエリ結果を最大24時間保存し、後でデータを取得することができます。Data APIは、AWS IAM(アイデンティティおよびアクセス管理)を一元化し、ユーザーがデータベースの認証情報をAPIコールに直接渡すことなく、複数のIDプロバイダを利用できるようにするものです。

AWSのData APIを利用するための要件

Data APIにアクセス・設定する前に、前提条件をいくつか満たさなければいけません。最初のステップは、RedShiftDataFullAccessポリシーで、AWS Redshift Data APIへのアクセスが許可された権限を持つことです。

基本的に、このポリシーによって、[Secrets Manager]で保存された一時的な資格情報または秘密を使用して、Amazon Redshiftクラスタおよび関連するID操作へのアクセスを可能にします。

総括:SQLでAWS Redshiftのクエリを実行する

ローカルシステムまたはAmazon EC2インスタンスにJDBC(Java Database Connectivity)およびODBC(Open Database Connectivity)ドライバーをインストールすると、AWS RedshiftにSQLでクエリを実行することができます。クエリを利用することで、データを簡単に検索、抽出、削除でき、AWS Redshiftでは、シンプルな4つのステップで簡単にクエリを開始できます。

まず最初のステップは、クラスタ接続文字列の作成で、AWS Management Consoleの公式サイトにログインすると、クラスタ接続文字列にアクセスできます。認証情報でサイトにアクセスして対象となるクラスタの選択に進んだら、クラスタの接続の詳細、特にJDBCとODBCの接続を見てみましょう。

次のステップでは、Amazon Redshiftサーバーの要件に従ってJDBCコネクタを設定します。SQLクライアントがJDBCをサポートしていない場合は、ODBC接続を設定することもできます。 必要な設定を行ったら、QL Workbenchで問い合わせたいドライバに移動して、問い合わせを開始できます。
 

場合によっては、「ドライバダイアログボックスを一つ選択してください」という指定のダイアログボックスが表示されることがあります。そのような場合は、com.amazon.redshift.jdbc4.Driver または com.amazon.redshift.jdbc41.Driver を選択して、それぞれのドライバーを選択し、Amazon Redshift の URL を挿入してください。それで自動コミット、プロファイルリストの保存のオプションを選択して完了です。

Integrate.ioでAWSのエクスペリエンスを向上させる

Integrate.ioは、データウェアハウス統合プラットフォームとして業界をリードしており、SQLを介してAWS Redshiftからデータを抽出する方法に光を当てる機能をお届けします。現代において、ビジネスオーナーが最善の決断を下すには、信頼できる唯一の情報源(Single source of truth)が必要なのです。

当社のプラットフォームは、AWS Redshiftのウェアハウス・エクスペリエンスを最適化してより速く収益性の高い成長を促します。それにより、SQLの力を通じて、すべてのデータタイプと結果セットでAmazon redshiftデータを管理する際のパラメータの設定が簡単になります。
Integrate.ioのご相談、14日間無料トライアルのお申し込みは、こちらのリンクからお願い致します。