Data Engineering – Sự lột xác mới của Software Engineering? – PART 2

VNUK >Góc chia sẻ >Data Engineering – Sự lột xác mới của Software Engineering? – PART 2
Phần 1 mới là warm-up thôi, hy vọng các bạn vẫn còn hứng thú để đào sâu thêm về các kĩ năng cần thiết cho ngành DE. Bạn sẵn sàng chưa? 🤩🤩🤩

VẬY NHỮNG KỸ NĂNG BẠN CẦN CÓ CHO DE LÀ GÌ?

📌 Kiến thức và kĩ năng về Data warehouse + SQL + Data Pipeline (ví dụ như ETL, ELT)
  • Khi bạn làm DE, thì bạn sẽ đụng rất nhiều, và khi phỏng vấn thì cũng sẽ bị hỏi rất nhiều về Data warehouse. Nó là gì, cách nó vận hành như thế nào và bạn phải tổ chức như thế nào để có thể truy xuất dữ liệu nhanh nhất. Bạn tưởng tượng mình là người quản lý một cái nhà kho, thì bạn phải thiết kế sao cho khi khách hàng yêu cầu mặt hàng là bạn phải tìm ra được cái món hàng đó nhanh nhất và hiệu quả nhất, ít tốn kém nhất có thể.
  • Bonus về định nghĩa technical cho các bạn. Data warehouse là một nơi lưu trữ dữ liệu có cấu trúc theo dạng hàng, bảng, cột (giống trong excel với spreadsheet ấy)
  • Tiếp theo là về ngôn ngữ query (truy vấn) dữ liệu phổ biến nhất hiện nay là SQL. Về cái ni thì bạn phải, hờ siêu đỉnh, phải giỏi hơn những bạn làm developer bình thường. Bởi vì nếu không, khi gặp những vấn đề trong quá trình thiết kế data warehouse hay pipeline, bạn sẽ không có đủ năng lực và hiểu biết về công cụ để có thể giải quyết nó.
  • Về data pipeline (luồng dữ liệu), thì đây là cách thức lấy dữ liệu từ nhiều nguồn khác nhau và đổ nó vào một số chỗ nhất định (A → 😎, như mình có nói ở trên thì là data warehouse hoặc chỗ nào đó khác. Trong lúc bạn học Data Pipeline thì phải học thêm Python, Scala hoặc Java, bạn có thể chọn dùng 1 trong 3 ngôn ngữ, thì hiện tại mình thấy Python là dễ dùng nhất, các bạn có thể thử và chọn ngôn ngữ nào phù hợp với mình. Data pipeline nói chung có 2 hướng tiếp cận chính:
  1. Thứ nhất là ETL, và phần lớn công ty ở Việt Nam sử dụng cách tiếp cận này. ETL = Extract – Transform – Load. Hiểu đơn giản thì là bạn khai thác dữ liệu từ A (Extract), sau đó biến đổi nó cho phù hợp với yêu cầu của nơi tiếp nhận B (Transform). Và cuối cùng là bạn tải nó vào trong B (Load)
  2. Thứ hai là ELT, thì sẽ thay đổi ở công đoạn là bạn sẽ tải dữ liệu (Load) vào trong B trước rồi sau đó mới biến đổi (Transform)
  • Đây là quy trình tối giản để bạn có thể nắm bắt được ý tưởng của hai phương pháp này, còn thực sự thì ETL sẽ có một nơi được gọi là Staging Area, để bạn tiến hành transform dữ liệu. Và với ELT, thì dữ liệu không được lưu trữ trong B mà ở một nơi tên là data lake (hồ dữ liệu, có thể chứa dữ liệu có cấu trúc và cả không có cấu trúc, khác với data warehouse chỉ chứa dữ liệu có cấu trúc) Vì vậy, nếu bạn hiểu rõ hơn thì nên hỏi bác google thêm hoặc đợi bài viết sau nhé.
📌 Kĩ năng phát triển phần mềm:
 
Bạn có thể thắc mắc, ủa tui làm bên data mà sao lại có software ở đây. Vì hiện tại thì phần lớn dữ liệu của bạn được sinh ra từ các website hoặc phần mềm, nên nếu bạn không hiểu được cách vận hành của nó, cũng như nó tạo ra dữ liệu như thế nào, thì bạn sẽ gặp khó khăn trong chính phần việc của mình sau này. Đơn cử nhất là về website thì nên biết frontend được dựng bằng HTML, CSS, JS như thế nào, backend được viết bằng PHP hay Python ra sao và cách website giao tiếp với database bên dưới.
 
📌 Kiến thức về database (cơ sở dữ liệu) như là Relational Database and Non-relational Database
 
Có hai dạng dữ liệu: có cấu trúc nghĩa là dạng thông tin số mà mình có thể tạo cấu trúc và bỏ vào bảng biểu (mấy dữ liệu như thu nhập, chi phí hằng tháng, hoặc giới tính v..v..) gọi là Relational Database. Thường với dạng này, mình sẽ biết trước được thông tin nhận được sẽ thuộc vào loại gì. Còn dữ liệu không có cấu trúc là dạng giọng nói, comment facebook, dạng dữ liệu hình ảnh thì chưa phân loại, và không lưu trữ dưới dạng hàng bảng cột như ở trên thì gọi là Non-relational Database.
 
Relational Database là dạng lưu trữ dữ liệu phổ biến nhất hiện nay và được thiết kế ở dưới dạng các bảng có liên kết với nhau. 4 Database lớn nhất hiện nay bao gồm: MySQL, Postgres, SQL Server, Oracle. Bạn nên hiểu và sử dụng thành thạo ít nhất 1 trong 4 ông này, nhưng bạn nào thích master cả 4 thì càng đỉnh. Một note nhỏ nhỏ là những database không được dùng làm data warehouse, mà thường là nơi phát sinh ra dữ liệu, truy cập vào nó để lấy dữ liệu về xong bỏ vô data pipeline cho đi khắp nơi.
 
Non-relational Database: nổi tiếng nhất hiện nay là MongoDB. Ờm thì không được lưu trữ dạng bảng cột, chi tiết hơn là được lưu trữ dưới dạng key-value hoặc graph chứa các cạnh và định. Chi tiết hơn thì các bạn biết phải hỏi bác nào rùi.
 
📌 Cơ sở hạ tầng và cloud computing
 
Hiện tại về cách lưu trữ dữ liệu đã chia ra làm 2 hướng đi: hướng truyền thống với việc lưu trữ ở các server vật lý hoặc lưu trữ ở trên điện đám đám mây (cloud computing):
 
Với server vật lý thì bạn cần biết được cách setup một server cơ bản, biết phải cài cái gì lên máy chủ, làm sao để truy cập nó từ xa, cài phần mềm cho nó kiểu gì. Bạn cũng cần phải hiểu biết về Docker (một công cụ giúp cho bạn dễ dàng chạy được các application mà không cần tốn thời gian cài đặt những phần mềm khác sao cho giống với máy của developer. Kiểu máy của đứa bạn chạy app thì được, nhưng đến lúc bạn copy y hệt về máy thì nó lại báo lỗi, ức chế cực)
 
Đó là về cách thức truyền thống, và thực sự thì việc xây dựng và bảo trì một server vật lý tốn rất nhiều tài nguyên về tiền bạc và nhân sự, nên bây giờ các công ty lớn đã chuyển qua giải pháp cloud (một lần nữa, đơn giản dễ hiểu thui thì nó giống như cái google drive của bạn ý, bạn tải file lên một lần, là sau này bạn ở bất kì vị trí nào, dù ở Bắc Cực thì miễn có mạng là bạn sẽ access được cái dữ liệu bạn lưu trữ trên cái “cloud” đấy). Tương ứng với ba ông lớn trong IT hiện nay thì chúng ta cũng có ba cái tên: Google Cloud (của Google :))), Azure của Microsoft và AWS (Amazon Web Services). Bạn có thể chọn một trong 3 khóa học của 3 thằng này để học về các giải pháp từ cloud mang lại so sánh với cách tiếp cận truyền thống.
 
