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

この本を読みました。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者: ミック出版社/メーカー: 翔泳社発売日: 2018/10/11メディア: 単行本(ソフトカバー)この商品を含むブログを見る 目次 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も別々のプロジェクトで手がけてますが、まさかそれが合わさったセッションがあるとは思いませ…

re:InventでHands-On LabsからKeynote見てきました

AWS

re:Invent 2018に来ています。 KeynoteがOverflowで入れなかったので、どこかの部屋でモニタで見るくらいならと思いHands-On Labsに行ってきました。 Hands-On Labsでできること Quick Labsというトレーニングサービスがあります。 当然日本でも使えるもので…

re:Invent 2018でのAWS Glue周りの発表を聞いてきた(Python Shell、CloudWatch Event連携、Lake Formation)

AWS re:Invent 2018に参加するためラスベガスに来ています。 昨日はこちらのセッションを聞きました。 AWS re:Invent 2018: Building Serverless Analytics Pipelines with AWS Glue (ANT308) そこで、静かに(?)AWS Glueの新機能の発表がありました。 セ…

AWS GlueでDynamoDBがサポートされたので触ってみた

AWSのre:Invent 2018に参加するためラスベガスに来ています。 題名の通りGlueのCrawlerとETLジョブでDynamoDBがサポートされましたので早速動かしてみます。 セッション 発表されたセッションとスライドはこちらです。他にもあったのですが、今すぐ動くDynam…

LUISが日本語の日付に対応していないので正規表現で引くことにした

LUISで日付認識させようとして、上手く行かないので一旦正規表現で対応したという話です。2018/11/15時点の内容なので、将来的には対応されると信じています。対応状況はこちらを見るとわかると思います。 LUISがDatetimeを認識しない 正規表現で対応するこ…

Application Insightsのログ検索(Log Analytics)でJSONを展開する方法

Application Insightsのログ検索(Log Analytics)はKusto Query Languageという言語のようです。 Application Insightsのログ検索機能ですが、SDK使えば簡単にログ情報を構造化して保存できて、後で検索もしやすいです。使えるようになれば、凄い便利なのに調…

Azure Bot Service で宛先やCC追加などEmailの返信をカスタマイズする

掲題の件、 channelData のプロパティ調整すれば可能です。 つまりはこんな感じです。 enum Importance { High = "high", Normal = "normal", Low = "low", } const sendMail = async (context: TurnContext, toRecipients: string[], ccRecipients: string[…

AWS Glueの仕様でサポートに問い合わせた内容

最近Glueを使っていて、その過程でAWSサポートに問い合わせしたり、仕様を確認した内容をまとめておきます。 Tableのプロパティ(Parameters)の制限 SageMakerでGlueのライブラリ読み込むとエラーが出る S3からS3へのコピーでVPCエンドポイント使いたい 接…

TypescriptからMicrosoft Graph API使ってSharePointやOneDrive上のExcelの情報を読み込む

TypeScriptからSharePointやOneDriveのExcel Onlineの情報を読み込む方法を書きます。 読み込みたいファイル 認証 App Registration Portalへアプリケーション登録 Tokenの取得 TypeScriptからExcelへアクセスしてみる config.json index.ts 実行してみる 参…

AWS Certified Big Data - Specialty 合格してきました

AWSのソリューションアーキテクトのプロ持っていたのですが、1年くらい前に失効しています。 またアソシエイトから取るのも面倒だし、そもそも同じ試験受けるのってモチベーションを上げにくい。ということでAWSの認定から遠ざかっていたのですが、先日こん…

AWS GlueでGrok使いALB アクセスログを取り込んでParquetやORC形式に変換

Grokパターン作成 事前調査 ALBのアクセスログの項目 ビルドインのGrokのパターン logstashのELBのGrokパターン 作成 分類子(Classifier登録) Crawler カタログデータベース確認 テーブル確認 Athenaで検索 ETLジョブ Glueからパーティショニングして書き込…

GARMIN vivo smart HRJ から vivoactive 3 Musicに乗り換えて数週間ですが快適です

以前こちらのブログで書いた通り、vivosmart 、vivosmart HRJと使ってきました。 下のブログにも書いているとおり、個人的一軍ガジェットなのですが、なんせ24時間つけっぱなしなので、子供と遊んだりしていると、ボロボロになってきます。 yomon.hatenablog…

【AWS Glue】aws-glue-samplesを動かすまでの前準備の作業メモ

AWS GlueのNotebook起動した際に Glue Examples ついている「Join and Relationalize Data in S3」のノートブックを動かすための、前準備のメモです。 Join and Relationalize Data in S3 This sample ETL script shows you how to use AWS Glue to load, tr…

Azure Bot Builder SDK for Node.js Version 4でTypeScript開発環境構築

botbuilderのVersion4ですが、いつリリースされるのかと待ってたところ、今週botbuilderの4.0.6がnpmにリリースされて、preview表示が消えているのを見つけました。 実際はまだ各所でPreviewのままなので正式リリースでは無いのかもしれません。 このロード…

感圧センサーの値をRGB LED Matrix Displayでグラフ表示してみた

先週やったことなのですが、そのままだとすぐに忘れそうなので書いておきます。 使ったパーツ 感圧センサー RGB LED Matrix 64 x 32 配線 プログラム 準備 配置 実行 使ったパーツ 感圧センサー yomon.hatenablog.com RGB LED Matrix 64 x 32 yomon.hatenabl…

Azure Bot ServiceでSlackやTeamsなどの別チャネル間でのメッセージを仲介するBotを作る

やりたいことタイトルで伝わるか微妙ですが、要は以下の図のようにAzure Bot Serviceで仲介して複数のチャネルの人を繋げるやり方が無いかと調べ始めました。 そこで見つけた、このあたりのIssueを読むと、できそうな気がしたので実際にやってみました。 Mak…