Các Kỹ Sư Dữ Liệu Chia Rẽ Giữa Quy Trình Làm Việc SQL Truyền Thống và Thực Hành Phát Triển Phần Mềm Hiện Đại

Nhóm Cộng đồng BigGo
Các Kỹ Sư Dữ Liệu Chia Rẽ Giữa Quy Trình Làm Việc SQL Truyền Thống và Thực Hành Phát Triển Phần Mềm Hiện Đại

Lĩnh vực kỹ thuật dữ liệu đang trải qua sự chia rẽ đáng kể đang gây ra những cuộc thảo luận sôi nổi trong cộng đồng chuyên gia. Trong khi một số người ủng hộ việc hội tụ với các thực hành kỹ thuật phần mềm truyền thống, những người khác lại bảo vệ cách tiếp cận hiện tại của quy trình làm việc dựa trên SQL và các công cụ chuyên biệt.

Sự Chia Rẽ Lớn Trong Vai Trò Kỹ Thuật Dữ Liệu

Một sự phân chia rõ ràng đã xuất hiện giữa hai phe của các chuyên gia dữ liệu. Một bên là các kỹ sư có nền tảng khoa học máy tính, nhấn mạnh các nguyên tắc kỹ thuật phần mềm như kiểm soát phiên bản, tích hợp liên tục và các framework kiểm thử phù hợp. Bên kia là những nhà phân tích chuyển thành kỹ sư dữ liệu, chủ yếu làm việc với SQL , cấu hình YAML và giao diện point-and-click thông qua các công cụ như dbt .

Sự chia rẽ này đã tạo ra căng thẳng trong ngành, với một số chuyên gia cảm thấy kỹ năng của họ đang bị đánh giá thấp. Các kỹ sư có thể thiết lập pipeline CI/CD và triển khai các hệ thống phức tạp thấy mình bị nhóm chung với những người chỉ biết các thao tác SQL cơ bản, dẫn đến sự thất vọng về mức lương và kỳ vọng vai trò.

Phân loại vai trò chuyên nghiệp:

  • Kỹ sư dữ liệu truyền thống: Các chuyên gia được đào tạo về khoa học máy tính, tập trung vào thực hành kỹ thuật phần mềm, CI/CD và quản lý hạ tầng
  • Nhà phân tích chuyển sang Kỹ sư dữ liệu: Các chuyên gia chủ yếu sử dụng SQL, YAML và các công cụ point-and-click như dbt
  • Chuyên gia công cụ: Các chuyên gia dữ liệu tập trung vào chuyên môn nền tảng cụ thể mà không có kỹ năng kỹ thuật rộng hơn
  • Kỹ sư nền tảng: Các kỹ sư quản lý hạ tầng dữ liệu, lập chỉ mục và tối ưu hóa xử lý quy mô lớn

Vấn Đề Notebook và Sự Sẵn Sàng Cho Sản Xuất

Một mối quan ngại lớn được cộng đồng đưa ra tập trung vào việc sử dụng rộng rãi các Jupyter notebook trong môi trường sản xuất. Nhiều tổ chức coi quy trình làm việc dựa trên notebook là hệ thống sẵn sàng cho sản xuất, mặc dù thiếu kiểm soát phiên bản phù hợp, kiểm thử tự động và quy trình triển khai.

Cách tiếp cận này đã tạo ra cái mà một số người mô tả là địa ngục notebook, nơi các pipeline dữ liệu quan trọng tồn tại dưới dạng các notebook rải rác với quản lý phụ thuộc kém. Vấn đề có vẻ đặc biệt nghiêm trọng trong các nền tảng như Databricks , nơi tích hợp git thường có nghĩa là chỉ đơn giản là check out code và commit trực tiếp vào nhánh chính mà không có quy trình code review phù hợp.

Có rất nhiều việc làm mọi thứ trong notebook và gọi đó là sẵn sàng cho sản xuất. Thật là điên rồ.

