新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

データ分析

SQLでグループの最後のレコードを取得する方法

「ユーザーのイベントログで、ユーザーが一番最後に行ったイベントを抽出する」など、 グループで分けたデータの最後のレコードを取得したい時があります。 ウィンドウ関数を使うと、下記のような形で求めることができます。 WITH tbl AS ( SELECT * ,ROW_NU…

Sparkのよく使うコードメモ

SparkはPythonプログラムなので、かなり自由に書くことができます。 しかし、いつも大体やることは決まっているし、色んな書き方を知っても、かえって記憶に残りづらくなってしまうので、Sparkの個人的によく使うコードを、1目的1コードの形にまとめておき…

AWS Glueを使った感想

以前、AWS Glueを試しに使ってみたのですが、その感想です。 AWS GlueはApache Sparkでできていて、その時初めてSparkを触って面白かったので、 そのうちGlueを本格的に使うようになったら、追々使い方をまとめようかと思っていました。 しかし、データ出力…

Spark(Google Dataproc)からAWS S3にアクセスする方法

Spark(Google Dataproc)から、AWS S3にアクセスする方法です。 手順 Spark設定 下記のSpark・Haddopの設定をすると、SparkからAWS S3ファイルの読み書きができるようになります。 Sparkに下記AWS関連のjarファイルを読み込みます aws-java-sdk-bundle-xxxx…

Spark(Google Dataproc)からMicrosoft SQL Server(Azure SQL Database)にアクセスする方法

Spark(Google Dataproc)から、Microsoft SQL Server(Azure Database)にアクセスする方法です。 手順 Spark設定 下記のSparkの設定をすると、SparkからSQL Serverのデータの読み書きができるようになります。 MS SQL ServerのJDBCのjarファイルをダウンロ…

Spark(Google Dataproc)からMySQLにアクセスする方法

Spark(Google Dataproc)から、MySQLにアクセスする方法です。 JDBCを使ってアクセスするので、PostgreSQL等、他のRDBにも応用可能です。 手順 Spark設定 下記のSparkの設定をすると、SparkからMySQLのデータの読み書きができるようになります。 MySQLのJDB…

MySQLのデータベースを、スキーマレスでパーティショニングしながらBigQueryにロードしてみる

BigQueryはデータ量が膨大でも、インフラの事は全く(本当に全く)気にしなくてよく、しかも早くて安いので、 データは全てBigQueryに入れてしまって、全部BigQueryで処理したくなってしまいます。 そんな訳で、MySQLのデータベースをまるまるBigQueryにロー…

SQL Server でカレンダーテーブルを作る方法

SQL Server(Azure SQL Database)で、カレンダーテーブルが欲しかったので作成方法メモです。 ググったところ、「WITH」でテーブルを作成し、そのテーブル定義の中の「UNION ALL」から再帰呼び出しして作るようです。 WITH _calendar AS ( SELECT CAST(N'20…

Tableauの棒グラフを日付の中心に表示する方法

Tableauで日付を連続値にして棒グラフを表示する際、棒グラフの開始位置が左になるので見づらいです。 特に、2軸表示で、折れ線グラフと一緒に表示させると、折れ線グラフは日付の中心なのに、棒グラフはずれているので更に見づらくなります。 棒グラフの中…

Google BigQueryでカレンダーテーブルを作る方法

日付で飛び飛びなデータを集計する時には、カレンダーテーブルが欲しくなることがあります。 Google BigQueryでは下記でカレンダーテーブルを作成できます。 「GENERATE_DATE_ARRAY()」でカレンダー配列が作れるので、「UNNEST()」で配列を行に展開してテー…

手軽にクラスター分析するならPythonよりTableauがオススメ

Tableauはグラフの表示だけでなく、クラスター分析機能もあります。 Pythonは無料だし、それだけで十分手軽にクラスター分析できるのですが、Pythonでクラスター分析を行おうとすると、データ前準備として標準化したり、エルボー法のグラフを描いてクラスタ…

Googleデータポータル(旧データスタジオ)でサクッとグラフを描いてみる

普段Tableauや PowerBIを使っているのですが、それらを使う程じゃないんだけど、サクッとグラフを表示してデータを確認したいことがあります。 そんな時用に、Googleデータポータルを知っておくと便利かなぁと思い、簡単な使い方をまとめてみました。 Google…

AWS Redshift Spectrum / Athena を使った感想

元々AWS Redshiftを使っていたのですが、結構お高く、Google BigQueryに乗り換えました。 その後、Redshift Spectrum が出て、ひょっとしたらBigQueryよりいいのではと気になっていたので触ってみた感想です。 また、Redshift Spectrumが使えるようセットア…

Google Cloud Platform でサービスアカウントをプロジェクトをまたいで使う方法

Google Cloud Platform(GCP)にはユーザーアカウントとサービスアカウントの2種類のアカウントがあります。 ユーザーアカウントはGmailでおなじみのGoogleアカウントのことで、複数の任意のプロジェクトに属することができます。一方サービスアカウントは…