達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ を読みました

この本を読みました。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者:ミック翔泳社Amazon 目次 1部 魔法のSQL 2部 リレーショナルデータベースの世界 自分のレベルと書籍のレベル 自分のレベル 書籍のレベル サンプル…

Apache DrillでAWSのDBRレポートCSVファイルをParquet変換して分析してみる

DBR(Detailed Billing Report with Resources and Tags)のCSVを分析しようとググってみたら以下のリポジトリ見つけました。 github.com 中身ざっと読んでみると以下のような感じに見えます。 ローカルにDBRダウンロード DBRのCSVをParquetに変換(Python+Apa…

RedshiftとSpectrumとS3とVPCで組み合わせた場合のネットワーク経路が複雑だったので整理してみた

VPC絡みでRedshiftのネットワークが複雑でハマって整理したので、そのまとめです。 あくまで2019/02/09現在の仕様なので、仕様変わっていることもあると思います。 全体図 2019/02/20追記 Redshift SpectrumからS3への接続はVPC外を通る ParquetのCOPYはJSON…

DockerでApache Drillをサクッと試してみる(S3上のParquetファイル読んでみた)

Apache Drillですが、簡単にインストールして使うことできます。 こちらに書かれているようにダウンロードして解凍するだけです。 Installing Drill on Linux and Mac OS X - Apache Drill ただDocker使える環境あればもっと簡単に試すことできます。 公式コ…

EMR上のApache AtlasにAWS Glueのデータカタログ情報をインポートしてみた

Hiveのメタデータ管理ができるApache Atlasですが、こちらのブログを参考にGlueのカタログ情報もインポートしてみました。 aws.amazon.com EMRのHiveメタストアとしてGlueを使うための設定を準備 EMRクラスタの起動 EMRクラスタへ接続 Glue接続確認 AtlasへH…

AWS Athenaのユーザごとのクエリ実行履歴を分析するためのデータをAWS CLIで収集

Athenaのクエリの実行履歴を、実行ユーザと紐付ける方法です。 CloudTrailからAthenaの実行イベントを取得 こちらのコマンドを利用します。 lookup-events — AWS CLI 1.16.96 Command Reference EventSource=athena.amazonaws.com EventName=StartQueryExecu…

Glueの開発環境をVPC内に閉じるためSageMaker止めてEC2で構築してみた

Glueの開発にSageMaker使っていたのですが、いくつか自分の使い方では問題があったので自分で立ててみたら簡単でした。 SageMakerはネットワークが特徴的 構成 JupyterとSparkMagicインストール ① Anacondaインストール ② (Anaconda Prompt) widgetsnbextens…

電話ボックスみたいなワークスペースのTELECUBE(テレキューブ)利用してみました

テレキューブって知ってますか? こんな感じで電話ボックスみたいなのですが、中には椅子とテーブルがあって集中して仕事ができる空間になっています。 こちらが実証実験中で無料で使えたので入ってきました。 telecube.jp 使い方 使い方に関しては、こちら…

GlueのDynamicFrameでS3へファイル書き出す時はCSVやJSONよりParquetが早い

DynamicFrameを使った開発をしていたら、大した処理していないのに、想像以上に時間がかかるなと思って調べていたら、JSONの書き出しが時間かかっていました。 タイトルの通り、JSONやCSVでのS3出力と比較してParquetでの出力は凄い早いというお話です。処理…

Glueで色々な日付フォーマットの文字列をtimestamp型に変換してみた

掲題の件、JSON等にある日付フォーマットの文字列から、Timestamp形式に変換したかったのですが、どの書式だと変換できるのか良くわかってなかったので、実際に実行してみました。 初期化 日付文字列 Glueでマッピング 結果 UnixTimeの変換 Glue Spark 初期…

AthenaでHIVE_PARTITION_SCHEMA_MISMATCHが発生 GlueカタログのTableとPartitionの間のスキーマに不整合直して解消

掲題のエラーに当たってサポートに対応教えてもらったのでメモ。 事象 原因 パーティションの例 テーブルのスキーマ パーティション毎のスキーマ 対応 参考 事象 CSVをGlueを使ってパーティション分割して、AthenaでプレビューしてみたらHIVE_PARTITION_SCHE…

LEGOとRaspberry Piで会社のイベント展示用のデモ作った話

この動画のデモを作った話です。題名にLEGOと入れましたが、自分はLEGOは触っていなくて、Raspberry Pi専任で作っていたこともあり、技術的なことを中心に書いていこうと思います。 youtu.be www.beex-inc.com 何で作ったのか? どうやって動いているか? コ…

AWS Data Lake Solutionを触ってみました(Lake Fomationの前身?)

先月のre:Invent 2018で発表になったLake Formation。現地で聞いていて即効プレビュー申し込んであるのですが まだ使えていません。 そんな時に一緒に仕事をしている方から、こんなモノがあることを聞きました。 aws.amazon.com こちらから引用したアーキテ…

Livy+SparkmagicでWSL上のSparkをWindows側のJupyter notebookから使う

やりたいこと 利用リポジトリ Apache Livy Sparkmagic WSLでSparkをダウンロード WSLでLivyインストール&ビルド Sparkmagic 他のSparkのバージョン 参考URL やりたいこと Windows上に入れたSparkとJupyter Nootbookで開発していたら、Windowsのディレクトリ…

Alexaに聞いたらDatalakeからKPIを抽出して答えてくれますよというWorkshop受講してきた

re:Invent 2018、今日は私の日程の最終日でした、明日は帰りの飛行機早いので、このブログ書いたら寝ようと思って書いています。 ちょうど今、ChatBotもDatalakeも別々のプロジェクトで手がけてますが、まさかそれが合わさったセッションがあるとは思いませ…