Các Nền Tảng Công Nghệ Chính Được Đề Cập:

  • ClickHouse: Cơ sở dữ liệu phân tích hiệu suất cao cung cấp thời gian truy vấn dưới một giây
  • Databricks: Nền tảng phân tích đám mây với quy trình làm việc tập trung vào notebook
  • dbt: Công cụ chuyển đổi dữ liệu mang kiểm soát phiên bản vào quy trình làm việc SQL
  • Airflow / Prefect: Các nền tảng điều phối quy trình làm việc cho pipeline dữ liệu
  • Snowflake: Kho dữ liệu đám mây với khả năng thủ tục lưu trữ Python
  • AWS Glue: Dịch vụ Apache Spark được quản lý để xử lý dữ liệu
  • DuckDB: Cơ sở dữ liệu phân tích trong tiến trình đang trở nên phổ biến cho các khối lượng công việc nhanh hơn
Kết quả đầu ra của terminal minh họa việc thiết lập môi trường phát triển cho cơ sở hạ tầng dữ liệu, nhấn mạnh các thách thức về tính sẵn sàng cho sản xuất đã được đề cập
Kết quả đầu ra của terminal minh họa việc thiết lập môi trường phát triển cho cơ sở hạ tầng dữ liệu, nhấn mạnh các thách thức về tính sẵn sàng cho sản xuất đã được đề cập

Hiện Tượng Tool Jockey

Một vấn đề đáng kể khác được cộng đồng nêu bật là sự phổ biến của các tool jockey trong các đội dữ liệu. Những chuyên gia này trở thành chuyên gia trong các nền tảng cụ thể nhưng thiếu các kỹ năng kỹ thuật cơ bản như kiểm thử tự động, kiểm soát phiên bản và infrastructure as code.

Tình huống này thường xuất phát từ các ràng buộc tổ chức nơi các đội phải sử dụng các công cụ tiêu chuẩn và tập trung vào việc làm cho các tác vụ hoạt động trong những môi trường đó, thay vì xây dựng các hệ thống mạnh mẽ, dễ bảo trì. Kết quả là cơ sở hạ tầng dữ liệu mong manh thường xuyên bị hỏng và mất quá nhiều thời gian để bảo trì.

Các Giải Pháp Mới Nổi và Cách Tiếp Cận Hiện Đại

Mặc dù có những thách thức này, một số đội đã thành công trong việc thu hẹp khoảng cách giữa công việc dữ liệu truyền thống và các thực hành kỹ thuật phần mềm. Các cách tiếp cận hiện đại bao gồm sử dụng các ngôn ngữ lập trình thực sự với các abstraction phù hợp, triển khai các chiến lược kiểm thử toàn diện với kiểm tra chất lượng dữ liệu, và áp dụng các nền tảng orchestration như Airflow cho quy trình làm việc sản xuất.

Các công cụ như dbt đã giúp ích bằng cách đưa kiểm soát phiên bản vào các transformation SQL và cho phép rehydration liên tục của các mô hình dữ liệu. Tuy nhiên, cộng đồng vẫn chia rẽ về việc liệu các cách tiếp cận declarative sử dụng YAML có đủ hay cần các ngôn ngữ lập trình truyền thống hơn cho các hệ thống dữ liệu phức tạp.

Cuộc thảo luận cho thấy rằng trong khi sự hội tụ giữa kỹ thuật dữ liệu và kỹ thuật phần mềm có thể đang xảy ra trong một số tổ chức, lĩnh vực này vẫn đối mặt với những thách thức đáng kể trong việc tiêu chuẩn hóa các thực hành tốt nhất và kỳ vọng nghề nghiệp trên toàn ngành.

Tham khảo: Data engineering and software engineering are converging

Giao diện trình soạn thảo code hiển thị các triển khai TypeScript cho pipeline dữ liệu, phản ánh các thực hành kỹ thuật hiện đại trong lĩnh vực kỹ thuật dữ liệu
Giao diện trình soạn thảo code hiển thị các triển khai TypeScript cho pipeline dữ liệu, phản ánh các thực hành kỹ thuật hiện đại trong lĩnh vực kỹ thuật dữ liệu