發表文章

目前顯示的是有「程式 Coding」標籤的文章

Git

當我開發到一半,但我想先Pull # Stash your changes git stash # Pull the latest changes or do whatever git pull # Apply your stashed changes git stash pop git stash apply 跟 git stash pop 的差異:pop之後會清除stash,如果該stash不會再用到,用pop會簡單點。 要習慣去看git stash list 退回 Commit 不小心commit出去了 # 應該有更溫柔的作法 git reset --hard HEAD^ conflict conflict 的符號解讀 :<<<<<<< patch_1、=======、>>>>>>> patch_2 ======= 的前後分別是兩個 patch 的衝突之處,patch name (我遇到的是branch name,不知有何不同) Pull Request Conflict 照著步驟做,或是在本地合併即可,即使merge了,PR也還會在。 名詞 base branch : 基礎分支,如  main 、 master 、 develop  等。 head branch : 當前分支,被合併的那個。 第一個git筆記 安裝 修改git config配置檔案 How to use GitHub with SSH Keys on Windows 10 【Git教學】 超輕鬆 git config 設定指南 提交  How to push new Git branches to remote repos on GitHub or GitLab by example

學習筆記-Data

學習Roadmap 其實也沒啥Roadmap,就是要能應付現在的工作。 SQL bind parameters 筆記 資料概念 資料倉儲(Data Warehouse)跟一般DB的差異是:一般DB是用在應用面,針對產品(或服務)的需求來建置;而DWH則是分析面,依據商業上需要分析的需求來建置,從這兩點使用情境會產生一些技術上的區別如更新時間等。 Star Schema就是一個拿來存很多key的table 環境概念 Linux Linux是一種OS ,有各種distribution如CentOS,、Ubuntu 、 Pop!_OS 等選擇 WSL 似乎是個不用灌雙系統,卻可以用Windows跑Linux的方式 舊版 WSL 的手動安裝步驟(Docker轉址來的) 使用 WSL 在 Windows 上安裝 Linux 5天-搞清楚為何 WSL2 需不需要 Windows Docker Desktop 使用WSL2在Windows下快速打造Linux開發環境(含Docker) Docker Desktop WSL 2 backend on Windows 如果我的團隊在用Airflow並推薦用Docker跑,而Docker又無法在Windows上完美執行時(亦或Airflow無法在Windows上完美執行時),我就需要其他OS 有些概念還待釐清,到底是下面哪項?需要更釐清基本原理跟名詞後才知道 在我的Windows上跑Docker,再在Docker上跑Linux,再在Linux上跑Airflow 在我現在裝有Windows的筆電上跑Linux(雙系統?VM? WSL ?),在上面跑Docker後再跑Airflow 之前一直搞混是大部分文章都把Docker & VM 放一起比較,但有種執行方式是「先安裝VM Linux,再在此VM中執行Docker」,所以搞得我錯亂,找不到前後關係。 這篇寫得較清楚 :「Docker要在Linux上跑」(但為何 有Win的版本供下載 ?),所以我需要跑一個Linux沒錯,剩的只是作法問題了。 看來Docker有分兩種 Docker Desktop Docker Engine 最新的做法(可行)安裝Docker Desktop 並啟動 裝wsl from Microsoft Store 裝distro(e.g., utunbu) fr...

在BigQuery內做GA4的頁面瀏覽大表

圖片
前言 這是第一個我真正用在視覺化的表!還沒整理跟優化,甚至還沒寫說明== 也好,有任何看不懂得直接留言。貼心提醒按著Shift滑動滾輪可以橫向滑動。 正文 演變歷程 - 第一版 先照 之前的作品 ,把要的事件(頁面瀏覽)跟要的參數(Title, event_timestamp等)篩選抓取出來。馬上遇到第一個問題:campaign雖然是session-level, 卻只有在第一次的page_view出現。所以我先用了另一張表整理出每個session對應的campaign, 再用COALESCE讓每個本來有campaign的session也有了欄位(而非原本的null)。 隨著code越來越長,我用到WITH來簡化code,但效能應該沒差太多。 -- 這是第一版真正可以利用的大表! WITH page_view_log AS ( SELECT DISTINCT event_date, event_name, user_pseudo_id, event_timestamp, MAX (CASE WHEN params_new.key = 'page_location' THEN params_new.value.string_value ELSE NULL END) OVER (PARTITION BY event_timestamp, user_pseudo_id) AS `page_location`, MAX ( CASE WHEN params_new.key = 'page_title' THEN params_new.value.string_value ELSE NULL END ) OVER ( PARTITION BY event_timestamp, user_pseudo_id ) AS `page_title`, MAX ( CASE WHEN params_new.key = 'campaign' THEN params_new.value.string_value ELSE NULL END ) OVER ( PARTITION BY event_time...

學習筆記 - Python

檔案讀取 實作時遇到了下列錯誤 1.  SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 解法:路徑前面+'r' 參考: http://jasonyychiu.blogspot.com/2019/10/python-syntaxerror-unicode-error.html 2.  UnicodeDecodeError: 'cp950' codec can't decode byte 0xe5 in position 0: illegal multibyte sequence 解法:mod後面加上encoding="utf-8" 參考: https://oxygentw.net/blog/computer/python-file-utf8-encoding/  測資使用(比對答案) 記得要選cmd,不要選到PowerShell  到要執行py的路徑下輸入(加號都要空格): 'python' + 要執行的檔案 + '<' + 要放入執行的檔案 + '>' +  要輸出的檔案 範例: G:\其他電腦\我的 電腦 - 二代\研究\xxx\ccClub>python 合併串列.py < HW1\03\10.in > HW1\03\10m.out 比對測資: 'fc /L' +  filename1.txt + filename2.txt. 範例: C:\Users\user\Desktop\ccCLUB\HW\1\05>fc/l 20.out 20m.out  Py指令 pip list :list all installed Python packages 10/26 note List Comprehension enumerate zip if else hell Anaconda 'conda'不是內部或外部命令、可執行的程式或批次檔。 上方問題解法如下 https://ithelp.ith...

如何在BigQuery內呈現類似舊版GA的事件表格

圖片
如何在BigQuery內呈現類似舊版GA(UA/GA3)的事件表格 Raw data: Code: SELECT DISTINCT event_date, event_timestamp, user_pseudo_id, MAX (CASE WHEN params_new.key = 'screen_name' THEN params_new.value.string_value ELSE NULL END) OVER (PARTITION BY event_timestamp, user_pseudo_id) AS `screen_name`, MAX (CASE WHEN params_new.key = 'type' THEN params_new.value.string_value ELSE NULL END) OVER (PARTITION BY event_timestamp, user_pseudo_id) AS `type`, MAX (CASE WHEN params_new.key = 'item' THEN params_new.value.string_value ELSE NULL END) OVER (PARTITION BY event_timestamp, user_pseudo_id) AS `item`, traffic_source.source, FROM  `my-project-12345.analytics_9876543.events_*`  AS original LEFT JOIN UNNEST (event_params) AS params_new WHERE REGEXP_CONTAINS(key, 'screen|type|item') Processed Data: 參考資料: Marketing Watch House - GA4 Big Query Tutorials 播放清單

[Solved] BigQuery Error : Not found: Dataset project-123:analytics_987654321 was not found in location US

圖片
Error Solution ⛭MORE > Query settings > Advanced options > Automatic location selection *uncheck* > Region > Select where the data is located.