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

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

データ分析

BigQueryの少し凝った使い方メモ(etc)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 …

Twitter トレンドはどこまで当てになるか調べてみた

簡易ニュース速報的な目的で、Twitter トレンドを使っています。 しかし、その情報をどこまで当てにしていいのか分からずモヤモヤしていたので、今回定期的にデータを収集して調べてみました。 動機 Twitter トレンドを見たことがある方ならご存知だと思いま…

BIツールの「ディメンション」と「メジャー」の違い

初めてBIツールを使った時に混乱したのが「ディメンション」と「メジャー」の違いでした。 ここでは簡単にその違いや考え方を解説しようと思います。 名称 Tableauでは「ディメンション」と「メジャー」と呼びます。 PowerBIでは「列」と「メジャー」と呼び…

JavaScriptでMicrosoft SQL Serverを使う方法

JavaScriptでMicrosoft SQL Server(MSSQL)を使う方法メモです。 ライブラリはMicrosoftも推奨しているtediousを使い、あまり凝ったことはせず、必要最低限の機能に絞ってまとめました。 tediosはコールバックスタイルのライブラリなのですが、今風にasync…

Tableauで「相対日付」と「日付の範囲」を同時に使う方法

時系列グラフの表示範囲の指定UIに 「デフォルトは直近X日を表示し、必要な時にカレンダーで任意の日付を指定できる」 といったものをよく見かけます。 しかし、Tableauの日付フィルターで同等のことはできないんです。 「直近X日を表示」は日付フィルターの…

BigQueryの少し凝った使い方メモ(スケジュールされたクエリ)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 …

BigQueryの少し凝った使い方メモ(プログラミング)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 …

BigQueryの少し凝った使い方メモ(テーブル作成・データ更新)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 …

BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 …

JavaScriptの配列をSQLで扱いたい

普段SQLを使うことが多いのですが、JavaScriptで配列のデータを扱っている時、JavaScriptの配列に対してもSQLでクエリが書けたらいいのになと思うことがあります。 一方、C#には配列をSQLライクなクエリで処理できる、LINQという言語が備わっています。 Java…

SQLのウィンドウ関数(分析関数)の覚え方

SQLを学び始めた時、一番分かりにくかったのがウィンドウ関数(分析関数)です。 データベースを、単にデータを出し入れする場所として利用する分には、ウィンドウ関数を使うことは無いのですが、データを分析しようとする場合、あるととても便利な機能です…

AWS Redshiftで連番・カレンダーテーブルを作る方法

AWS RedshiftからGoogle BigQueryに移行して、ここ数年Redshiftを使っていませんでした。 しかし、ついに従量課金のRedshiftこと、Redshift Serverlessが登場して気になりはじめ、久しぶりに遊び程度ですがRedshiftを使ってみました。 案の定、使い方は完全…

BigQueryの定額料金を見積もってみる

Google BigQueryは従量課金で比較的安価なため、今まで料金のことはあまり気にせず使っていました。 ビッグデータ分析は、今まで推測するしかなかった事柄が、実際に数値として出せるようになり画期的でした。 その便利さが周知されるようになると、BigQuery…

Google Professional Data Engineer認定資格 合格体験記

Google Professional Data Engineer認定資格の試験を受ける機会があり、無事合格できました! Google Professional Data Engineer認定資格に関する情報は少ないので、興味ある方向けに合格体験記を書こうと思います。 Google Professional Data Engineer認定…

Googleアナリティクスをもう少しちゃんと使ってみる(Googleデータポータル Data Studio)

Googleアナリティクスは見た目はカッコいいんですけど、難しくて今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクスをもう少しちゃんと使ってみる必要がありました。 備忘…

Googleアナリティクスをもう少しちゃんと使ってみる(ディメンション・指標)

Googleアナリティクスは見た目はカッコいいんですけど、難しくて今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクスをもう少しちゃんと使ってみる必要がありました。 備忘…

Googleアナリティクスをもう少しちゃんと使ってみる(ユーザー・セッション・閲覧開始・ページビュー)

Googleアナリティクスは、見た目がカッコいいので簡単そうに見えるのですが、いざ使おうとすると意外に分かりにくくて、今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクス…

Googleアナリティクスをもう少しちゃんと使ってみる

Googleアナリティクスは、見た目がカッコいいので簡単そうに見えるのですが、いざ使おうとすると意外に分かりにくくて、今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクス…

