项目作者: baolongnguyenmac

项目描述 :
Demo ETL
高级语言: Jupyter Notebook
项目地址: git://github.com/baolongnguyenmac/build-data-warehouse.git
创建时间: 2021-08-02T02:04:10Z
项目社区:https://github.com/baolongnguyenmac/build-data-warehouse

开源协议:

下载


Learn Spark using PySpark

  • Đây là đống code dùng để tiếp thu thứ kiến thức kỳ quái mang tên Spark
  • Spark được viết bằng Java, PySpark là giao diện Python của nó
  • Spark dùng để handle các file data có kích thước lớn. Nó tính toán trên RAM nên mọi thứ khá nhanh

Các công cụ sử dụng

  • Spark
  • PySpark
  • Pandas (đụng tới chút xíu)
  • pymssql
  • SQL Server

Cài Spark và PySpark (cho MacOS)

  • Có thể làm theo hướng dẫn trong đường link này
  • Máy tui sử dụng MacOS và 3 version Java (nên có 3 con path cho java)
  • Configure path in file ~/.zshrc cho terminal ZSH hoặc ~/.bashrc cho bash thông thường

    1. # >>> setup java_home >>>
    2. export JAVA_16_HOME=/usr/local/opt/java/libexec/openjdk.jdk/Contents/Home
    3. export JAVA_HOME=/usr/local/opt/java11/libexec/openjdk.jdk/Contents/Home
    4. export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    5. alias java8='export JAVA_HOME=$JAVA_8_HOME'
    6. alias java11='export JAVA_HOME=$JAVA_11_HOME'
    7. alias java16='export JAVA_HOME=$JAVA_16_HOME'
    8. # default: java8 for running pyspark without any error
    9. java8
    10. # <<< setup java_home <<<
    11. export SPARK_HOME=/usr/local/Cellar/apache-spark/3.1.2/libexec
    12. export PATH=/usr/local/Cellar/apache-spark/3.1.2/bin:$PATH
    13. #export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
    14. #export PYSPARK_PYTHON=jupyter
    15. #export PYSPARK_DRIVER_PYTHON='notebook'

Cài PyMssql (cho MacOS)

  • Có thể tham khảo tại đường link này
  • Cần phải cài freetds trước khi cài pymssql

    1. brew install
  • Sau đó cài Pymssql được kéo trực tiếp từ github về

    1. pip3 install git+https://github.com/pymssql/pymssql.git
  • Cầu nguyện cho mọi thứ work với nhau

2 folders bên trên

  • ./Learn PySpark: Có thể đọc về các sử dụng cơ bản của PySpark ở đây
  • ./ETL: Demo quá trình ETL dữ liệu từ source về data warehouse sẽ trông như thế nào. Có thể đọc cuốn Buiding A Data Warehouse with Example (Vincent Rainardi) để hiểu các khái niệm cơ bản, về quy trình ETL dữ liệu hay build 1 data warehouse sẽ diễn ra như thế nào
    • ./ETL/Raw Data: Chứa 1 file data với gần 10.000 dòng dữ liệu giao dịch (Chính là file SuperStore trong dữ liệu demo của Tableau). Data từ 1 file chính (customer_order.csv) được cắt ra thành 5 file bằng nhau, mỗi file chứa khoảng 1998 dòng
    • ./ETL/SQL: Chứa các schema databases của Source data, meta database, data warehouse
    • ./ETL/src: Chứa source code mô phỏng quá trình source system thay đổi theo thời gian, và code mô phỏng quá trình handle các update, new creation trong source