Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
COPYコマンド って知ってる? Amazon S3からDWHへのデータ移行 2024/08/28 クラウドLT大会vol.10 セゾンテクノロジー 川口媛香
Slide 2
Slide 2 text
アジェンダ • はじめに • DWHへのデータの取り込み • DWHをSnowflakeに変更したい • やってみた • まとめ 2
Slide 3
Slide 3 text
はじめまして Himeka Kawaguchi 川口 媛香 2022年入社 3年目 データ活用によるお客様の業務効率化を目指すPJに参画 ドメインの理解とエンジニアリングの習熟の両立に奮闘する日々 業務で使用する技術:Snowflake・Power BI・Tableauなど 3 Qiitaやってます~
Slide 4
Slide 4 text
業務内容を少しだけ HULFT Squareを用いてデータ分析基盤を構築、内製化を支援 お客様システム DWH BI ダッシュボード 4
Slide 5
Slide 5 text
業務内容を少しだけ HULFT Squareを用いてデータ分析基盤を構築、内製化を支援 お客様システム DWH BI ダッシュボード 5
Slide 6
Slide 6 text
DWHへのデータの取り込み DWHへのデータの取り込みにはデータレイクを挟むことが多い データレイク DWH BI ダッシュボード お客様システム 6
Slide 7
Slide 7 text
DWHへのデータの取り込み ■DWHにAmazon Redshiftを選んだ場合 Amazon S3からCOPYコマンドで取り込み Amazon S3 Amazon Redshift COPY コマンド データレイク DWH 7
Slide 8
Slide 8 text
COPYコマンドとは COPY コマンドは Amazon Redshift の超並列処理 (MPP) アーキテクチャを使用し、 複数のデータソースからデータを並列で読み込んでロードします。 Amazon S3 のデータファイル、Amazon EMR、または Secure Shell (SSH) 接続でアクセス可能なリモー トホストからロードできます。 あるいは Amazon DynamoDB テーブルから直接ロードできます。 https://docs.aws.amazon.com/ja_jp/Amazon Redshift/latest/dg/r_COPY.html AWSが提供する Amazon S3などデータをAmazon Redshiftへ取り込むコマンドのこと COPYコマンドを使えば 簡単にAmazon Redshiftへデータを取り込むことが出来る! 8
Slide 9
Slide 9 text
DWHへのデータの取り込み ■Amazon Redshift Amazon S3 Amazon Redshift COPY コマンド データレイク DWH COPY FROM 's3:///' authorization; Amazon S3もAmazon Redshiftも同じAWSサービスなので コマンド1つでデータを入れられるのは分かる 9
Slide 10
Slide 10 text
データ分析基盤 Amazon S3 (データレイク) Amazon Redshift (DWH) BI ダッシュボード お客様システム ■DWHにAmazon Redshiftを選んだ場合 10
Slide 11
Slide 11 text
データ分析基盤 Amazon S3 (データレイク) Snowflake (DWH) BI ダッシュボード お客様システム ■DWHをSnowflakeに変更したい データ分析基盤を作る私たちが考えること 出来るだけ改修を減らしたい(今あるものをそのまま使えないか?) 11
Slide 12
Slide 12 text
DWHをSnowflakeに変更したい Amazon S3 (データレイク) Snowflake (DWH) BI ダッシュボード お客様システム データ連携基盤を作る私たちが考えること 出来るだけ改修を減らしたい(今あるものをそのまま使えないか?) 課題 ・ Amazon S3のデータはSnowflakeへ取り込めるのか? Amazon S3 にあるデータは別のデータレイクに移動する必要があるか >出来ればデータを移動させる手間は無くしたい 12
Slide 13
Slide 13 text
出来るんです!COPYコマンドで! 13
Slide 14
Slide 14 text
Amazon S3からSnowflakeへCOPYできる! ・どうやって? Snowflakeが提供するCOPYコマンドを使う >Amazon S3のデータを移動せず、Snowflake に取り込むことが出来る >DWHの変更だけで済む(開発者も、お客様も楽) COPY INTO <テーブル> ステージングされたファイルから既存のテーブルにデータをロードします。ファイルは、次のいずれかの場所に既にス テージングされている必要があります。 https://docs.snowflake.com/ja/sql-reference/sql/copy-into-table ・COPYコマンドとは? Snowflakeが提供するコマンドのこと Amazon S3やGoogle Cloud Storageなどのストレージから取り込み可能 14
Slide 15
Slide 15 text
COPYコマンドを比べてみた! COPY FROM 's3:///' authorization; ■AWS ■Snowflake 取り込み元の記法が違う程度(Amazon S3>バケット、Snowflake>ステージ) 構文の違いはほぼ無い(同じ感覚で使用できる) COPY customer FROM 'Amazon S3://dir/hsq_data.csv’ COPY INTO customer FROM @EXT_STAGE_TEST/hsq_data.csv COPY INTO [.] FROM { internalStage | externalStage …} 15
Slide 16
Slide 16 text
DWHをSnowflakeに変更したい Amazon S3 (データレイク) Snowflake (DWH) BI ダッシュボード お客様システム 課題 ・ Amazon S3のデータはSnowflakeへ取り込めるのか? Amazon S3 にあるデータは別のデータレイクに移動する必要があるか >お客様の作業になることが多い、出来れば移動の手間は無くしたい 解決策 ・ SnowflakeのCOPYコマンドを使用する ・ Amazon S3のデータを取り込めるので、データレイクは変更不要 16
Slide 17
Slide 17 text
気になる… Snowflakeはクラウドプラットフォームを選択する >どのクラウド上でSnowflakeを動かすのか ということは… データレイクは選択したクラウドプラットフォームと 同じクラウドのサービスで無いといけないのでは? ここで1つの疑問が ・AWS → Amazon S3 ・Google Cloud → Google Cloud Storage ・Azure → Microsoft Azure BLOBストレージ 17
Slide 18
Slide 18 text
Snowflakeへの取り込み 調べてみると アカウントのクラウドとデータレイクに使用するサービスのクラウドは関係ないとのこと Snowflakeは、Snowflakeアカウントのクラウドプラットフォームに関係なく、 次のいずれかの場所にステージングされたファイルからのデータのロードをサポートしています。 https://docs.snowflake.com/ja/user-guide/intro-cloud-platforms 注釈 異なるプラットフォーム間でステージングされたファイルからデータをロードする場合、データ転送請求料金が適用さ れる場合があります。詳細については、 データ転送のコストについて をご参照ください。 この目で確かめたい!ということで実際にやってみた 18
Slide 19
Slide 19 text
やってみた HULFT Squareを使って Amazon S3のデータを Microsoft Azure上で動く Snowflakeに取り込んでみた! 19
Slide 20
Slide 20 text
用意したもの ・ HULFT Square ・ Amazon S3 ・ Snowflakeトライアルアカウント クラウドプロバイダー>Microsoft Azureを選択 ※アカウント作成時に選択します 20
Slide 21
Slide 21 text
Amazon S3 (データレイク) Snowflake (DWH) やってみた 21
Slide 22
Slide 22 text
Amazon S3 (データレイク) Snowflake (DWH) やってみた HULFT Square COPY INTO TEST_DB.TEST_SC.CUSTOMER FROM (SELECT $1,$2,$3,$4 FROM @EXT_STAGE_TEST/hsq_data.csv); 22
Slide 23
Slide 23 text
Amazon S3 (データレイク) Snowflake (DWH) やってみた 23
Slide 24
Slide 24 text
Amazon S3 (データレイク) Snowflake (DWH) やってみた 24
Slide 25
Slide 25 text
やってみた -結果- Microsoft Azure環境で動くSnowflakeに Amazon S3のデータを取り込むことは可能! 25 データが取り込まれている!
Slide 26
Slide 26 text
学び・気づき • 業務内容から視野を広げることが出来た 業務で扱っていると当たり前のように感じるが視野を広げて考えると誰かに とっては新しい学びになることに気づけた。 学びは自分のものだけにするのでは無く、発信をして、みんなの学びにして いきたいと思った。 • 実際に手を動かして自分の目で確かめてみることは大事 ドキュメントを読んで終わりにするのでは無く、自分の手で検証することで、 ドキュメントの読み込みでは得られない知識を身につけられた。 26
Slide 27
Slide 27 text
まとめ Amazon S3からDWHへのデータ取り込みには COPYコマンドが使える ・AWSやSnowflakeが提供するCOPYコマンドがある ・Amazon S3など様々なデータレイクからデータ取り込みが実現可能 27
Slide 28
Slide 28 text
28