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

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

データ分析

新着順 人気順

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

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

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

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

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

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

JavaScriptでMicrosoft SQL Serverを使う方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaScriptでSQLiteを使う方法メモ

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

AWS Glueを使った感想

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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…

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

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

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

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