Ồ, nhắc đến cloud, cho phép khoe, thầy Vũ trường mình là instructor đầu tiên và duy nhất hiện nay tại Việt Nam được Amazon cấp phép để đào tạo các giảng viên dạy tại AWS Academy ở VN và nhận bằng Training của Amazon Cloud.
 
📌 Khả năng tự tìm hiểu thông tin + Giao tiếp:
 
Cuối cùng, đây là kỹ năng mà bất kỳ lĩnh vực nào liên quan đến công nghệ cũng cần. Kỹ năng hỏi bác Google :))))) Sẽ có và chắc chắn có rất nhiều vấn đề phát sinh trong lúc bạn xây dựng hoặc bảo trì hệ thống, và không ai rảnh thời gian để cầm tay hướng dẫn bạn sửa chữa từng lỗi một cả. Mà bạn phải tự mày mò và tìm cách, có rất nhiều khóa học online hiện giờ cũng như các video trên youtube giúp bạn giải quyết phần lớn vấn đề, còn khi nào bạn bí quá rồi thì có thể đi hỏi các seniors giúp đỡ. Nhưng nhớ luôn luôn phải tự mình đi tìm giải pháp trước.
 
Bên cạnh đó, người ngoài nhìn vô ai cũng nghĩ là những bạn dính dáng đến IT sẽ rất yếu về mảng giao tiếp. Nhưng mà đối với DE thì không (thực ra với các ngành IT còn lại cũng thế), bởi vì nhiệm vụ của DE đòi hỏi bạn phải hiểu được những nhu cầu của các phòng ban khác nhau trong công ty về mặt dữ liệu, và còn cách nào hiệu quả hơn để hiểu được yêu cầu của họ ngoài cách hỏi và giao tiếp hì. Nhiều khi bạn còn phải học industry knowledge (kiến thức ngành) để có thể giao tiếp hiệu quả với các phòng ban khác trong công ty.
 
