Các bạn đang học đại học ngành công nghệ chắc cũng nghe loáng thoáng về data engineer - kĩ sư dữ liệu - một ngành đang nổi tại Việt Nam. Rồi nhiều bạn đang đi làm cũng có thể chuyển hướng sang làm data engineer.
Làm data engineer là làm gì?
Nhiệm vụ của bạn là làm những việc liên quan tới dữ liệu. Thường ở các công ty ở Việt Nam và nước ngoài, data engineer sẽ xây dựng các luồng dữ liệu để phân tích, để vận hành, để tích hợp các hệ thống với nhau, để đồng bộ dữ liệu giữa nhiều hệ thống riêng lẻ. Một số việc có thể sẽ trùng với việc của các bạn software engineer (phát triển phần mềm) hoặc các bạn làm hệ thống backend.
Vai trò của data engineer dễ thấy nhất và đang được tuyển dụng nhiều nhất là xây dựng luồng dữ liệu (data pipeline) để phục vụ cho nhu cầu phát triển data warehouse - một loại chỗ lưu trữ đặc biệt dùng cho mục đích phân tích, theo dõi số liệu, lên báo cáo, dashboard và phục vụ một vài việc về vận hành. Data pipeline sẽ mang dữ liệu từ những chỗ khác nhau về data warehouse, trong quá trình đó có thể sẽ cần dọn dẹp dữ liệu một chút.
Ngoài ra, bạn cũng có thể thấy data engineer làm nhiệm vụ đem dữ liệu từ một hệ thống A sang hệ thống B để phục vụ cho một tính năng mới. Ví dụ, hệ thống sẽ "web scrape" dữ liệu từ nhiều nguồn báo chí trên mạng về để copy lại bài, giống như kiểu một con nhện hút máu. Nếu không có data pipeline để di chuyển dữ liệu thì thuật toán này sẽ không bao giờ có thể hiện thực hóa, hoặc phải làm thủ công và ảnh hưởng rất nhiều tới tốc độ xử lý.
Web scraping, web harvesting hay còn gọi là web data extraction là quá trình cào dữ liệu được sử dụng để trích xuất dữ liệu từ các website. Các phần mềm web scraping truy cập vào website bằng giao thức HTTP hoặc bằng web browser để lấy ra các dữ liệu mà họ quan tâm.
Nói chung, data engineer làm hết mọi thứ về kĩ thuật liên quan tới data. Một số bạn đủ giỏi, hoặc khi công ty cần, có thể sẽ làm thêm một chút về AI đơn giản. Cái này thì tùy khả năng của mỗi người. Một số công ty quy mô nhỏ thì data engineer cũng có khi đi xây dựng báo cáo, dashboard, kết xuất dữ liệu... Thực tế là công ty cần cái gì thì làm cái đó, và khi bạn làm tốt được nhiều việc thì lương bạn sẽ cao hơn. Tất cả đều quy về lợi ích, lợi nhuận là trên hết.
Làm Data Engineer có phải là làm Big Data không? Big Data hay Small Data gì thì cũng là data, "mèo đen hay mèo trắng không quan trọng, quan trọng là bắt được chuột". Tùy theo lượng data lớn hay nhỏ mà bạn sẽ có lựa chọn công cụ phù hợp, cái nào không biết thì học tiếp, không có gì phải lo lắng. Suốt ngày đi tìm hiểu cách làm Big Data xong lại không để ý tới Small Data thì cũng giống như "đứng trên mây", nhất là khi đa số doanh nghiệp cả ở Việt Nam lẫn thế giới chưa chắc gì đã có "Big Data" cho bạn làm.
Data warehouse + SQL + ETL / ELT
Data warehouse là cái bạn sẽ xây nên, nên bạn phải hiểu nó là đương nhiên. Bạn cần biết về kiến trúc data warehouse, cách chúng vận hành, cách chúng thực thi các câu lệnh SQL của bạn, cách lấy dữ liệu ra và đưa lên những hệ thống báo cáo / visualization. Hiện nay data warehouse trên cloud đang được nhiều công ty sử dụng, thế nên bạn cũng cần coi Google BigQuery, AWS RedShift, Snowflakes, và những thứ tương tự.
Nói về SQL, đây là cái bạn dùng để tương tác với data, để lấy data ra, để chuyển hóa data. SQL là công cụ mà bạn bắt buộc phải giỏi nhất công ty. Bạn làm sao mà mọi người cần hỏi về SQL phải đi hỏi bạn là được. SQL là cái sống còn với data engineer.
Ngoài ra, bạn cũng cần tìm hiểu về kĩ thuật ETL và ELT. Đây là hai cách tiếp cận khác nhau trong việc thu thập, chuyển hóa dữ liệu để sử dụng cho nhiều mục đích khác nhau. ETL và ELT là 2 từ khóa quan trọng mà data engineer không thể không biết.. Google giờ có nhiều bài nói về vụ này, bạn cũng có thể học chúng trong các khóa học online dễ dàng.
Phát triển phần mềm
Bạn làm data engineer thì bạn cũng cần biết được những hệ thống sinh ra data nó chạy ra sao, người ta làm nó bằng cách nào. Thế nên một data engineer cũng nên biết hệ thống front end (web, app) và backend được xây dựng ra sao, dùng ngôn ngữ gì, thậm chí bạn phải "vọc" nhiều để hiểu. Khi bạn có hiểu biết thì bạn mới có thể giải quyết được những vấn đề xảy ra khi làm việc của data engineer. Bạn lâu lâu sẽ cần hỏi bên lập trình xem dữ liệu đó họ tạo ra nó bằng cách nào, nó đi qua những hệ thống nào, có những điều kiện gì sinh ra dữ liệu đó.
Ngoài ra, đến một lúc nào đó, bạn sẽ muốn đưa data của mình cho nhiều người dùng hơn, giúp công ty sử dụng data hiệu quả hơn nhưng công cụ không có sẵn. Hoặc chỉ đơn giản là bạn muốn tự động hóa công việc của mình cho tiết kiệm thời gian, giảm sai sót. Đây là lúc mà hiểu biết về phát triển phần mềm sẽ giúp bạn.
Chưa kể những công việc của data engineer liên quan tới data pipeline cũng cần sử dụng các ngôn ngữ lập trình thường thấy trong việc xây dựng backend để làm. Hiện nay rất nhiều data pipeline được xây nên nhờ Python, Java, Scala.., và đó cũng chính là cái dùng để làm ra backend của các hệ thống phần mềm hiện nay.
Tìm kiếm trên Google, bạn có thể bắt gặp một số từ khóa có liên quan: biết về Python, biết về lập trình web, lập trình backend (PHP, Python, Java…), biết về database.
Database
Dữ liệu được chứa trong cơ sở dữ liệu, và đương nhiên bạn phải hiểu biết về lĩnh vực này thì mới làm tốt được công việc của mình. Bạn phải biết được cách vận hành của các loại database lớn hiện nay (MySQL, Postgres, SQL Server, Oracle), bạn phải biết chúng chạy ra sao, làm sao để tối ưu SQL khi cần lấy dữ liệu.
Rồi bạn sẽ cần xem thêm tới những loại “database” mới sử dụng cho các mục đích riêng biệt, ví dụ như database về dữ liệu địa lý, database về dữ liệu streaming và xử lý thời gian thực… Kiến thức thì rất mênh mông, đụng tới đâu thì bạn tìm hiểu tới đấy, nhưng lời khuyên chung là bạn không được "tệ" về database, thậm chí bạn phải hiểu sâu về database hơn developer (lập trình viên thuần túy).
Rồi bạn sẽ phải biết về NoSQL database, một loại database mới đang được dùng ngày càng nhiều. MongoDB là một từ khóa bạn có thể dùng để đi Google tiếp. Ngoài ra còn có nhiều loại database NoSQL khác nhưng ý tưởng cũng tương tự.
Hạ tầng và cloud
Hạ tầng là những thứ liên quan tới server, Linux, cách lưu trữ, cách dùng Docker, và mở rộng hơn là sử dụng cloud để làm công việc của bạn. Bạn sẽ cần biết cách dựng nên một con server, các thiết lập nó, cài các công cụ cần thiết để làm việc, cách để hạ tầng scale ra tùy theo nhu cầu và lượng data cần xử lý… Nhiều thứ cần phải tìm hiểu, nhưng cứ bắt đầu dần dần, tìm hiểu từng thứ một.
Thật ra còn nhiều thứ khác về tech bạn phải tìm hiểu lắm, mình chỉ mới kể ra những cái mà theo mình là quan trọng nhất cho những bạn mới tìm hiểu và bắt đầu làm. Dần dần bạn sẽ giỏi lên, đừng lo. Cứ học, cứ làm, cứ tìm hiểu liên tục là được.
Bạn làm data thì cỡ nào bạn cũng phải đi nói chuyện với loài người, có thể là các phòng ban khác ở khối kinh doanh, có thể là các phòng ban về tech khác nữa. Nên bạn phải tập nói sao cho người ta hiểu ý mình, nói ngắn gọn, và có khả năng giải thích những thứ phức tạp theo cách đơn giản thì mới làm tốt được việc của data engineer.
Đó là chưa kể bạn phải tìm hiểu về những khái niệm "domain ngành", ví dụ như tỉ lệ chuyển đổi, cái khái niệm về quảng cáo, sản xuất, vận hành, chăm sóc khách hàng. Những kiến thức về business này sẽ giúp bạn làm việc của mình tốt hơn vì bạn biết nó là gì, bạn cần làm gì để giúp công ty tạo ra giá trị có liên quan. Nếu có thời gian, hãy đi nói chuyện, giao lưu, ăn trưa với các phòng ban kinh doanh, bạn sẽ giỏi hơn rất nhiều so với việc chỉ ngồi làm tech, chỉ ngồi code suốt ngày.
Duy Luân