Data Engineer hay còn gọi là kỹ sư dữ liệu là một trong những vị trí quan trọng trong lĩnh vực khoa học dữ liệu. Với sự phát triển của kỷ nguyên số, nhu cầu chuyển đổi số của các doanh nghiệp ngày càng lớn khiến vị trí Data Engineer nay trở thành một vai trò quan trọng tới sự thành công và phát triển của doanh nghiệp.
Data Engineer là gì?
Data Engineer hay kỹ sư dữ liệu đóng vai trò xây dựng hệ thống, tổng hợp, lưu trữ và xuất dữ liệu trong doanh nghiệp. Với tính chất phức tạp và đặc thù của công việc, một Data Engineer cần phải có những kiến thức chuyên sâu và kỹ năng sử dụng các công cụ để phục vụ cho công việc.
Các kỹ sư dữ liệu cần phải sử dụng những kiến thức và kỹ năng của mình để tìm ra xu hướng ở các dữ liệu của doanh nghiệp, tìm ra phương án và phụ trách việc cải thiện chất lượng các nguồn dữ liệu.
Công việc hàng ngày của một Data Engineer
Công việc chính của một kỹ sư dữ liệu
Với Data Engineer, nhiệm vụ của họ sẽ là xây dựng hệ thống cơ sở hạ tầng dữ liệu để phân tích, vận hành và tích hợp các hệ thống với nhau. Một kỹ sư dữ liệu sẽ làm những công việc liên quan đến cấu trúc vận hành hệ thống dữ liệu, thiết kế các luồng dữ liệu (data pipeline) để phục vụ cho nhu cầu phát triển của Data Warehouse, chịu trách nhiệm cho hệ sinh thái dữ liệu của doanh nghiệp.
Data Engineer cũng phụ trách việc xử lý, định dạng và tối ưu các dữ liệu đổ về Data Warehouse sao cho phù hợp với từng mục đích sử dụng. Hiểu đơn giản thì một kỹ sư dữ liệu sẽ phải đảm cho mọi dữ liệu đổ về luôn trong trạng thái sẵn sàng để phục vụ công việc của các vị trí khác như Data Analyst và Data Scientist.
Công việc cụ thể hàng ngày của một kỹ sư dữ liệu
Các kỹ sư dữ liệu thường đảm nhiệm những công việc tương tự như sau:
- Thiết kế kiến trúc cơ sở hạ tầng dữ liệu: Về cốt lõi, kỹ thuật dữ liệu đòi hỏi phải thiết kế kiến trúc của một nền tảng dữ liệu.
- Phát triển các công cụ / phiên bản liên quan đến dữ liệu: Vì là kỹ sư dữ liệu, ngay từ đầu, các chuyên gia này sẽ sử dụng các kỹ năng lập trình để phát triển, tùy chỉnh và quản lý các công cụ tích hợp, cơ sở dữ liệu, kho dữ liệu và hệ thống phân tích.
- Bảo trì / kiểm tra Data pipeline: Trong giai đoạn phát triển, các kỹ sư dữ liệu sẽ kiểm tra độ tin cậy và hiệu suất của từng phần của hệ thống. Hoặc họ có thể hợp tác với nhóm thử nghiệm.
- Quản lý dữ liệu và Metadata (siêu dữ liệu): Dữ liệu có thể được lưu trữ trong kho theo cách có cấu trúc hoặc không có cấu trúc. Bộ nhớ bổ sung có thể chứa siêu dữ liệu (dữ liệu khám phá về dữ liệu). Một kỹ sư dữ liệu chịu trách nhiệm quản lý dữ liệu được lưu trữ và cấu trúc nó một cách hợp lý thông qua hệ thống quản lý cơ sở dữ liệu.
- Cung cấp các công cụ truy cập dữ liệu: Trong một số trường hợp, các công cụ như vậy là không bắt buộc, vì các Data Scientist có thể sử dụng các loại kho dữ liệu như data-lake để lấy dữ liệu ngay từ kho lưu trữ. Tuy nhiên, nếu một tổ chức yêu cầu thông tin kinh doanh cho các Data Analyst và những người dùng không phải là kỹ thuật khác, các kỹ sư dữ liệu chịu trách nhiệm thiết lập các công cụ để xem dữ liệu, tạo báo cáo và tạo hình ảnh.
- Theo dõi sự ổn định của Data Pipeline: Giám sát hiệu suất tổng thể và sự ổn định của hệ thống để đảm bảo rằng Data Warehouse cần được dọn dẹp theo thời gian. Các bộ phận tự động của Data Pipeline cũng cần được giám sát và sửa đổi vì dữ liệu / mô hình / yêu cầu có thể thay đổi.
Vai trò của vị trí Data Engineer đối với doanh nghiệp
Tùy từng tính chất của doanh nghiệp mà Data Engineer có thể chia ra thành nhiều bộ phận khác nhau với vai trò khác nhau
-
Generalist – Đảm nhiệm công việc tổng quát Công việc mà các Generalist thường làm là thu thập, nhập và xử lý dữ liệu. Họ sẽ có nhiều kỹ năng hơn hầu hết các kỹ sư dữ liệu nhưng không chuyên trong bất cứ lĩnh vực nào của công việc và có ít kiến thức về kiến trúc hệ thống
-
Pipeline-centric – Phụ trách mảng data pipeline Nhiều doanh nghiệp có nhu cầu phân tích dữ liệu phức tạp thường yêu cầu các Data Engineer tập trung vào các data pipeline. Họ sẽ là người đảm nhiệm công việc xây dựng các luồng dữ liệu, đảm bảo dữ liệu được lưu thông nhằm chuyển đổi dữ liệu thành một định dạng hữu ích cho việc phân tích.
-
Database-centric – Phụ trách mảng cơ sở dữ liệu Database-centric có nhiệm vụ chính là triển khai, duy trì và đưa vào cơ sở dữ liệu phân tích. Những kỹ sư dữ liệu này thường tồn tại trong các công ty lớn, nơi dữ liệu được trải rộng trên nhiều database.
Các kỹ sư sử dụng các đường ống, điều chỉnh cơ sở dữ liệu để phân tích hiệu quả và tạo các lược đồ bảng (table schema) bằng cách sử dụng các phương pháp trích xuất, biến đổi, tải (ETL). ETL là quá trình sao chép dữ liệu từ nhiều nguồn vào một hệ thống đích duy nhất.
Tại sao nên chọn nghề Data Engineer?
Data Engineer là một công việc khá phức tạp và mang tính đặc thù rất cao. Để trở thành một Data Engineer đòi hỏi chúng ta phải nắm rất chắc các kiến thức, kỹ năng về ngôn ngữ lập trình, các thuật toán, các công cụ phức tạp.
Hơn nữa, với sự phát triển không ngừng nghỉ của công nghệ 4.0, nhu cầu chuyển đổi số doanh nghiệp là rất lớn và Data Engineer được xem là nắm giữ vị trí then chốt. Sẽ không còn những đống giấy tờ, các tập tài liệu khổng lồ mà theo đó, tất cả sẽ được số hóa, tiết kiệm thời gian và giảm thiểu chi phí cho doanh nghiệp.
Kỹ sư dữ liệu sẽ là người xây dựng lên toàn bộ cấu trúc, hệ thống cơ sở hạ tầng của doanh nghiệp, được ví như cơ quan đầu não phát triển và vận hành các vị trí liên quan. Theo thống kê, Data Engineer được xếp vào Top những công việc có mức lương cao nhất trên thế giới. Tại Việt Nam, mức lương trung bình của một Data Engineer lên tới 30 triệu/tháng và dao động tùy vào khả năng và kinh nghiệm của mỗi người.
Sự phát triển của công nghệ 4.0 đã tạo ra một xu hướng nghề nghiệp trong hiện tại và tương lai. Dự báo, nhu cầu tuyển dụng Data Engineer của các doanh nghiệp là rất lớn và mức thu nhập của một Data Engineer sẽ còn tăng trong tương lai.
Các kỹ năng cần có để trở thành một Data Engineer
Các kỹ năng cơ bản một kỹ sư dữ liệu phải có
- Data Modelling (mô hình hóa dữ liệu), Data Warehouse (kho dữ liệu), Data APIs (Restful API cho data) và Data Lake.
- Coding: Thành thạo các ngôn ngữ lập trình là điều cần thiết cho vai trò này. Các ngôn ngữ lập trình phổ biến bao gồm SQL, NoSQL, Python, Java, R và Scala. (Chủ yếu là SQL và Python, nếu Scala nữa càng tốt)
- Spark để xây dựng hệ thống data. Tối thiểu mọi người phải hiểu được Spark vận hành như thế vào; và viết được Spark Application.
Đây chính là những kỹ năng cần phải có ở 1 Data Engineer để có thể làm việc; ngoài ra các bạn cũng nên trau dồi thêm những kỹ năng chuyên môn khác để phục vụ tốt hơn cho công việc.
Các kỹ năng bổ trợ cho công việc của kỹ sư dữ liệu
- Devops: Docker, Kubernetes – dùng để deploy services, data application
- Machine learning (Học máy): Mặc dù Machine learning là lĩnh vực chủ yếu của các nhà khoa học dữ liệu; nhưng có thể hữu ích nếu bạn nắm được các khái niệm cơ bản để hiểu rõ hơn; nhu cầu của các nhà khoa học dữ liệu trong nhóm của bạn mà có biết cách hỗ trợ hiệu quả.
- Các công cụ Big Data: Kỹ sư dữ liệu không chỉ làm việc với dữ liệu thông thường. Họ thường được giao nhiệm vụ quản lý dữ liệu lớn. Các công cụ và công nghệ đang phát triển và thay đổi theo từng công ty; nhưng một số công cụ phổ biến bao gồm Hadoop, MongoDB và Kafka.
- Điện toán đám mây. Bạn sẽ cần hiểu về lưu trữ đám mây và điện toán đám mây khi các công ty ngày càng vận hành trên máy chủ cho các dịch vụ đám mây; phổ biến là Amazon Web Services (AWS) hoặc Google Cloud.
- Bảo mật dữ liệu: Mặc dù một số công ty có thể có đội bảo mật dữ liệu chuyên dụng; nhưng nhiều kỹ sư dữ liệu vẫn được giao nhiệm vụ quản lý và lưu trữ dữ liệu; một cách an toàn để bảo vệ dữ liệu khỏi bị mất hoặc bị đánh cắp.
Để trở thành một Data Engineer, bạn cần học những gì?
Do tính đặc thù của nó, để trở thành một Data Engineer thì bạn cần phải am hiểu nhiều kiến thức và kỹ năng khác nhau để phục vụ công việc
Ngôn ngữ lập trình
- SQL: Các kỹ sư dữ liệu sẽ thường xuyên phải làm việc với cơ sở dữ liệu SQL để thiết lập, truy vấn và quản lý hệ thống cơ sở dữ liệu
- Python : Các kỹ sư dữ liệu sử dụng Python để viết mã các khuôn khổ ETL, tương tác API, tự động hóa và các tác vụ kết hợp dữ liệu như định hình lại, tổng hợp, kết hợp các nguồn khác nhau, v.v.
- R: Dùng để thực hiện các phân tích thống kê và trực quan hóa dữ liệu. Các chức năng thống kê của R cũng giúp dễ dàng làm sạch, nhập và phân tích dữ liệu.
- Scala: Khi nói đến Data Engineer, Spark là một trong những công cụ được sử dụng rộng rãi nhất và nó được viết bằng ngôn ngữ Scala. Scala là một phần mở rộng của ngôn ngữ Java. Nếu bạn đang làm việc trong một dự án Spark thì Scala là ngôn ngữ bạn nên học
Cơ sở dữ liệu quan hệ và phi quan hệ
Các kỹ sư dữ liệu cũng phải biết cách làm việc với các hệ thống cơ sở dữ liệu quan hệ. Chẳng hạn như MySQL và PostgreSQL. Bên cạnh đó các Data Engineer cũng nên có kỹ năng làm việc với các cơ sở dữ liệu phi quan hệ NoSQL; như MongoDB, Apache Cassandra, Couchbase and Apache HBase
Kỹ thuật ETL/ELT
Các Data Engineer cũng cần phải biết sử dụng các công cụ ETL; để di chuyển dữ liệu từ cơ sở dữ liệu và các nguồn khác vào một kho lưu trữ duy nhất; chẳng hạn như Data Warehouse. Các công cụ ETL phổ biến bao gồm Xplenty, Stitch, Alooma và Talend
Data Warehouse/Data Lake
Dữ liệu trong các tổ chức, doanh nghiệp từ các nguồn như hệ thống CRM; phần mềm kế toán và phần mềm ERP được các Data Engineer trích xuất; xử lý và lưu trữ ở 1 hệ thống lưu trữ dữ liệu; đó có thể là Data warehouse hoặc Data lake; sau đó những dữ liệu này được các Data Analyst, Business Analyst hoặc Data Scientist,…; sử dụng để báo cáo, phân tích và khai thác dữ liệu.
- Data Lake là một kho dữ liệu lưu trữ tất cả các loại dữ liệu; kể cả có cấu trúc, phi cấu trúc hay bán cấu trúc. Nó chứa một lượng lớn dữ liệu ở định dạng gốc. Thường chỉ các công ty, tập đoàn lớn có nhiều dữ liệu mới cần xây dựng Data Lake.
- Data Warehouse là kho dữ liệu của công ty; thường chỉ lưu trữ dữ liệu đã được lập mô hình/cấu trúc
Xây dựng báo cáo phân tích
Các công cụ phân tích và trực quan hóa dữ liệu Business Intelligence (BI); và khả năng định cấu hình chúng cũng là kiến thức quan trọng mà các Data Engineer cần có. Với nền tảng BI, các Data Engineer có thể thiết lập kết nối giữa các Data warehouse; Data lake và các nguồn dữ liệu khác. Các Data Engineer phải biết biểu diễn trực quan dữ liệu trên Power BI, Python hoặc R; cũng như làm các báo cáo tổng hợp.
Machine Learning
Các thuật toán Machine learning — còn được gọi là mô hình — giúp các Data Scientist; đưa ra dự đoán dựa trên dữ liệu. Các Kỹ sư dữ liệu chỉ cần có kiến thức cơ bản về Machine learning; vì nó cho phép họ hiểu rõ hơn nhu cầu của Data Scientist cũng như nhu cầu của tổ chức; từ đó có thể đưa mô hình vào việc xây dựng Data pipeline (đường ống dữ liệu) chính xác hơn.
Data Engineer khác gì so với Data Analyst?
Cả 2 vị trí đều làm việc liên quan đến dữ liệu và các kiến thức gần như trùng lặp. Tuy nhiên vẫn có một sự khác biệt rõ ràng giữa 2 thuật ngữ này
Với Data Analyst, nhiệm vụ của họ chính là tham gia vào quá trình trích xuất thông tin, phân tích dữ liệu đưa ra kết quả cuối cùng. Còn đối với Data Engineer, công việc chính của họ sẽ tập trung chủ yếu việc thiết kế, xây dựng cấu trúc cơ sở hạ tầng dữ liệu.
Họ sẽ là người xây dựng kho dữ liệu (Data Warehouse) và các luồng dữ liệu (Data Pipeline) và đảm bảo cho các dữ liệu được lưu thông và luôn ở trạng thái sẵn sàng, phục vụ cho công việc của Data Analyst.
Do tính chất phải chịu trách nhiệm cho cả hệ sinh thái dữ liệu của doanh nghiệp, để trở thành một Data Engineer, ban phải nắm giữ được những kiến thức chuyên sâu, nâng cao. Data Engineers phải làm việc với cả dữ liệu có cấu trúc và không cấu trúc.
Do đó, họ cần có kiến thức chuyên môn về cả cơ sở dữ liệu SQL và NoSQL. Data Engineer cũng cần có nhiều kinh nghiệm hơn với các kiến thức và kỹ năng về ngôn ngữ lập trình nâng cao như Python, Java, Scalar,…
Chính bởi sự đòi hỏi cao từ kiến thức và các kỹ năng nâng cao, trực tiếp xây dựng nên cấu trúc cơ sở dữ liệu phục vụ các bộ khác mà Data Engineer sẽ có mức thu nhập cao hơn Data Analyst trong lĩnh vực khoa học dữ liệu
Nếu là người đam mê trở thành một kỹ sư dữ liệu thì điều này sẽ thích hợp nhất cho những bạn đã có nền tảng CNTT, am hiểu sâu về các ngôn ngữ lập trình phức tạp. Những kiến thức này là cần thiết để có thể thực hiện các nghiệp vụ nâng cao như Data Lake và Big Data.
Đối với những người đang làm Data Analyst muốn chuyển nghề sang Data Engineer cũng có lợi thế vì các kiến thức phải học dường như khá trùng lặp, tuy nhiên bạn vẫn sẽ gặp khó khăn hơn những bạn có kiến thức về CNTT do phải nắm chắc kiến thức chuyên sâu và phức tạp về ngôn ngữ lập trình.
Dựa theo khảo sát của INDA trên hơn 100 học viên tham gia đào tạo data engineer tại đây thì có gần 60% học viên đang làm hoặc có nền tảng là CNTT, lập trình
Lộ trình đào tạo trở thành Data Engineer tại INDA
Khóa học Data Engineer tại INDA cung cấp một lộ trình bài bản, chuyên nghiệp cho bất cứ ai có mong muốn trở thành một kỹ sư dữ liệu. Các kiến thức tại INDA được đào tạo từ kiến thức cơ bản tới nâng cao bởi các giảng viên, trợ giảng dày dặn kinh nghiệm Website: Indaacademy.vn