Lộ trình bước vào ngành Data Engineering năm 2024
(blog.dataengineer.io)- Việc tìm việc trong lĩnh vực data engineering có thể khiến nhiều người cảm thấy khó khăn do hệ sinh thái công nghệ phức tạp (ví dụ: Spark, Flink, Iceberg, BigQuery, v.v.)
- Chỉ học Python và SQL thôi là chưa đủ; cần có chiến lược bài bản và thực hành thực tế
Những yếu tố cần có để tìm việc data engineering
-
Năng lực kỹ thuật:
- Thành thạo SQL và Python
- Kỹ năng điện toán phân tán (ít nhất một trong Snowflake, Spark, BigQuery)
- Hiểu về các công cụ orchestration (Airflow, Mage, Databricks Workflows, v.v.)
- Khả năng data modeling và quản lý chất lượng dữ liệu
-
Dự án portfolio:
- Xây dựng các dự án có thể thể hiện công nghệ thực tế của bạn
-
Xây dựng thương hiệu cá nhân:
- Nhấn mạnh chuyên môn thông qua việc quản lý hồ sơ LinkedIn và chuẩn bị phỏng vấn
Học và thành thạo SQL
- SQL là ngôn ngữ cốt lõi của data engineering:
- Tài nguyên học tập được khuyến nghị:
- Các khái niệm trọng tâm:
- Các loại JOIN: INNER, LEFT, FULL OUTER (RIGHT JOIN hầu như không dùng)
- Tổng hợp với GROUP BY và sử dụng DISTINCT
- Hiểu window function và sự khác nhau giữa RANK, DENSE_RANK, ROW_NUMBER
- Hiểu từ khóa và shuffle trong môi trường SQL phân tán (ví dụ: JOIN, GROUP BY, ORDER BY)
- Cách sử dụng CTE(Common Table Expression), Temp Table, View
Học Python và Scala
- Lựa chọn ngôn ngữ:
- Người mới nên học Python, người đã có kinh nghiệm nên học Scala.
- Các khái niệm quan trọng:
- Cấu trúc dữ liệu: list, dictionary, stack, v.v.
- Thuật toán: vòng lặp, tìm kiếm nhị phân, hiểu ký hiệu Big O
- Các ứng dụng chính của Python:
- Viết Airflow DAG
- Tương tác với REST API
- Viết Spark UDF và tối ưu hiệu năng
Các khái niệm về điện toán phân tán
- Cốt lõi của điện toán phân tán:
- Hiểu kiến trúc dựa trên Hadoop/Spark để phân tán khối lượng xử lý dữ liệu
- Quản lý vấn đề shuffle và skew:
- Sử dụng Broadcast JOIN, Bucket JOIN, partitioning
- Dùng adaptive execution trong Spark 3+
- Quản lý dữ liệu đầu ra:
- Tối ưu kích thước file bằng cách tận dụng nén run length encoding của file Parquet
Đảm bảo chất lượng dữ liệu và khả năng sử dụng
-
Chất lượng dữ liệu:
- Loại bỏ dữ liệu trùng lặp, kiểm tra giá trị NULL, xác nhận định dạng và khối lượng dữ liệu phù hợp
- Bổ sung kiểm chứng chất lượng vào data pipeline bằng các công cụ như Great Expectations
-
Khả năng sử dụng:
- Tài liệu hóa phù hợp và thống nhất đặc tả trước
- Các cách data modeling:
- Hiểu ưu và nhược điểm của relational, Dimensional(Kimball), One Big Table
-
Tuân thủ dữ liệu cá nhân:
- Ẩn danh thông tin nhận dạng cá nhân (PII) và giảm thiểu thời gian lưu trữ dữ liệu
Xây dựng dự án portfolio
- Đặc điểm của một dự án hiệu quả:
- Chọn chủ đề mà bản thân thực sự quan tâm
- Xây dựng dự án có liên kết với frontend (ví dụ: Tableau, Power BI)
- Áp dụng công nghệ mới nhất (Spark, Snowflake, Delta Lake, v.v.)
- Triển khai pipeline chạy trong môi trường production
Xây dựng thương hiệu cá nhân và chuẩn bị phỏng vấn
-
Tận dụng LinkedIn:
- Xây dựng mạng lưới với hiring manager và đồng nghiệp
- Chia sẻ hành trình học tập để nâng cao mức độ nhận diện
-
Chuẩn bị phỏng vấn:
- Tìm hiểu về người phỏng vấn và bối cảnh công ty
- Trả lời câu hỏi một cách bình tĩnh và tích cực
- Thể hiện sự tò mò và đam mê với công nghệ cũng như công việc
Kết luận
- Việc tìm việc data engineering trong năm 2024 vẫn có thể tiếp cận được bằng một chiến lược bài bản ngay cả khi thị trường khó khăn
- Nếu đi theo lộ trình trên, bạn sẽ tiến gần hơn tới công việc data engineering mà mình hướng tới
1 bình luận
Scala thực sự là một ngôn ngữ rất tốt, nhưng thật tiếc khi có cảm giác rằng ngoài Spark ra thì nó dần mất đi chỗ đứng.