JavaScriptでSQLiteを使う方法メモ

JavaScriptでSQLiteを使う方法メモです。 あまり凝ったことはせず、必要最低限の機能に絞ってまとめました。 SQLiteそのものの使い方は割愛しますが、こちらが詳しいのでご参照ください。 インストール パッケージ「sqlite3」を使いました。 npm install sql…

Tableauで「相対日付」と「日付の範囲」を同時に使う方法

追記 今は下記のもっと良い別の方法があるので、こちらを参照ください。 www.kwbtblog.com 時系列グラフの表示範囲の指定UIに 「デフォルトは直近X日を表示し、必要な時にカレンダーで任意の日付を指定できる」 といったものをよく見かけます。 しかし、Tabl…

TableauのLOD(Level of Detail)の使い方メモ

Tableauは直感的に、マウスのドラッグアンドドロップでグラフが作れるのが魅力ですね。 しかし、エクセルのグラフをTableauに移植しようとした時に、マウス操作だけではうまくグラフが作れない時があります。 そういったグラフは、TableauのLOD(Level of De…

Azure Active Directoryのシングルサインオン(SSO)で、アプリにログインできない時の対処方法

シングルサインオン(SSO)サービスに興味があって、一時期色々サービスを試していました。 www.kwbtblog.com Office365のユーザーをキーとしてログインしたかったので、結局Azure Active DirectoryのSSOを使うことにしました。用途としては、主にTableauのロ…

Google BigQueryのNode.js SDKで、Cloud Storageの複数のファイルをまとめてロードする方法

Google BigQueryに、Google Cloud Storageのファイルをロードする時、複数のファイルをまとめてロードすることができます。 しかし、それをGoogle BigQueryのNode.js SDKでやろうとしてハマったので、そのメモ書きです。 概要および問題点 table.createLoadJ…

TwitterのSearch APIの使い方で混乱したのでまとめてみる

Twitter APIを使ってデータ収集する機会がありました。 Twitter APIには、Googleの検索のように、ツイートを検索するSearch APIがあって、今回それを使いました。 普段Twitterは、主にリーダーとして利用していたので、あまり機能を意識することは無かったの…

Twitter APIでデータ収集してみる

世の中の動向を知るのに使えないかと、Twitterのデータを、Twitter APIを使って取得してみました。 結論から言うと、Twitter APIの制限がキツイと噂には聞いていましたが、本当にキツ過ぎて使い物になりませんでした…。 Twitter APIでデータを取得するところ…

Tableauの書式設定について、Excelっぽいグラフ・表が描ける程度に整理する

Tableauのデフォルトのグラフは結構綺麗です。 実務用途で使う分にはデフォルトを少しいじる程度で十分なのですが、資料用のグラフの場合、資料に合わせて色々見た目を変えたくなります。 しかし、Tableauの書式設定は結構難しく、せっかくTableauでグラフを…

SQL Server(Azure SQL Database)に読み取り専用ユーザーを追加する方法

SQL Serverのデータを、BIツールで読み込んでグラフを作ったりしています。 その場合、データは読み取りしかしないし、色んな人がグラフを作るので、書き込み権限を持ったユーザーは使いたくなく、共有用に読み取り専用ユーザーを作成しました。 今回、SQL S…

Azure SQL Databaseで、データベースをまたいだクエリは書かない方がいい

SQL Serverを使うのは、Azure SQL Databaseが初めてだったので知らなかったのですが、SQL Serverでは、データベースをまたいだクエリは、下記のように、データベースを指定することによって簡単に書けます。 SELECT * FROM [<db_name>].dbo.test_table しかし、Azure </db_name>…

Tableau のダッシュボードで、簡単にグラフをグリッド配置する方法

Tableauのダッシュボードでのグラフ配置は、なかなか思った通りのレイアウトにならなくて難しいです。 原因は、オブジェクトをマウスでドロップや移動しても、意図した階層に入ってくれないのと、 1つのオブジェクトのサイズや位置を変更すると、他のオブジ…

SQL Server で月・週ごとに集計する方法

データを月・週ごとに集計するには、まず日付の月・週の頭の日付を求め、その頭の日付でGROUPします。 Google BigQueryなど、頭の日付取得にDATE_TRUNC()関数が使える場合は、下記のような感じで集計できます。 SELECT DATE_TRUNC(dt, MONTH) AS dt_month ,S…