Ngày nay nghề Data Engineer hay kỹ sư khoa học dữ liệu đang cực kỳ phát triển trên thế giới và ở Việt Nam nghề này cũng rất có triển vọng với mức lương đáng mơ ước: 14-18 triệu đối với vị trí fresher, 20-25 triệu đối với mức junior và con số dao động từ 30-50 triệu cho level middle, senior. Nếu bạn đang muốn tìm hiểu về nghề Data Engineer thì bài viết này sẽ dành cho bạn.
Mục lục
1. Data Engineer là gì?
Data Engineer (kỹ sư khoa học dữ liệu) là người xây dựng hệ thống (Data Warehouse) dùng để tổng hợp, lưu trữ, xử lý hoặc xuất dữ liệu từ các nguồn khác nhau; công việc của họ cũng bao gồm xử lý chuyển đổi dữ liệu thành 1 định dạng chuẩn. Hệ thống dữ liệu được xây dựng bởi Data Engineer và dữ liệu được chuẩn hóa bởi Data Engineer sẽ phục vụ cho Data Analyst, Data Scientist, Business Intelligence sử dụng để phân tích dữ liệu hoặc một số nhu cầu khác.
2. Công việc hằng ngày của một nhà kỹ sư khoa học dữ liệu
Trong doanh nghiệp, Data Engineer đóng vai trò là người “sơ chế dữ liệu”, đảm bảo tất cả mọi dữ liệu của công ty được tập hợp lại, được chuẩn hóa và lưu trữ trong 1 hệ thống (Data Warehouse hoặc Data Lake). Từ đó công ty có sẵn dữ liệu để phân tích, giúp cho việc ra quyết định kinh doanh nhanh chóng và sáng suốt hơn.
Mục tiêu công việc của Data Engineer là làm cho dữ liệu dễ dàng truy cập và tối ưu hóa hệ sinh thái dữ liệu của tổ chức doanh nghiệp.
2.2 Nhiệm vụ chính của 1 Data Engineer trong công ty:
Kỹ sư dữ liệu hay kỹ sư khoa học dữ liệu chịu trách nhiệm xây dựng và duy trì cơ sở hạ tầng dữ liệu của tổ chức, bao gồm Database (cơ sở dữ liệu), Data Warehouse (kho dữ liệu) và Data pipeline (đường ống dẫn dữ liệu). Cũng như chuyển đổi dữ liệu thành một định dạng hữu ích cho việc phân tích.
Điều này bắt đầu với việc dọn dẹp, sắp xếp và xử lý dữ liệu thô, không có cấu trúc. Các kỹ sư khoa học dữ liệu sẽ thiết kế hệ thống xử lý và lưu trữ dữ liệu gọi là Data pipeline. Các hệ thống này thu thập, làm sạch, chuyển đổi và điều hướng dữ liệu đến các hệ thống đích, lấy dữ liệu thô từ nền tảng SaaS như hệ thống CRM hoặc công cụ tiếp thị qua email và lưu trữ trong Data Warehouse để có thể phân tích dữ liệu bằng các công cụ phân tích và kinh doanh thông minh.
2.3 Các công việc cụ thể hàng ngày của 1 kỹ sư khoa học 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à Metadate (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.
Các vai trò Kỹ sư khoa học dữ liệu khác nhau trong công ty
Công việc của một kỹ sư dữ liệu sẽ khác nhau tùy thuộc vào loại hình công ty mà họ làm việc. Nói chung, bạn có thể phân loại kỹ sư dữ liệu thành một số loại:
- Generalist – Data Engineering đảm nhiệm công việc tổng quát
Loại kỹ sư dữ liệu này có nhiệm vụ chung chung thường làm việc trong các nhóm nhỏ; thực hiện việc thu thập, tiếp nhận và xử lý dữ liệu từ đầu đến cuối. Họ có thể có nhiều skills hơn hầu hết các kỹ sư dữ liệu; nhưng không chuyên sâu về 1 mảng nào trong công việc, và cũng ít kiến thức hơn về kiến trúc hệ thống. Một nhà khoa học dữ liệu muốn trở thành một kỹ sư dữ liệu sẽ rất phù hợp với vai trò tổng quát.
- Pipeline-centric – Data Engineering chuyên mảng data pipeline (đường ống dữ liệu)
Các DE đảm nhiệm công việc tập trung vào data pipeline; có xu hướng cần thiết trong các công ty cỡ vừa có nhu cầu phân tích dữ liệu phức tạp. Họ sẽ làm việc với các nhóm các nhà khoa học dữ liệu; để chuyển đổi dữ liệu thành một định dạng hữu ích để phân tích. Điều này đòi hỏi kiến thức chuyên sâu về hệ thống phân tán và khoa học máy tính.
Một kỹ sư dữ liệu tập trung vào data pipeline có thể được yêu cầu tạo một công cụ; cho phép các nhà khoa học dữ liệu truy vấn metadata (siêu dữ liệu); để sử dụng trong một thuật toán dự đoán.
- Database-centric – Data Engineer chuyên mảng cơ sở dữ liệu
Các kỹ sư dữ liệu này được giao nhiệm vụ triển khai; duy trì và đưa vào cơ sở dữ liệu phân tích. Vai trò này thường tồn tại ở các công ty lớn hơn, nơi dữ liệu được phân phối trên nhiều cơ sở dữ liệu. Các kỹ sư làm việc với 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 table schema (lược đồ bảng); 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à một quá trình trong đó dữ liệu được sao chép từ nhiều nguồn vào một hệ thống đích duy nhất.
Mô tả công việc của data engineer
Khác với Data Analyst và Data Scientist là những người chuyên về phân tích và khai thác insights từ dữ liệu, nhiệm vụ của Data Warehouse xây dựng hệ thống cơ sở hạ tầng dữ liệu để từ đó các bạn DA, BA và DA truy cập lấy dữ liệu để sử dụng.
Tuy Data Engineer cũng cần biết SQL; như DA, và thông thạo các ngôn ngữ lập trình SQL, Python và Scala cùng các công cụ BigData. Các kỹ sư khoa học dữ liệu sẽ sử dụng những cung cụ này; 1 cách khác biệt theo đặc thù nhiệm vụ của họ.
Ngoài ra các Data Engineer cần phải có các bộ kỹ năng khác như sau:
Kỹ năng cơ bản cần có để làm nghề DE – data engineer
- Data Modelling (mô hình hóa dữ liệu), Data Warehouse (kho dữ liệu), Data APIs (Restful API cho data) và Datalake.
- 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.
Kỹ năng học hỏi thêm để hỗ trợ công việc data engineer là gì?
- 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 kỹ sư khoa học dữ liệu, bạn phải học những gì?
“Data engineer cần học gì?” là câu hỏi mà INDA thường xuyên nhận được. Để trở thành Data Engineer, bạn cần phải có những kiến thức và kỹ năng như sau:
Lộ trình trở thành Data Engineer cần có nhiều kỹ năng liên quan đến ngôn ngữ lập trình, cơ sở dữ liệu, hệ điều hành và các tác vụ liên quan đến dữ liệu. Dưới đây là nhưng kỹ năng cần có để có thể trở thành một kỹ sư dữ liệu:
Ngôn ngữ lập trình
Data Engineer cần có kiến thức chuyên môn về các ngôn ngữ lập trình sau (tối thiểu):
- SQL : Để thiết lập, truy vấn và quản lý hệ thống cơ sở dữ liệu. Các kỹ sư dữ liệu sẽ cần phải làm việc với cơ sở dữ liệu SQL một cách thường xuyên và liên tục.
- Python : Để tạo data pipelines, hãy viết các ETL scripts trích xuất, chuyển đổi và tải dữ liệu từ hệ thống này sang hệ thống khác và để thiết lập các mô hình thống kê và thực hiện phân tích. Giống như R, đây là ngôn ngữ quan trọng đối với khoa học dữ liệu và kỹ thuật dữ liệu — và nó đặc biệt quan trọng đối với ETL, phân tích dữ liệu và các ứng dụng học máy.
- R: Để phân tích dữ liệu và thiết lập các mô hình thống kê, trang tổng quan và hiển thị trực quan. Giống như Python, đây là một ngôn ngữ quan trọng cho khoa học dữ liệu và kỹ thuật dữ liệu — và nó đặc biệt hữu ích cho các ứng dụng phân tích dữ liệu và học máy.
Hệ cơ sở dữ liệu quan hệ và phi quan hệ:
Các Data Engineer cần biết cách làm việc với nhiều nền tảng dữ liệu, đặc biệt là các hệ thống cơ sở dữ liệu quan hệ dựa trên SQL (RDBMS) như MySQL, PostgreSQL (một cơ sở dữ liệu kết hợp SQL và NoSQL), Microsoft SQL Server và Cơ sở dữ liệu Oracle. Các Data Engineer cũng nên phát triển các kỹ năng làm việc với cơ sở dữ liệu NoSQL như MongoDB, Cassandra, Couchbase, Cơ sở dữ liệu Oracle NoSQL và các cơ sở khác.
Giải pháp ETL / ELT:
Các Data Engineer cũng cần biết cách sử dụng các hệ thống ETL (trích xuất, chuyển đổi, tải) vào kho dữ liệu. Họ cũng nên hiểu cách sử dụng các giải pháp ETL để hỗ trợ việc chuyển đổi và di chuyển dữ liệu từ hệ thống lưu trữ hoặc ứng dụng này sang hệ thống lưu trữ hoặc ứng dụng khác.
Data Warehouse
Sau khi trích xuất thông tin từ các hệ thống kinh doanh khác nhau, các Data Engineer cần chuẩn bị thông tin để tích hợp thông tin đó với hệ thống kho dữ liệu — nếu họ muốn truy vấn thông tin đó để có thông tin chi tiết và thông tin khác. Vì kho dữ liệu dựa trên đám mây tạo thành xương sống của hầu hết các hệ thống dữ liệu doanh nghiệp gần đây, điều quan trọng là các kỹ sư dữ liệu phải hiểu cách thiết lập và kho dữ liệu dựa trên đám mây, kết nối nhiều loại dữ liệu với nó và tối ưu hóa những kết nối cho tốc độ và hiệu quả.
Data Lake
Data Warehouse chỉ có thể hoạt động với thông tin có cấu trúc — chẳng hạn như thông tin trong cơ sở dữ liệu quan hệ nơi dữ liệu được tổ chức thành các cột và hàng được xác định rõ ràng. Trong khi đó, Data Lake có thể hoạt động với bất kỳ loại dữ liệu nào — bao gồm cả thông tin phi cấu trúc — và các giải pháp BI có thể kết nối với chúng để thu được những thông tin chi tiết có giá trị. Vì lý do này, nhiều công ty đang kết hợp các Data Lake vào cơ sở hạ tầng thông tin của họ.
Xây dựng báo cáo Phân tích:
Nhiều nền kinh doanh thông minh và máy học cho phép người dùng phát triển các bảng điều khiển tương tác , đẹp mắt, hiển thị kết quả của các truy vấn, dự báo AI, v.v. Các nhiệm vụ này thường do nhà khoa học dữ liệu chịu trách nhiệm ; tuy nhiên, các Data Engineer có thể hỗ trợ các nhà khoa học dữ liệu trong quá trình này. Mặc dù nhiều nền tảng BI và giải pháp RDBMS cho phép người dùng tạo trang tổng quan thông qua giao diện kéo và thả, kiến thức về SQL, R và Python cho phép kỹ sư dữ liệu hỗ trợ nhà khoa học dữ liệu thiết lập trang tổng quan phù hợp với nhu cầu của họ.
Học máy
Học máy chủ yếu là lĩnh vực của các nhà khoa học dữ liệu. Tuy nhiên, vì các kỹ sư dữ liệu là những người xây dựng cơ sở hạ tầng dữ liệu hỗ trợ các hệ thống máy học. Ngoài ra, không phải tất cả các tổ chức sẽ có một nhà khoa học dữ liệu, vì vậy bạn nên hiểu cách thiết lập bảng điều khiển BI, triển khai các thuật toán học máy và trích xuất thông tin chi tiết chuyên sâu một cách độc lập.
5. Lộ trình trở thành Data Engineer
Dưới đây là Lộ trình trở thành Data Engineer cho người mới bắt đầu:
6. Lộ trình đào tạo Data Engineer tại Insight Data (Inda)
KHÓA HỌC TRỞ THÀNH DATA ENGINEER CHO NGƯỜI MỚI BẮT ĐẦU gồm 5 khóa:
- SQL Level 1: SQL for Beginner (for Data Analyst/ Business Analyst/ Tester Data) – Truy vấn và thao tác dữ liệu cho người bắt đầu
- SQL Level 2: Advanced SQL (for Data Engineer) – Lập trình dữ liệu nâng cao
- DWH / ETL – Tổng hợp, chuẩn hóa và Xây dựng kho dữ liệu (Cơ bản)
- Data Modeling: Thiết kế mô hình dữ liệu trong doanh nghiệp
- Google Bigquery Cloud for Data Analytics & Machine Learning
Đăng ký tư vấn và học thử miễn phí
Trên đây là tổng hợp những điều mà bạn cần biết về nghề Data Engineer cũng như lộ trình theo đuổi Data Engineer 1 cách bài bản. Hy vọng rằng thông qua bài viết này; bạn đã xác định được rõ mục tiêu sự nghiệp của mình.