project sederhana ini adalah melakukan scrap data dari salah satu portal berita dengan keyword yang sudah di tentukan, untuk dijadikan analisis sederhana melihat populeritas tokoh politik dalam negeri.
dashboard bisa di akses pada link berikut :
Pipline data flow :
- scrapper mencari news yang berkaitan dengan keyword dan melakukan upload ke GCS bucket dalam bentuk '.parquet'.
- data scraper di ingest ke dalam postgresql.
- counter popularity (python code) sebagai counter popularitas tokoh yang di visualisasikan ke metabase.
Technology yang digunakan :
- vm di gcloud as a server
- docker as container oschestrator
- postgresql as database
- metabase as visualization
- prefect as data orchestrator
- google storage bucket as datalake
to generate what existing libs
pip freeze >> requirements.txt
- create project
- create vm
- create bucket
- create service account, generate json service account key
export GOOGLE_APPLICATION_CREDENTIALS="<path/to/your/service-account-authkeys>.json"
gcloud auth application-default login
Note service account digunakan untuk permission utk mengakses resource pada gcp
ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME -b 2048
Note generate keygen utk remote ssh dari local wsl ke ubuntu vm di gcloud console.
- prefect agent running di local
- prefect cloud running di cloud menggantikan prefect UI,
syntax :
prefect server start
prefect agent start -q 'default'
nohup prefect server start > server.logs
nohup prefect agent start -q 'default' > agent.logs
Note prefect server tidak digunakan karena sudah digantikan oleh prefect cloud
Metabase digunakan untuk dashboard analytics tingkat popularitas tokoh politik
- file docker-compose
- services :
- metabase
- postgresql
Postgresql digunakan sebagai target db datawarehouse.
- file docker compose
If you see that folder pg_data is empty after running the container, try these:
Deleting the folder and running Docker again (Docker will re-create the folder) Adjust the permissions of the folder by running
Syntax needed :
sudo chmod a+rwx {your_folder_name}
pgdmin digunakan sebagai postgresql developer tools
- file docker compose
syntax for pgadmin after docker compose up:
sudo chown 5050:5050 data_pgadmin
gcsfuse -o allow_other -file-mode=777 -dir-mode=777 test_bucket_00 /data/cloud/tb-00
test push with multiple account test push with multiple account