🧐 Bạn thấy lượng kiến thức và yêu cầu nãy giờ nhiều không? Nhiều chứ? Nhưng bạn không nên sợ hãi hay cảm thấy tự ti khi có nhiều thứ ở trên bạn không hề biết. Không ai bắt các bạn khi ra trường phải có hết tất cả những thứ này, mà điều cốt lõi là bạn phải nhận thức được những thứ mình thiếu, và luôn luôn cố gắng tìm hiểu và học tập vượt qua tầm hiểu biết hiện tại của mình. Thế giới này đang di chuyển quá nhanh đi, và bạn sẽ dễ dàng tụt hậu nếu không tìm hiểu và mở mang sự hiểu biết của mình. 1, 2 năm đi làm thôi, và bạn sẽ tích lũy được một số lượng lớn kinh nghiệm và kiến thức, nên đừng bị đe dọa mà hãy tiếp tục tiến lên nhé.
 
✨ Tiếp tục 5 giây quảng cáo, Data Science và Computer Science Engineer tại VNUK đang tìm kiếm các member và đồng môn máu lửa. Nếu bạn đọc hết 2 phần mình đã lý giải về DE, thì dám cá bạn thuộc hệ VNUK DS/CSE rồi. Ủa vậy sao không chuẩn bị hồ sơ giấy tờ gia nhập hội Data Scientist của mình tại VNUK nhé, cánh cửa vào đại học công lập quốc tế VNUK chưa bao giờ rộng mở hơn ở thời điểm này cho các sinh viên và học sinh 2k3. Thông tin tuyển sinh đây nhe: http://bit.ly/ThongTinTuyenSinhVNUK2021
 
Thân ái và chào quyết thắng. Chúc các bạn có một kì nộp đơn thành công và mãn nguyện. 🎒
 
—————————————————————————————————————————-
Credit:
Get inspired from: Duy Luân Dễ Thương
Data Pipeline: https://bit.ly/3dU01Tm
Relational vs Non-relational Database: https://bit.ly/3tZMvDa
 

Leave a Reply

Verified by MonsterInsights