2016-08-22 14 views
2

Amazon S3に格納されているファイルにはデータの束があり、それを使ってRedshiftでデータボールトを構築する予定です。私のの最初の質問は、RedshiftでDVとデータマートを構築するのが適切なのか、S3を私のデータレイクとみなし、Redshiftでデータマートしか持たないのかが問題です。RedshiftとETL戦略のデータボールト

私のアーキテクチャでは、私は現在前者のS3 Data Lake + Redshift VaultとMartsを検討中です。しかし、RedshiftでETLプロセスを直接作成して、マートにVault内のデータを移入できるかどうか、あるいはAmazon EMRを使用してS3の生データを処理して新しいファイルを生成しなければならないかどうかはわかりません。最終的にマートでそれらをロードします。

したがって、私のの2番目の質問は次のとおりです。ETL戦略は何ですか?ありがとう。

+1

S3はリレーショナルではなく、基本的にファイルを格納するためのものです。データボールトはリレーショナルデータベースに実装されているため、S3でデータボルトを作成することはできません。 S3であなたのハブ、リンク、サテライトをどのように構築しますか?用語を探しているのであれば、S3はあなたの 'データ湖'と呼ばれるかもしれません(今は汚いと感じています) –

+0

@ Nick.McDermaid、そうです。私は私のアーキテクチャではデータ湖としてS3を考えてきました。私の質問は、レッドシフトのDVとデータマート、または湖のデータからデータマートだけを入手することです(質問を編集します)。私が考えているのは、S3でVaultにデータをロードしてから、Vaultからのデータをマートにロードすることです。しかし、RedshiftでETLプロセスを直接作成できるかどうか、またはAmazon EMRなどでS3のファイルを処理して、マートとロード用の新しいファイルを生成しなければならないかどうかはわかりませんそれはRedshiftで? –

+2

データ保管庫が必要な場合は、赤色シフトで構築する必要があります。ファイルをDVまたはDMに読み込むことができます。 DVが必要な場合は、ビューを使用してDVにDVをロードしたり、挿入/更新ステートメントを削除したりすることができます。ファイルを再度エクスポートしてインポートする必要はありません。 Redshiftにファイルをロードするには、ある種のスケジューリング/ジョブ実行ツールが必要です(AWS上であろうとなかろうと)redshiftに接続し、データをロードするためにredshift内で 'COPY'コマンドを実行する必要があります。私はこれをやっているプロジェクトを調査しましたが、これはまだ始まったことはありませんでした。 –

答えて

0

お詫び!私が答えのセクションに書いているのは、そのことをコメントする評判はいりません。

私はあなたと同じボートにいます。私のETL操作を赤色シフトで実行しようとしています。今のところ、私は30億行を持ち、大幅に成長することを期待しています。
今、AWSラムダから定期的に呼び出されるDMLを使用して、データを赤方偏移のデータマートにロードします。私によれば、Redshiftでデータ保管庫を作成することは非常に困難です。

+0

あなたは私よりももっと進歩したようですね。私は現在、いくつかの研究を行い、フローとデータアーキテクチャのv0.1と定義しています。データボールトの戦略は私には大変意味があります。だから、私はRedshiftを使うことの実装の意味を理解しようとしています。 VaultとMarts間のETLにAmazon Data Pipelineを使用してみましたか?私が読んだところでは、わずかな追加コストで実現可能なアプローチのように見えます。 –

+0

はい、データパイプラインを使用できますが、データパイプラインの最小スケジュール間隔は15分であり、ビジネス要求はより頻繁に発生することに注意してください。また、Redshift(Source)とRedshift(Destination)間のステージングテーブルでSQL変換を実行するためのドキュメントが見つかりませんでした。 –

0

S3はファイルのキー値ストアに過ぎません。そこにDVやDWを作成することはできません。 RedshiftまたはEMRを使用して、データをDV用のリレーショナル形式に処理できます。あなたがどちらを選択するかは、あなた次第です。 EMRは特定のユースケースを持っていますIMO

+0

S3はDV用ではないことは明らかです。問題は、レッドシフトのDV + DMとそこにいるDMだけです。 RedshiftのリレーショナルモデルにS3のデータを入力するETL戦略についても質問しました –

+0

Redshiftで自分のDMがある場合は、どこにDVを保存しますか? EMR?これは高価なソリューションの1つです。それとも、DVを完全に使わないようにしたいのですか?私は本当にあなたのアプローチをここで理解していません。 DVを純粋にETLに関してできることに使う理由は何ですか? – simplycoding

+0

私は私の質問ではっきりしていたはずです。私は、データを取得する場所からDVを取得して、S3のデータからデータが取り込まれたRedshift内のDMだけを持っていて、おそらくEMRを介して事前処理されなければならないDMを入力する必要があります。私はDVについて読んだことがあり、多くの利点を見ていますが、それでも他の経験から聞きたいことがあります。 DVを行うことが推奨されていると仮定して、他の人がDV(Redshift)からDM(Redshift)へのデータの変換とロードをどのように実装しているかを知りたい。 Lambda、Data Pipeline、RedshiftのSQL、EMRを使用してDVからデータを取得し、それをDMに入れますか? –

0

私はパーティーが少し遅れていますが、あなたがこれを解決したことは間違いありません。ちょうど私がこれについて私の意見を共有すると思った。 1つの解決策は、S3とHiveを永続ステージングエリア(データレイク)として使用して、ソースからデータを上陸させることです。 RedshiftでDVを完全に構築します。 S3からファイルを取り込むためにRedshiftにステージングエリアが必要ですが、Redshiftステージングテーブルへの途中でハッシュが計算されていることを確認してください(EMR/Hiveが入る場所です)。 Redshiftにハッシュを直接追加することもできますが、Redshiftを音量に応じて威圧することができます。プレーンな古い一括挿入および更新ステートメントを使用してステージングからDVにデータをプッシュし、ビューを使用してRedshiftでマートを仮想化します。

これを達成するために任意のデータパイプラインツールを使用することができ、ラムダはあなたや他のワークフロー/パイプラインツールの候補にもなります。