今日の学び@2020/2/24
SQL&BigQuery(BQ)
- ビッグデータ分析レシピ(参考元)
- 3章
-- URLからの文字抽出 SELECT timestamp_log, url, -- NET関数で取得可能なpath NET.HOST(url) AS host, NET.PUBLIC_SUFFIX(url) AS suffix, NET.REG_DOMAIN(url) AS domain, -- その他の抽出 REGEXP_EXTRACT(url,'//[^/]+([^?#]+)') AS path, SPLIT(REGEXP_EXTRACT(url,'//[^/]+([^?#]+)'),'/')[SAFE_OFFSET(1)] AS path1, SPLIT(REGEXP_EXTRACT(url,'//[^/]+([^?#]+)'),'/')[SAFE_OFFSET(2)] AS path2, REGEXP_EXTRACT(url,'id=([^&]*)') AS id, FROM `log`
正規表現マストやなぁーこれはw
別途学ぶ必要がある。
-- 日時データ変換 SELECT -- 現在日時の取得 CURRENT_DATE AS current_dt, CURRENT_TIMESTAMP AS current_stamp, -- 日時データ変換 CAST('2020-02-01' AS date) AS dt, FORMAT_DATE('%F','2020-02-01') AS dt2, DATE('2020-02-01') AS dt3, CAST('2020-02-01 12:00:00' AS TIMESTAMP) AS timestamp, TIMESTAMP('2020-01-01 12:00:00') AS timestamp2, FROM `log`
日時データ変換方法は沢山ある。 汎用性を重視するとFORMAT_かな?
-- 各時間帯抽出 SELECT timestamp_log, TIMESTAMP(timestamp_log) as TIMESTAMP, EXTRACT(YEAR from TIMESTAMP(timestamp_log)) AS year, EXTRACT(MONTH from TIMESTAMP(timestamp_log)) AS month, EXTRACT(WEEK from TIMESTAMP(timestamp_log)) AS week, EXTRACT(HOUR from TIMESTAMP(timestamp_log)) AS hour, EXTRACT(MINUTE from TIMESTAMP(timestamp_log)) AS minute, EXTRACT(SECOND from TIMESTAMP(timestamp_log)) AS second, FROM `log`
- 4章通読
かなり面白いw
3章の前処理が面倒に感じたが、頻出かつ根本的な部分と分かったので固めよう
Python
- データサイエンスのためのPython入門
- 4-6
内包表記:便利w
[i * 30 for i in range(0,10)]
lambda関数(Jsで言う無名関数)
x = lambda 引数: 戻り値
可変長引数
- *(args):list型
- **(kwargs):dect型
- kwargs.get()
- 値取得
- None対策
- 第2引数でデフォ値
- kwargs.get()
- 4-6
次の週末に、Python周りの環境構築(Docker,Github)をやろう
ふたたびの高校数学
今日は、ほとんどやっていない
入門レベルなので、短期間でやる事を意識しよう
改善点
3連休の改善点は、優先度を意識する事
今回、メイン言語(SQL、Python、Js)より、GCP、Dockerに時間を掛け過ぎた
楽しむ事を大切にしているが、優先度は重要
計画に縛られず、計画をコントロールしていきたい
Jsのモチベを上げる為、必要なUDFを洗い出すのが良いかも
優先度、ペースを少しずつ改善して、計画の確度を高めていこう
とにかく分析SQLを極めるのが最優先