ETL là mình nói chung thôi, chứ thật ra thì cái mình nói đến là việc mantain tất cả những thể loại data pipeline trên đời này. Những việc đó nó sẽ bị lặp đi lặp lại, làm một thời gian sẽ chán, chưa kể nếu việc xây dựng và thêm, sửa các thành phần trong data pipeline chỉ nằm trong tay các ông data engineer thì nó sẽ tạo thành nút nghẽn cổ chai khiến việc bị chậm lại. Thế nên, theo mình, data engineer ngoài chuyện xây data pipeline thì còn phải xây cả các công cụ để mọi người trong công ty có thể truy cập, sử dụng data dễ dàng hơn.
Đương nhiên, có những thứ cứ lặp đi lặp lại mãi thì bạn sẽ không còn cảm thấy hứng thú để làm nó nữa, và với những ông engineer mà mình biết, rất hiếm người sẵn sàng chỉ ngồi một chỗ làm data pipeline vì như vậy bạn khó mà phát triển thêm, khó mà học thêm kiến thức mới. Nếu chỉ ngồi thêm, sửa, xóa data pipline thì bạn sẽ không còn thời gian để làm việc khác, không có thời gian tạo ra những sản phẩm hay ho hơn, giúp ích được cho nhiều người hơn, tiết kiệm được nhiều tiền hơn cho công ty hoặc giúp công ty kiếm thêm được tiền.
Nhu cầu thêm sửa xóa data pipeline theo mình thấy lại thường đến từ phía người dùng business, hoặc cụ thể hơn là từ các bạn data analyst, business analyst. Cũng đúng thôi, mỗi ngày họ được giao cho các bài toán, các câu hỏi khác nhau để trả lời và khả năng cao là họ sẽ nhận thấy một số bảng dữ liệu chưa được chuẩn bị sẵn, chưa được mang từ hệ thống nguồn lên, và thế là họ đi nhờ mấy anh em data engineer load dữ liệu.
Mọi chuyện sẽ không có gì nghiêm trọng nếu chỉ có 1-2 bạn business analyst trong một công ty chưa sử dụng dữ liệu nhiều. Nhưng khi tổ chức bắt đầu hiệu và vận dụng data nhiều hơn, có thêm nhiều analyst hơn, thì các yêu cầu load dữ liệu sẽ ngày càng nhiều tới một lúc nào đó đội data engineer sẽ trở thành nút nghẽn. Bạn phải giải quyết tuần tự các yêu cầu, bạn phải hẹn người này, dời deadline của người kia. Tất nhiên là để sắp xếp ổn thỏa thì vẫn được thôi, nhưng đáng ra chúng ta không nên để các bạn analyst hoặc các bạn business - những người dùng của chúng ta - chờ lâu như thế.
Làm data pipeline hoài thì sẽ chán
Đương nhiên, có những thứ cứ lặp đi lặp lại mãi thì bạn sẽ không còn cảm thấy hứng thú để làm nó nữa, và với những ông engineer mà mình biết, rất hiếm người sẵn sàng chỉ ngồi một chỗ làm data pipeline vì như vậy bạn khó mà phát triển thêm, khó mà học thêm kiến thức mới. Nếu chỉ ngồi thêm, sửa, xóa data pipline thì bạn sẽ không còn thời gian để làm việc khác, không có thời gian tạo ra những sản phẩm hay ho hơn, giúp ích được cho nhiều người hơn, tiết kiệm được nhiều tiền hơn cho công ty hoặc giúp công ty kiếm thêm được tiền.
Data engineer trở thành nút nghẽn cổ chai
Nhu cầu thêm sửa xóa data pipeline theo mình thấy lại thường đến từ phía người dùng business, hoặc cụ thể hơn là từ các bạn data analyst, business analyst. Cũng đúng thôi, mỗi ngày họ được giao cho các bài toán, các câu hỏi khác nhau để trả lời và khả năng cao là họ sẽ nhận thấy một số bảng dữ liệu chưa được chuẩn bị sẵn, chưa được mang từ hệ thống nguồn lên, và thế là họ đi nhờ mấy anh em data engineer load dữ liệu.
Mọi chuyện sẽ không có gì nghiêm trọng nếu chỉ có 1-2 bạn business analyst trong một công ty chưa sử dụng dữ liệu nhiều. Nhưng khi tổ chức bắt đầu hiệu và vận dụng data nhiều hơn, có thêm nhiều analyst hơn, thì các yêu cầu load dữ liệu sẽ ngày càng nhiều tới một lúc nào đó đội data engineer sẽ trở thành nút nghẽn. Bạn phải giải quyết tuần tự các yêu cầu, bạn phải hẹn người này, dời deadline của người kia. Tất nhiên là để sắp xếp ổn thỏa thì vẫn được thôi, nhưng đáng ra chúng ta không nên để các bạn analyst hoặc các bạn business - những người dùng của chúng ta - chờ lâu như thế.
Thế nên trong quá trình làm việc của mình, để tự giải phóng bản thân khỏi sự chán và sự nghẽn cổ chai như đã nói ở trên, mình sẽ chọn cách làm ra những công cụ, những hệ thống có khả năng tự động hóa quá trình thêm sửa xóa data pipeline.
Xây công cụ, xây cơ chế kiểm soát, và mở ra cho mọi người dùng
Tùy theo bộ công nghệ mà công ty đang dùng là gì mà bạn có thể chế thêm các tool tương ứng, ví dụ mình có một công cụ để các bạn analyst vào tự tạo các bảng tổng hợp của họ để truy xuất dữ liệu nhanh, gọn, rẻ hơn. Nó có chức năng hẹn giờ để tự động rút dữ liệu mới vào bảng, có một số khả năng tự phát hiện kiểu dữ liệu của từng field để gợi ý. Công cụ cũng sẽ tự động scan data warehouse để đưa vào chức năng ghi chú, bảng nào, cột nào có ý nghĩa ra sao, nó dùng để làm gì… Tất cả những thứ này có thể dễ dàng truy cập thông qua một giao diện web nội bộ.
Lợi ích của việc này đó là mình không còn phải ngồi làm các việc load data thủ công nữa, các bạn analyst cần gì thì có thể tự xử, việc của các bạn không bị kẹt ở mình, không phải chờ lâu, không phải phụ thuộc. Ngoài ra, việc này cũng tăng khả năng quản lý data pipeline, khúc nào bị lỗi thì dễ dàng truy hơn, và có thể xem trực tiếp từ giao diện nhanh gọn lẹ, tức là nó cũng giúp cho chính mình nữa chứ không chỉ cho người dùng của mình.
Tất nhiên, khi bạn mở cho các thành viên khác cùng tham gia xây dựng data pipeline với bạn, bạn sẽ cần một số cơ chế kiểm soát, phân quyền để đảm bảo chi phí không bị quá cao, quyền không bị bỏ lọt, data không bị lạm dụng… cái này thì tùy cơ chế, công cụ của công ty mà sẽ có những cách kiểm soát khác nhau, không có mẫu chung. Nhưng nói chung là phải có, chứ không tới một ngày đẹp trời tiền nó vọt lên gấp đôi thì thốn lắm nha anh em 😁 Việc giám sát ra sao, monitor từng người dùng như thế nào là thứ anh em cần nghĩ tới ngay từ khi bắt đầu xây dựng công cụ để có thể tích hợp tốt mặt kiểm soát vào công cụ của mình, tránh phải sửa quá nhiều sau khi đã hoàn thiện sản phẩm.
Cần thêm kĩ năng gì cho việc xây dựng công cụ?
Kĩ năng, kiến thức và kinh nghiệm về data thì anh em đã có, nhưng anh em cần chuyển hóa, tích hợp những kiến thức này vào một sản phẩm để người ta dùng. Khi đó anh em sẽ cần biết một chút về UX và về sản phẩm để hiểu người ta sẽ dùng công cụ của anh em ra sao, anh em có thể giải quyết những “nỗi đau” nào trong hoàn cảnh hiện tại của công ty, và liệu nó có đáng công sức đầu tư bỏ ra hay không.
Quảng cáo
Sau đó, nếu anh em không có ai trợ giúp, khả năng cao là anh em sẽ phải tự mình build luôn cả web, app hoặc một cái gì đó mà anh em cho là cần và dễ dàng truy cập. Cũng có thể nó là chỉ là một file YAML để các bạn analyst định nghĩa nếu anh em không có khả năng làm thành giao diện đồ họa. Tuy nhiên, theo mình thì lỡ rồi thì làm tới luôn, nếu có được giao diện đồ họa thì tốt vì như vậy sẽ giảm công, giảm thời gian học cho các bạn analyst khi họ dùng công cụ của anh em.
Mình từng chia sẻ với anh em về những hiểu biết sản phẩm khi làm data engineer, bao gồm cả kiến thức về front end, backend, sản phẩm, người dùng, UX. Ở Việt Nam và ở những công ty không quá to, khả năng cao là anh em sẽ cần tự làm thì mới xong việc chứ không thể chờ người khác giúp mình. Anh em xem kĩ hơn trong bài bên dưới nha.
Hi vọng những chia sẻ nhỏ xíu của mình sẽ giúp được anh em phần nào trong việc mà chúng ta làm thường ngày. Cảm ơn anh em, thấy hay nhớ cho mình xin 5 sao nha 😆