Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data. - vozForums
vozForums
Go Back   vozForums > Học tập và công việc > Ngành CNTT > Phát triển Phần mềm
Reply
 
Thread Tools
  #1  
Old 20-08-2019, 13:33
hninja222 hninja222 is offline
K.I.A
 
Join Date: 12-2010
Posts: 2,735
Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Chào các bác, mình xin tự giới thiệu trước, mình 25 tuổi và đang làm cho một công ty ở Sài Gòn đã hơn 1 năm. Trước đây mình làm lập trình web, làm hết front-end (AngularJS), back-end (C# ASP.NET) lẫn database (M$ SQL Server). Sau đó cách đây hơn 1 tháng thì công ty mình tổ chức lại phòng ban và hiện giờ mình đang ngồi ở team làm về BI.

Team BI ở đây, theo như các cấp lãnh đạo muốn, là "tạo ra report" để giúp họ "quản lý tốt hơn". Công việc hiện tại của mình hiện giờ đang được yêu cầu là thiết kế và xây dựng Data Warehouse (DWH). Mình thì với lĩnh vực này có thể coi như là mới toanh. Chuyên ngành hồi mình học ở đại học là "Hệ thống thông tin", nghe thì có vẻ công việc rất phù hợp với tên ngành học, nhưng hồi ở đại học mình chủ yếu học về lập trình và sử dụng database cho các hệ thống online là chính, chứ Data Warehouse cho report thì mình hoàn toàn chưa bao giờ biết tới khi còn đi học.

Hiện giờ thì sau khoảng một tháng nghiên cứu, có lúc cảm thấy lạc đường, có lúc cảm thấy được khai sáng, thì mình cũng nắm được sơ sơ quy trình của một hệ thống BI, modern Data Warehouse theo như thiết kế của Microsoft từ lúc extract từ nguồn, transform ở Spark (DWH nếu dùng ELT), load vào Data Warehouse, ý tưởng về thiết kế Data Warehouse, rồi Semantic Model (OLAP) cho đến lúc sử dụng BI Tools để tạo report....

Tuy nhiên còn rất nhiều thứ mình mơ hồ, thậm chí là về đường hướng như kiểu: Theo mình hiểu thì Data Warehouse lập ra với mục đích chủ yếu là:

1- Cách ly hệ thống database report khỏi hệ thống database của Online Production,
2- Tập hợp data từ nhiều nguồn, làm sạch, biến đổi về model chuẩn.
3- Lưu giữ History của các record.

Thì ý thứ nhất, mình hoàn toàn có thể sử dụng lại 1 database có sẵn ở công ty được replicate lại từ hệ thống online. Không cần DWH làm gì.
Ý thứ 2, thì công ti mình không có data từ nhiều nguồn. Tất cả data sẽ được lấy từ database của hệ thống online tập trung.
Ý thứ 3 thì theo như mình hiểu, thì cấp trên họ cũng không quan tâm lắm đến vấn đề này.

Trong khi chi phí để nuôi cái hệ thống DWH này rất đắt tiền, riêng con Azure Datawarehouse chi phí có thể lên đến 1000$/tháng cho option rẻ nhất, rất căng về budget, trong khi các mục đích chính của DWH lại không cần đến. Cấp trên họ muốn output cuối cùng là tạo ra report, nhưng theo những gì mình tìm hiểu được thì, tất cả những gì mình cần để tạo report là Semantic Model và BI Tool như Power BI chẳng hạn.

Chẳng lẽ mình lại ra nói "tốt nhất không nên làm Data Warehouse cho đến khi chúng ta thực sự có nhu cầu integrate data "

Nhiều cái mình cũng đang chẳng hiểu mình có đang hiểu đúng hay không, mà lên stack overflow thấy cái tag #data-warehouse thấy đìu hiu kinh. Mấy cái forum khác cũng y như đã chết vậy. Giờ mà có vấn đề gì chẳng biết đem đi hỏi ai. Trong khi mình nghĩ mấy lĩnh vực kiểu này phải đang rất hót cơ.

Mà có bác nào làm về lĩnh vực này không nhỉ, cho mình hỏi ngành này ở VN có triển vọng không, tương lai như thế nào? Mình lên IT viec thấy tuyển Data Engineer làm ETL làm với Spark và Kafka cũng có nhưng không nhiều tràn lan như tuyển lập trình viên bình thường. Chủ yếu là các công ty với hệ thống rất lớn như Tiki, Momo hoặc đám công ty nước ngoài. BI System cũng có, mình thì đang xem mấy cái BI với Big Data này là 1 nhưng ko biết trên thực tế có riêng không. Chưa kể nữa là stack của mình là stack của Microsoft, hàng mình xài khả năng lớn là Azure Data Warehouse trong khi ở VN mình toàn thấy AWS Redshift với Google Big Query....

Đường hướng của mình ngắn trung hạn thì muốn đi về hướng Data Engineer hơn do mình có background lập trình.

Mà tiếc là rất nhiều chỗ cần Kafka mà công ty mình có lẽ sẽ không xài đến ít nhất là trong trung hạn (Do dữ liệu hiện tại chỉ nằm hoàn toàn trong DB của online production). Spark mình sợ với hệ thống mình cũng sẽ không làm nhiều. Trong khi mình cảm thấy nếu muốn đi xa trong ngành này thì Kafka và Spark là bắt buộc, khi mà các thiết bị IOT sau này phát triển sẽ stream event liên tục và người ta có nhu cầu phân tích cái luồng dữ liệu khổng lồ đó.

Mấy bác đang làm về ngành này cho mình xin chút ý kiến nha.
Reply With Quote
  #2  
Old 20-08-2019, 13:47
zzchaolegionzz's Avatar
zzchaolegionzz zzchaolegionzz is offline
Senior Member
 
Join Date: 12-2009
Posts: 355
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Nếu làm theo hướng thực dụng thì trước mắt bác có thể đọc dữ liệu từ prod database rồi xuất ra report, sếp có cái nhìn trước mắt, done.
Nhưng về lâu dài thì dữ liệu report cần được làm sạch rồi mới lưu lại (ware house) rồi còn trích xuất theo quãng thời gian (time series), rồi real time, xong có những report còn phải reduce, aggregate data. Nên là đọc trực tiếp từ prod db sẽ gây ảnh hưởng tới hệ thống.

Trong trường hợp trên các sếp không quan tâm thì càng vui, sếp chỉ cần kết quả, bạn cần môi trường học tập và làm việc, vậy thì cứ triển khai thôi, 1000$ với bạn là lớn nhưng với sếp có thể không là gì. Mình khuyên bạn nên triển khai, làm proposal rồi báo cáo sếp, duyệt là làm thôi.
P/S: Mình từng làm trong 1 team làm BI nhưng chuyên môn không phải là data engineer, mình là dev thôi nhưng có chút kiến thức lượm lặt được từ team chia sẻ tạm cho bạn chứ không phải ý kiến từ chuyên gian nhé )
Reply With Quote
  #3  
Old 20-08-2019, 14:03
CloneBayernVsChelsea's Avatar
CloneBayernVsChelsea CloneBayernVsChelsea is offline
Senior Member
 
Join Date: 05-2012
Posts: 102
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

cty mình đang tuyển dataware house senior upto 3k min 4 năm kinh nghiệm mà ko ra đây nè.

vấn đề report mà bác đang làm là gì ? có cần đến dataware house hay ko.

có những report mà ko có dataware house thì chạy tới mùa quít mới ra được kết quả.
Reply With Quote
  #4  
Old 20-08-2019, 15:06
hninja222 hninja222 is offline
K.I.A
 
Join Date: 12-2010
Posts: 2,735
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Quote:
Originally Posted by zzchaolegionzz View Post
Nếu làm theo hướng thực dụng thì trước mắt bác có thể đọc dữ liệu từ prod database rồi xuất ra report, sếp có cái nhìn trước mắt, done.
Nhưng về lâu dài thì dữ liệu report cần được làm sạch rồi mới lưu lại (ware house) rồi còn trích xuất theo quãng thời gian (time series), rồi real time, xong có những report còn phải reduce, aggregate data. Nên là đọc trực tiếp từ prod db sẽ gây ảnh hưởng tới hệ thống.

Trong trường hợp trên các sếp không quan tâm thì càng vui, sếp chỉ cần kết quả, bạn cần môi trường học tập và làm việc, vậy thì cứ triển khai thôi, 1000$ với bạn là lớn nhưng với sếp có thể không là gì. Mình khuyên bạn nên triển khai, làm proposal rồi báo cáo sếp, duyệt là làm thôi.
P/S: Mình từng làm trong 1 team làm BI nhưng chuyên môn không phải là data engineer, mình là dev thôi nhưng có chút kiến thức lượm lặt được từ team chia sẻ tạm cho bạn chứ không phải ý kiến từ chuyên gian nhé )
Các điều bác nói đúng như những ý mà mình đang hiểu. Hoàn toàn có thể làm report (ít nhất là với các yêu cầu report hiện tại mà team mình đang nhận) mà ko cần đến DWH. Còn cái về lâu dài mà bác nói thì mình hoàn toàn nhận thức được việc đó. Đọc trực tiếp từ production gây ảnh hưởng chính là điều 1 mà mình ghi (cách li khỏi hệ thống online), tập trung làm sạch trước khi lưu lại là điều 2, còn trích xuất theo quãng thời gian là điều 3 (ghi lại history). Tuy nhiên mình chỉ sợ cái dự án này sẽ không kéo dài quá xa cái giai đoạn... "lâu dài" kia.

Bản thân mình cảm thấy dự án này không được bên trên thực sự quan tâm. Người làm dự án này toàn là tay mơ, gồm có mình và 1 anh nữa. Anh kia thì đang quá bận với những yêu cầu report thủ công hiện tại nên vấn đề research và thiết kế, solution 95% sẽ là do tay mình quyết định. Mình thấy, nếu bên trên thực sự quan tâm, mình nghĩ họ sẽ mời architect xịn về thiết kế (công ty mình đợt tái cơ cấu này có team thuê hẳn Solution Architect riêng), hoặc là ít nhất sẽ mời senior về guide đội. Budget cao quá mình e sẽ dùng dằng rồi dẹp tiệm luôn khỏi làm. Chuyện này theo mình biết ở công ty mình đã có tiền lệ. Công ty không quá quan tâm cũng tốt, chủ yếu là mình hi vọng sẽ có được một nơi mình tự học, tự thực nghiên cứu, được làm từ A-Z.

Vấn đề là cái 1000$ kia mới chỉ là cái Data Warehouse thôi, còn 1 đống thứ phải nuôi như Analysis Service (để host semantic model), Data Factory (Để extract), Data lake, Databricks (để chạy Spark transform), Power BI Embed (để publish report). Chưa kể sau có thể mình vẽ thêm cả HD Insight để chạy Hadoop Kafka, scale lên 1 tí thôi thì cứ xác định là tiền tấn. Ông chủ tịt nói với mình là budget cho cục này là 20k EUR 1 năm. Vậy chắc khoảng 1k7 EUR 1 tháng. Mình e số này không đủ.

Để giảm tiền có thể mình sẽ dùng Azure SQL server thường thay cho Azure Data Warehouse. Theo như mình biết thì khác biệt giữa 2 cái này chỉ là xử lý song song và dung lượng tối đa. Sau này cùng lắm move qua hàng xịn chắc cũng ko có gì khó.

Mà cho mình hỏi, cái vụ reduce, aggregate data theo mình nên dùng Semantic model (OLAP) làm hơn là làm trong Data Warehouse. Khái niệm reduce, aggregate theo như mình hiểu từ trước đến giờ là thay đổi độ hạt lên mức tổng quát hơn, vd có 3 transaction, được thực hiện vào lúc 1:03AM, 1:20AM, 2:55AM, thì khi aggregate sẽ có

[Hour: 1AM, Number of transaction: 2,
Hour: 2AM, Number of transaction: 1].

Mình hiểu như vậy có đúng không nhỉ.

Dĩ nhiên là đối với dữ liệu cực lớn kiểu stream real time bằng Kafka chẳng hạn thì chắc chỉ ghi vào DWH hàng đã được aggregate rồi. Còn raw sẽ được lưu ở Data lake, cần thì dùng Spark chọc vô để xem chi tiết hơn.

Quote:
Originally Posted by CloneBayernVsChelsea View Post
cty mình đang tuyển dataware house senior upto 3k min 4 năm kinh nghiệm mà ko ra đây nè.

vấn đề report mà bác đang làm là gì ? có cần đến dataware house hay ko.

có những report mà ko có dataware house thì chạy tới mùa quít mới ra được kết quả.
Mình thực sự chưa tưởng tượng được sẽ có những scenario nào thì nếu ko có Data Warehouse mà chỉ dùng 1 cái database đc replicate lại từ production db thì mùa quýt mới chạy ra cả, chắc là do mình newbie. Mình nghiên cứu thì thấy Semantic Model như SSAS tabular model hoặc tabular model nội tại trong PowerBI hiện giờ quá nhanh quá mạnh, muốn tạo bảng ảo, cột ảo, muốn tính toán, aggreate gì cũng làm được ầm ầm.

Hiện tại thì mình thấy các yêu cầu report của bên mình hoàn toàn có thể giải quyết bằng Semantic Tabular model + Power BI.

Cái câu hỏi có thực sự cần đến Data Warehouse không thì chủ yếu là các nguyên nhân mà mình kể trên thôi.
Reply With Quote
  #5  
Old 20-08-2019, 20:45
zzchaolegionzz's Avatar
zzchaolegionzz zzchaolegionzz is offline
Senior Member
 
Join Date: 12-2009
Posts: 355
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Bác hỏi sâu hơn về DWH thì em chịu, em là dev application chứ đến data model các kiểu thì em chưa tìm hiểu. Có điều em thấy thế này, với 1k7 1 tháng mà dùng các open source thì thế nảo nhỉ? Tự host, tự cài, tự quản lý các service như Kafka, SQL server thay bằng Postgres, report thì tự viết app query rồi lưu xuống db nào đó xong tự build cái UI để hiển thị.
Hay là bắt buộc phải dùng service của Microsoft?
Reply With Quote
  #6  
Old 21-08-2019, 10:19
hninja222 hninja222 is offline
K.I.A
 
Join Date: 12-2010
Posts: 2,735
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Quote:
Originally Posted by zzchaolegionzz View Post
Bác hỏi sâu hơn về DWH thì em chịu, em là dev application chứ đến data model các kiểu thì em chưa tìm hiểu. Có điều em thấy thế này, với 1k7 1 tháng mà dùng các open source thì thế nảo nhỉ? Tự host, tự cài, tự quản lý các service như Kafka, SQL server thay bằng Postgres, report thì tự viết app query rồi lưu xuống db nào đó xong tự build cái UI để hiển thị.
Hay là bắt buộc phải dùng service của Microsoft?
Bên mình trong danh sách yêu cầu tối cao có 1 yêu cầu là không được phép mang data ra khỏi Data Center hiện tại (là cái cloud Azure mà công ty đang xài), nên là Data Warehouse của bên mình 99% là sẽ (phải) xài solution on-cloud của Microsoft. Với lại người ta cũng muốn dùng cloud hơn. Chứ nếu có thể xài local thì ít nhất mình đã không bị kẹt vụ yêu cầu ngân sách để chạy test thử.

Mà cho mình hỏi 1 chút, bên bác là dùng query để chọc thẳng xuống data warehouse để lấy dữ liệu lên làm report à? Mình nghĩ người ta sẽ xây 1 cái cục semantic model (OLAP), data engineer người ta sẽ viết sẵn hết các công thức, lo sẵn hết các thể loại quan hệ giữa các bảng, chuyển đổi hết các term kĩ thuật thành từ ngữ ai cũng hiểu được. Còn người làm report chỉ việc lo dùng tool BI kéo thả, vẽ vời trình bày đồ họa thôi chứ nhỉ.

Với lại cho mình hỏi bên bác có xài Kafka à, bên bác dùng nó để làm cái gì vậy?

Hiện giờ thì use-case mình chỉ nghĩ được đến việc dùng nó để xử lý log trong hệ thống, mỗi lần hệ thống ghi log thì đồng thời cũng bắn tín hiệu đến cái Kafka, ghi đống lỗi đó vào 1 topic nào đó, từ đó có thể thống kê phân tích log theo real-time.
Reply With Quote
  #7  
Old 21-08-2019, 13:40
zzchaolegionzz's Avatar
zzchaolegionzz zzchaolegionzz is offline
Senior Member
 
Join Date: 12-2009
Posts: 355
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Uh, queery từ warehouse, dữ liệu ở đó ổn định rồi mà.
Còn Kafka là để nhận log, log về nhiều thì Kafka hứng log rồi các service pull xuống từ từ để lưu, nhằm đảm bảo không bị mất log.
Reply With Quote
  #8  
Old 22-08-2019, 10:22
RPG29's Avatar
RPG29 RPG29 is offline
Đã tốn tiền
 
Join Date: 07-2010
Posts: 1,690
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Có chỗ nào có thể học mấy cái này một cách bài bản không các bác? Như bên em toàn software engineer, toàn dev application chứ chẳng có ai có background data nên cũng phải toàn lò dò mò mẫm tự đi.

Hiện toàn tự mò tool opensource để giải quyết nhu cầu data BI, Suggestion/Recommendation, Personalization...

Integration, Event Stream thì Kafka
ETL thì Apache Nifi, StreamSets
Storage thì hầm bà lằng đủ thứ bên dưới như MariaDB, PostgreSQL, Elasticsearch, Druid...
Dashboard thì Metabase, SuperSet

Reply With Quote
  #9  
Old 22-08-2019, 18:30
thich.cafe thich.cafe is offline
Junior Member
 
Join Date: 09-2014
Posts: 20
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Làm data science nha bạn, mà qua mỹ dễ kiếm hơn
Reply With Quote
  #10  
Old 23-08-2019, 13:52
hninja222 hninja222 is offline
K.I.A
 
Join Date: 12-2010
Posts: 2,735
Re: Hướng đi nào cho Data Engineer, BI, Data Warehouse, Big Data.

Quote:
Originally Posted by zzchaolegionzz View Post
Uh, queery từ warehouse, dữ liệu ở đó ổn định rồi mà.
Còn Kafka là để nhận log, log về nhiều thì Kafka hứng log rồi các service pull xuống từ từ để lưu, nhằm đảm bảo không bị mất log.
Quote:
Originally Posted by RPG29 View Post
Có chỗ nào có thể học mấy cái này một cách bài bản không các bác? Như bên em toàn software engineer, toàn dev application chứ chẳng có ai có background data nên cũng phải toàn lò dò mò mẫm tự đi.

Hiện toàn tự mò tool opensource để giải quyết nhu cầu data BI, Suggestion/Recommendation, Personalization...

Integration, Event Stream thì Kafka
ETL thì Apache Nifi, StreamSets
Storage thì hầm bà lằng đủ thứ bên dưới như MariaDB, PostgreSQL, Elasticsearch, Druid...
Dashboard thì Metabase, SuperSet

Cho mình hỏi về cái Kafka 1 chút. Theo như mình hiểu thì cái Kafka này nó giống như 1 tòa soạn báo vậy, nhà báo (producer) đăng bài vào 1 mục (topic) và bạn đọc (consumer) sẽ check theo interval để để đọc báo (poll)....

Vậy thì cái Kafka này có gì khác với một cái database thông thường nhỉ. Người cần viết viết vào 1 cái DB nào đó, rồi người đọc kết nối vào DB đó để đọc? Khác nhau ở distributed computing chăng?

____________________

Chỗ học bài bản thì mình nghĩ không có đâu, ở đại học không biết thời bây giờ hoặc trường khác thế nào chứ bên mình (1 trường hạng xoàng ở SG) thì ngay cả ngành hệ thống thông tin đi chăng nữa thì cũng chủ yếu học về DB cho các hệ thống xử lý online thôi chứ không có Warehouse.

Mà mình nghĩ chứ thực ra thì được đào tạo cử nhân, kĩ sư khoa học máy tính đã có thể gọi là bài bản rồi, tuy ko đc đào tạo trực tiếp nhưng mindset thì đều ổn cả. Chứ Ralph Kimball (có thể coi là cha đẻ của Data Warehouse) thì bắt đầu cũng từ kĩ sư điện thôi.

Còn chứng chỉ ngoài thì mình thấy có Exam 70-767 của Microsoft, nhưng cái exam này có dạy ở VN không thì mình không chắc.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +7. The time now is 06:28.
Chịu trách nhiệm nội dung: Bạch Thành Trung © 2019 Công ty TNHH Thật Vi Diệu
ĐC tầng 4, số 6-8 Đường D2, Bình Thạnh, Hồ Chí Minh, Việt Nam - SĐT 0981323799 - MST 0313906593
Giấy phép thiết lập MXH số 334/GP-BTTTT, Ký ngày: 19/08/2019