3分でAWS Athenaを試す
3分でAthenaの機能を試してみる。
Athenaで何が便利か、こういう使い方もある、とかいうのは特に伝えない。
これだけ覚えておくだけでも、Accessで扱い辛い2GBを超えるデータを扱えたり
複数のCSVファイルでもまとめて楽に扱えるという利点はあると思う。
まずは触ってみて考えたい人向け。可能な限り画像付きで丁寧に解説する。
前提条件
- AWSを契約しておりアカウントがあること
- S3にデータを置き、クエリを投げるので(もしかしたら)数円レベルの課金がかかることを良しとすること
1.CSVファイルをS3に置く
ファイルはこんな感じ。シンプルなもの。
ID,Name,Price
1,林檎,100
2,洋梨,200
3,柘榴,300
ID,Name,Price
4,無花果,800
5,晩白柚,1600
バケットを作成するボタンをクリックして、適当な名前(test09271533)でバゲットを作成。
バゲット名はS3全体(リージョン別だったかな)で一意である必要があるので、日時くっつけるなりする。
今回はテストデータを置くだけなので、パブリックアクセスはOKにしておく。
ただ、本来は非常にヤバい設定なので、そこだけは留意しておくこと。
出来上がったら、ダウンロードしたファイルを放り込む。ドラッグ&ドロップでOK。
※ 同じようにして、output09271533というバケットも作成する。あとで必要になるので。
2.Athenaを使う
先ずはクエリの結果を出力する場所を指定しなくてはならない。
バケット(この場合[output09271533])さえ存在すれば下のフォルダは適当でとりあえず設定は通る。1
Athenaはスキーマレスではないので、Create Tableをしてやる必要がある。
priceがintだったり結構適当だが、今回はこれで1。
あと、なぜか「Run Query」ボタンが非活性化されて押せないことがあるが、実行はCtrl+Enterでもできる。
CREATE EXTERNAL TABLE IF NOT EXISTS test (
id int,
name string,
price int
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://test09271533/'
TBLPROPERTIES (
'has_encrypted_data'='false',
'skip.header.line.count'='1'
);
成功すると、testテーブルが作成されるのが左側ペインで確認できる。
3.終わりに
とにかく動かすということに重点を置いたため項目などの説明はおざなりでした。
いったんクエリ投げるところまでいけば、後はオプションとか色々調べて便利・高速な使い方を探してみてください。
-
S3ロケーションは S3://作成バケット/フォルダの構成で指定するので、例えば対象のバケットを開いたときのURLが「s3.console.aws.amazon.com/s3/buckets/test09271533」であれば、ロケーションは「s3://test09271533/」となる。 ↩
Author And Source
この問題について(3分でAWS Athenaを試す), 我々は、より多くの情報をここで見つけました https://qiita.com/hakozaki/items/92e2890566ab063663df著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .