TỔNG QUAN VỀ CÔNG TY VÀ VỊ TRÍ THỰC TẬP
Giới thiệu về doanh nghiệp thực tập
1.1.1 Công ty TMA Bình Định solution
Doanh nghiệp TMA Solution Bình Định thành lập năm 1997
Hình 1.1 Logo công ty TMA Solution
Công ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA) là một tập đoàn hàng đầu tại Việt Nam chuyên cung cấp dịch vụ phát triển phần mềm.
Với 25 năm phát triển vững mạnh, TMA đã xây dựng được một đội ngũ với hơn 4,000 kỹ sư tài năng, nhiệt huyết luôn nhận được sự đánh giá cao từ phía khách hàng, cùng chung tay xây dựng hình ảnh TMA - đối tác tin cậy trên bản đồ công nghệ thông tin toàn cầu TMA hiện có 7 chi nhánh tại Việt Nam (6 tại TP Hồ Chí Minh và 1 ở TP Quy Nhơn) cùng với 6 văn phòng ở nước ngoài (Mỹ, Canada, Pháp, Nhật, Úc, Singapore)
TMA luôn chủ động điều chỉnh thu nhập và khen thưởng kịp thời cho những cá nhân xuất sắc, đồng thời đảm bảo các phúc lợi đi kèm.
- Cung cấp cho nhân viên đầy đủ các gói BHYT, BHXH
Chương trình Bảo hiểm chăm sóc sức khỏe toàn diện cung cấp mức bảo hiểm cao, giúp nhân viên dễ dàng tiếp cận khám chữa bệnh và sử dụng dịch vụ y tế tại các bệnh viện uy tín.
- Chính sách cho vay tiền không lãi suất, không thế chấp để chia sẻ với nhân viên nỗi lo về tài chính
Quỹ từ thiện “Khát vọng TMA” đã được thành lập với số vốn ban đầu là 1 tỷ đồng, nhằm cung cấp hỗ trợ tài chính kịp thời cho các nhân viên và những người có hoàn cảnh khó khăn trên toàn quốc.
Quỹ Team Building hàng năm hỗ trợ các hoạt động ngoại khóa cho nhân viên, đồng thời Quỹ khen thưởng TMA Quarterly Star Performer ghi nhận những nhân viên xuất sắc với tổng giá trị lên đến 1 tỷ đồng mỗi năm.
Hình 1.2 Cơ cấu tổ chức công ty
- Chủ tịch: TS Nguyễn Hữu Lệ
- Giám đốc điều hành: Bà Ánh Bùi
- Giám đốc cấp cao, phát triển doanh nghiệp: Tiến sĩ Quang Bùi
- Phó tổng giám đốc, giám đốc tài chính: Bà Dương Phạm
- Phó giám đốc nhân sự và hành chính: Bà Uyên Phạm
- Phó giám đốc phát triển kinh doanh: Ông Hồng Trần
Tổng quan về vị trí việc làm Data Engineering
1.2.1 Yêu cầu về kiến thức và kỹ năng
Kỹ năng lập trình: Yêu cầu đối với Data Engineer là cần biết về SQL, Python,
Kỹ sư dữ liệu thường xuyên làm việc với cơ sở dữ liệu SQL để thiết lập, truy vấn và quản lý hệ thống cơ sở dữ liệu hiệu quả.
Kỹ sư dữ liệu thường sử dụng Python để phát triển các khuôn khổ ETL, tương tác với API, tự động hóa quy trình và thực hiện các tác vụ kết hợp dữ liệu như định hình lại, tổng hợp và kết hợp nhiều nguồn dữ liệu khác nhau.
Scala là ngôn ngữ lập trình phổ biến trong lĩnh vực Data Engineering, đặc biệt khi làm việc với công cụ Spark Spark, một trong những công cụ được ưa chuộng nhất trong ngành, được phát triển bằng Scala, nên việc học ngôn ngữ này sẽ rất hữu ích cho những ai tham gia vào các dự án liên quan đến Spark Scala cũng được xem như một phần mở rộng của Java, mang lại nhiều tính năng mạnh mẽ cho các nhà phát triển.
Kỹ năng phân tích logic
Kỹ năng phân tích logic là yếu tố quan trọng trong các công việc yêu cầu sự chính xác và tính liên kết Data Engineer cần có khả năng phân tích và hiểu ý nghĩa của các con số cùng dữ liệu khô khan Nhờ vào đó, công ty có thể nhận diện vấn đề và tìm ra giải pháp phù hợp.
Kỹ năng thiết kế và trình bày báo cáo
Sau khi hoàn thành phân tích, bạn cần thu thập dữ liệu và lập báo cáo để trình bày lên cấp trên Thiết kế và trình bày báo cáo nên rõ ràng, dễ hiểu để dễ dàng so sánh và đưa ra nhận định Để công việc thuận lợi hơn, bạn có thể tự học hỏi và tìm hiểu thêm các công cụ hỗ trợ thiết kế báo cáo.
Kỹ năng về lưu trữ cơ sở dữ liệu
Không phải tất cả dữ liệu đều phù hợp với một phương pháp lưu trữ duy nhất, đặc biệt trong bối cảnh dữ liệu lớn Khi thiết kế giải pháp dữ liệu cho doanh nghiệp, việc lựa chọn giữa hồ dữ liệu và kho dữ liệu là rất quan trọng.
Công cụ dữ liệu lớn:
Data Engineer không chỉ làm việc với dữ liệu thông thường mà còn quản lý dữ liệu lớn Các công cụ và công nghệ trong lĩnh vực này đang phát triển và thay đổi theo từng công ty, với một số công cụ phổ biến như Hadoop, MongoDB và Kafka Điện toán đám mây cũng đóng vai trò quan trọng trong việc tối ưu hóa quy trình xử lý dữ liệu.
Hiểu về lưu trữ đám mây và điện toán đám mây khi các công ty ưu chuộng các dịch vụ này Dịch vụ Web Amazon (AWS) hoặc Google Cloud
1.2.2 Những công việc cần làm
Kỹ sư dữ liệu có trách nhiệm thu thập dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu, tệp tin, nền tảng mạng xã hội và thiết bị IoT, để đưa vào hệ thống phục vụ cho các mục đích sử dụng sau này.
Kỹ sư dữ liệu có nhiệm vụ xử lý dữ liệu nhằm đảm bảo tính toàn vẹn và độ chính xác của thông tin Công việc này bao gồm kiểm tra dữ liệu, loại bỏ dữ liệu trùng lặp và chuyển đổi định dạng dữ liệu.
Kỹ sư dữ liệu cần quản lý lưu trữ dữ liệu và thiết kế cấu trúc lưu trữ hợp lý nhằm đảm bảo tính bảo mật và khả năng truy xuất dữ liệu dễ dàng.
Kỹ sư dữ liệu cần phát triển hệ thống xử lý dữ liệu hiệu quả để quản lý và lưu trữ thông tin Hệ thống này có thể tích hợp các công nghệ như Big Data và các giải pháp xử lý dữ liệu theo thời gian thực.
Để tối ưu hóa hiệu suất hệ thống, data engineer cần đảm bảo các công việc xử lý dữ liệu diễn ra nhanh chóng và hiệu quả Bên cạnh đó, việc bảo mật dữ liệu cũng rất quan trọng, đòi hỏi data engineer thiết kế hệ thống bảo mật và giám sát chặt chẽ các hoạt động truy cập dữ liệu.
Kỹ sư dữ liệu cần hỗ trợ các nhóm khác trong việc sử dụng và xử lý dữ liệu, bao gồm các nhóm như nhà khoa học dữ liệu, phân tích viên kinh doanh và quản lý dữ liệu.
Junior Data Engineer: Vị trí gần như đầu tiên khi bắt đầu với công việc DE Một
Junior thường sẽ làm những công việc xung quanh quá trình sửa lỗi, thực hiện đơn giản cho các dự án
Kỹ sư dữ liệu cấp trung sẽ đảm nhận vai trò định hướng nhiệm vụ cho các nhân viên cấp thấp hơn, đồng thời thực hiện những yêu cầu công việc phức tạp hơn.
Kỹ sư cấp trung sẽ bắt đầu đảm nhận vai trò quản lý dự án và tăng cường sự chủ động trong công việc Họ cũng sẽ hợp tác với các bộ phận khác như Product Manager và Data Scientist Giai đoạn Mid-Level thường kéo dài từ 3 đến 5 năm.
CƠ SỞ LÝ THUYẾT
Data warehouse ,Data lake, Lake House
Hình 2.1 Kiến trúc WareHouse, Data lake ,Lake house
Kho dữ liệu là một tập hợp các phương pháp, kỹ thuật và công cụ nhằm cung cấp thông tin cho người dùng thông qua việc tích hợp dữ liệu từ nhiều nguồn và môi trường khác nhau Đặc tính ACID của kho dữ liệu đảm bảo tính toàn vẹn của dữ liệu.
Tính nguyên tử (Atomicity) đảm bảo rằng một giao dịch phải được thực hiện hoàn toàn hoặc không Trong kho dữ liệu (DW), thay vì xử lý từng giao dịch riêng lẻ, dữ liệu được xử lý thông qua quy trình ETL (Extract, Transform, Load) hoặc ELT (Extract, Load, Transform) theo hình thức hàng loạt Vì vậy, khái niệm tính nguyên tử không áp dụng trực tiếp cho kho dữ liệu.
Tính nhất quán trong kho dữ liệu (DW) là yếu tố quan trọng, vì DW thường chứa dữ liệu từ nhiều nguồn khác nhau phục vụ cho phân tích kinh doanh Trong quá trình ETL/ELT, dữ liệu từ các nguồn được chuyển đổi và hợp nhất để đảm bảo tính nhất quán Tuy nhiên, cần lưu ý rằng DW không đảm bảo tính nhất quán ngay lập tức sau mỗi giao dịch, mà thường được cập nhật theo lịch trình định sẵn.
Tính cô lập trong giao dịch đảm bảo rằng các giao dịch không ảnh hưởng lẫn nhau Trong môi trường kho dữ liệu (DW), khái niệm này không được áp dụng một cách trực tiếp, vì quá trình ETL/ELT thường diễn ra theo hàng loạt và không tương tác trực tiếp với người dùng cuối.
Tính bền vững của dữ liệu đảm bảo rằng thông tin được lưu trữ sẽ không bị mất sau khi giao dịch hoàn tất Hệ thống lưu trữ dữ liệu trong kho dữ liệu (DW) thường sử dụng các cơ sở dữ liệu hoặc hệ thống tệp tin có độ bền cao Để duy trì tính bền vững, dữ liệu trong DW được sao lưu và bảo trì định kỳ.
Trong Data Warehouse (DW), tính toàn vẹn của dữ liệu được duy trì thông qua quy trình ETL/ELT và các biện pháp bảo mật dữ liệu, mà không phụ thuộc vào các đặc tính ACID truyền thống như trong các hệ thống cơ sở dữ liệu giao dịch.
ETL (Extract, Transform, Load) là một bước quan trọng trong việc xây dựng kho dữ liệu, giúp sao chép dữ liệu từ nhiều nguồn khác nhau vào hệ thống đích, đảm bảo dữ liệu trong kho khác biệt với nguồn gốc ban đầu.
Quy trình triển khai Bao gồm 3 bước chính là trích xuất dữ liệu (Extraction); Chuyển đổi dữ liệu (Transformation); Nạp dữ liệu vào kho dữ liệu (Loading)
Trích xuất dữ liệu là quá trình thu thập thông tin từ cơ sở dữ liệu, thường từ nhiều nguồn khác nhau Việc trích xuất cần xác định rõ nội dung cần trích, vị trí trích, đối tượng sử dụng và mục đích sử dụng dữ liệu Ví dụ, có thể trích xuất dữ liệu trong 3 năm gần nhất liên quan đến 3 cột thông tin về bán hàng Để thực hiện quá trình này, cần có yêu cầu phân tích cụ thể.
Biến đổi dữ liệu là quá trình chuyển đổi thông tin từ biểu mẫu này sang biểu mẫu khác, nhằm đưa vào cơ sở dữ liệu khác Quá trình này thực hiện thông qua các quy tắc, bảng tra cứu hoặc kết hợp với dữ liệu khác Ngoài ra, việc tính toán thêm các cột, làm sạch và chuyển đổi dữ liệu cũng rất quan trọng Cần xác định rõ nội dung cần chuyển đổi, lý do chuyển đổi, đối tượng nhận dữ liệu và mục đích sử dụng dữ liệu sau khi biến đổi.
Quá trình Load/Tải là việc ghi chép dữ liệu vào cơ sở dữ liệu đích, bao gồm các yếu tố như địa điểm lưu trữ, phương thức lưu trữ, khả năng lưu trữ, và cách thức thực hiện load Bên cạnh đó, việc tạo index cũng là một yếu tố quan trọng cần xem xét trong quá trình này.
ETL (Extract, Transform, Load) ELT (Extract, Load, Transform)
Làm sạch dữ liệu, sau đó mới thực hiện quá trình transform rồi mới load vào
Làm sạch dữ liệu, làm giàu, load dữ liệu vào data lake xong mới transform (nhược điểm là có thể public dữ liệu không cần thiết ra)
Transform tất cả dữ liệu vào DW Thực hiện transform khi cần
- Thời gian load vào DW lâu hơn (vì thực hiện transform trước)
- Phân tích dữ liệu nhanh hơn
(dữ liệu đã sạch rồi nên lấy ra và phân tích nhanh hơn)
- Thời gian load vào nhanh hơn
- Phân tích lâu hơn (muốn phân tích phải transform)
Không thể dùng cho việc transform các dữ liệu không cấu trúc và lưu vào
Có thể load tất cả dữ liệu không có cấu trúc vào Data Lake, ta có thể dùng chúng để phân tích
Bảng 2.1 So sánh ETL và ELT
Data lake là hệ thống lưu trữ cho phép tổ chức lưu trữ lượng lớn dữ liệu không cấu trúc, bán cấu trúc và cấu trúc dưới định dạng nguyên thủy Khác với kho dữ liệu (data warehouse) chỉ lưu trữ dữ liệu có cấu trúc với lược đồ định nghĩa trước, data lake có khả năng lưu trữ mọi loại dữ liệu, bao gồm dữ liệu nguyên thủy từ nhiều nguồn như mạng xã hội, cảm biến và tệp nhật ký.
Data lake là giải pháp lưu trữ dữ liệu linh hoạt, mở rộng và tiết kiệm chi phí, cho phép lưu trữ dữ liệu ở nhiều định dạng khác nhau như văn bản, hình ảnh, video và âm thanh Thường được triển khai trên hệ thống tệp phân tán Hadoop (HDFS) hoặc lưu trữ đối tượng đám mây như Amazon S3, Microsoft Azure Blob Storage và Google Cloud Storage, data lake giúp tổ chức quản lý và phân tích dữ liệu hiệu quả.
Data lake áp dụng phương pháp schema-on-read, cho phép dữ liệu không được cấu trúc cho đến khi được truy cập bởi người dùng hoặc ứng dụng Điều này mang lại sự linh hoạt trong việc xử lý và phân tích dữ liệu, giúp người dùng có thể khai thác thông tin theo nhu cầu cụ thể của họ.
DataLake house là kiến trúc quản lý dữ liệu mở, cho phép lưu trữ linh hoạt dữ liệu không cấu trúc, bán cấu trúc và có cấu trúc từ nhiều nguồn khác nhau Kiến trúc này sử dụng Delta Lake để quản lý dữ liệu và đảm bảo các giao dịch ACID.
Data lake house cung cấp cho các nhà phát triển và quản lý dữ liệu khả năng truy cập nhanh chóng và hiệu quả vào dữ liệu Đồng thời, nó mang lại cho các chuyên gia phân tích và khoa học dữ liệu sự linh hoạt trong việc khám phá, khai thác và phân tích dữ liệu.
Apache Spark
Apache Spark là một framework mã nguồn mở do Apache Software Foundation phát triển, chuyên dùng để xử lý dữ liệu lớn (big data) Nó cung cấp môi trường tính toán phân tán, được tối ưu hóa để xử lý các tập dữ liệu lớn trên một cụm máy tính.
Spark Core là thành phần chính của Spark, cung cấp các tính năng cơ bản như xử lý dữ liệu phân tán, quản lý bộ nhớ, lập lịch và phân phối tác vụ.
- Spark SQL: cung cấp các công cụ để truy vấn dữ liệu bằng SQL trên các tập dữ liệu có cấu trúc
- Spark Streaming: cung cấp khả năng xử lý dữ liệu dòng (streaming data) trong thời gian thực
- Spark MLlib: là thư viện học máy tích hợp sẵn trong Spark để xây dựng các mô hình học máy trên dữ liệu lớn
- GraphX: cung cấp các công cụ để xử lý dữ liệu đồ thị lớn
PySpark là thư viện Spark cho phép lập trình viên sử dụng Python để phát triển các ứng dụng khai thác sức mạnh của Apache Spark Với PySpark, người dùng có khả năng thực thi các ứng dụng Python một cách song song trên các cụm phân tán, giúp tối ưu hóa hiệu suất xử lý dữ liệu trên nhiều nút.
Pyspark hỗ trợ nhiều ngôn ngữ lập trình như Scala, Java và R, giúp tăng cường tính linh hoạt cho người dùng Được thiết kế để tương thích với các công nghệ lưu trữ dữ liệu phổ biến như Hadoop Distributed File System (HDFS), Apache Cassandra và Amazon S3, Pyspark trở thành một công cụ mạnh mẽ cho việc xử lý và phân tích dữ liệu lớn.
Apache Spark là một công cụ xử lý phân tích cho các ứng dụng máy học và xử lý dữ liệu phân tán mạnh mẽ quy mô lớn
PySpark là công cụ phổ biến trong cộng đồng khoa học dữ liệu và máy học, nhờ vào sự hỗ trợ từ các thư viện máy học Python phong phú Nó cho phép thực hiện các tác vụ trên hàng tỷ dữ liệu trong các cụm phân tán với tốc độ nhanh hơn 100 lần so với các ứng dụng Python truyền thống.
2.3 Medallion Architecture and data Change Feed
Hình 2.2 Kiến trúc Medallion Architecture
Lớp Đồng đóng vai trò quan trọng trong việc thu thập dữ liệu từ các hệ thống nguồn bên ngoài, với cấu trúc bảng tương ứng với hệ thống nguồn "nguyên trạng" Bảng này bao gồm các cột siêu dữ liệu bổ sung như ngày/giờ tải và ID quy trình Mục tiêu chính của lớp này là thu thập dữ liệu thay đổi nhanh chóng, cung cấp kho lưu trữ lịch sử của nguồn, dòng dữ liệu, và khả năng kiểm tra, xử lý lại khi cần mà không phải đọc lại dữ liệu.
2.3.2 Silver layer (cleansed and conformed data)
Trong lớp Silver của lakehouse, dữ liệu từ lớp Đồng được xử lý để đảm bảo tính nhất quán và chính xác, nhằm tạo ra "Chế độ xem doanh nghiệp" tổng quát về các thực thể kinh doanh quan trọng như khách hàng, cửa hàng và giao dịch không trùng lặp Lớp này cũng bao gồm các bảng tham chiếu chéo, giúp người dùng dễ dàng truy cập và phân tích thông tin.
Lớp Silver tích hợp dữ liệu từ nhiều nguồn vào chế độ xem Doanh nghiệp, hỗ trợ phân tích tự phục vụ cho báo cáo đặc biệt, phân tích nâng cao và machine learning Nó cung cấp nguồn dữ liệu quan trọng cho các Nhà phân tích, Kỹ sư dữ liệu và Nhà khoa học dữ liệu trong Bộ phận, giúp họ phát triển các dự án và phân tích nhằm giải quyết các vấn đề kinh doanh thông qua các dự án dữ liệu trong Lớp Gold.
2.3.3 Gold layer (curated business-level tables)
Lớp Gold trong lakehouse tổ chức dữ liệu trong cơ sở dữ liệu "dành riêng cho dự án" để sử dụng hiệu quả Đây là lớp dành cho báo cáo và các mô hình dữ liệu tối ưu hóa đọc với cấu trúc không chuẩn hóa và ít kết nối Tại đây, các quy tắc chuyển đổi và chất lượng dữ liệu được áp dụng cuối cùng Các dự án như Phân tích khách hàng, Phân tích chất lượng sản phẩm, và Phân tích hàng tồn kho phù hợp với lớp này Nhiều mô hình dữ liệu theo lược đồ ngôi sao Kimball hoặc Data mart Inmon cũng được áp dụng trong Lớp Gold của nhà hồ.
Giới thiệu về Microsoft Azure
Azure là nền tảng điện toán đám mây của Microsoft, cung cấp cổng trực tuyến cho phép người dùng truy cập và quản lý các dịch vụ và tài nguyên đám mây Nền tảng này hỗ trợ lưu trữ và chuyển đổi dữ liệu theo nhu cầu của người dùng Để sử dụng các dịch vụ này, bạn chỉ cần có kết nối internet và truy cập vào Azure portal.
2.4.2 Các dịch vụ Azure cung cấp
Azure offers over 200 services categorized into 18 areas, including computing, networking, storage, IoT, migration, mobile, analytics, containers, artificial intelligence, machine learning, integration, management tools, developer tools, security, databases, DevOps, media identity, and web services Key Azure services are organized by these categories.
Virtual Machine: Dịch vụ này cho phép bạn tạo một máy ảo trong Windows, Linux hoặc bất kỳ cấu hình nào khác trong vài giây
Dịch vụ Cloud Service cho phép bạn phát triển các ứng dụng có khả năng mở rộng trong môi trường đám mây Khi ứng dụng được triển khai, Azure sẽ tự động quản lý mọi khía cạnh, bao gồm cân bằng tải và giám sát sức khỏe hệ thống.
Service Fabric giúp đơn giản hóa quá trình phát triển microservices, cho phép các ứng dụng nhỏ hơn được đóng gói trong một ứng dụng lớn hơn.
Với Azure Functions, bạn có thể phát triển ứng dụng bằng bất kỳ ngôn ngữ lập trình nào mà không cần lo lắng về yêu cầu phần cứng, vì Azure sẽ đảm nhiệm việc này Tất cả những gì bạn cần làm là tập trung vào việc viết mã cho ứng dụng của mình.
Azure CDN (Mạng phân phối nội dung của Azure) cung cấp nội dung cho người dùng với băng thông cao, cho phép chuyển giao dữ liệu nhanh chóng đến mọi người trên toàn cầu Dịch vụ này sử dụng một mạng lưới máy chủ được phân bố chiến lược trên khắp thế giới, giúp người dùng truy cập thông tin một cách nhanh nhất.
Dịch vụ Express Route cho phép bạn thiết lập kết nối riêng tư giữa mạng on-premises và đám mây Microsoft hoặc bất kỳ dịch vụ nào khác mà bạn mong muốn, mang lại sự an toàn và hiệu suất cao cho việc truyền tải dữ liệu.
Virtual network: Mạng ảo cho phép bạn có bất kỳ dịch vụ Azure nào giao tiếp với nhau một cách riêng tư và an toàn
Azure DNS: Dịch vụ này cho phép bạn lưu trữ các DNS domain hoặc system domain trên Azure
Disk Storage: Dịch vụ này cho phép bạn chọn từ HDD hoặc SSD làm tùy chọn lưu trữ cùng với máy ảo của bạn
Blob Storage là dịch vụ được thiết kế đặc biệt để lưu trữ khối lượng lớn dữ liệu phi cấu trúc, bao gồm văn bản và dữ liệu nhị phân.
File Storage: Đây là dịch vụ lưu trữ tệp được quản lý có thể được truy cập thông qua SMB (server message block) protocol
Queue Storage: Với dịch vụ này, bạn có thể cung cấp xếp hàng chờ cho tin nhắn
(message queuing) ổn định cho một khối lượng công việc (workload) lớn Dịch vụ này có thể được truy cập từ mọi nơi trên thế giới
Các dịch vụ demo
Storage Azure Blob là giải pháp lưu trữ đối tượng của Microsoft dành cho đám mây, được thiết kế đặc biệt để lưu trữ một khối lượng lớn dữ liệu phi cấu trúc Dữ liệu phi cấu trúc không tuân theo mô hình hay định nghĩa cụ thể nào, bao gồm các loại dữ liệu như văn bản và dữ liệu nhị phân.
Hình 2.3 Blob storage a) Storage account
Storage Azure là một tài khoản lưu trữ, nơi chứa tất cả các đối tượng dữ liệu như blob, files, queues, table và disks Dữ liệu trong tài khoản này có thể được truy cập từ mọi nơi trên thế giới qua HTTP hoặc HTTPS Với tính bền vững, khả năng sẵn sàng cao, bảo mật và khả năng mở rộng lớn, Storage Azure đáp ứng nhu cầu lưu trữ dữ liệu hiệu quả.
General-purpose v2 accounts are a fundamental type of storage account designed for blobs, files, queues, and tables, making them suitable for most Azure Storage use cases.
General-purpose v1 accounts are designed to extend functionality for purpose v2 accounts, while BlockBlobStorage accounts provide high-performance storage specifically for block blobs and append blobs.
FileStorage accounts: tài khoản lưu trữ chỉ dành cho file có hiệu suất cao
BlobStorage accounts b) Container trong Storage account
Một tài khoản lưu trữ trong Azure cho phép tạo ra không giới hạn số lượng container, mỗi container có khả năng lưu trữ không giới hạn số lượng blob Azure hỗ trợ ba loại blob khác nhau, giúp người dùng linh hoạt trong việc quản lý và lưu trữ dữ liệu.
Block blobs: lưu trữ dữ liệu dạng text và dữ liệu nhị phân
Append blobs: lý tưởng cho việc ghi dữ liệu từ máy ảo
Microsoft Azure Key Vault là dịch vụ bảo mật đám mây của Microsoft, cung cấp giải pháp lưu trữ an toàn và tập trung cho các khóa và bí mật mật mã Dịch vụ này cho phép người dùng quản lý mật khẩu, chứng chỉ và các khóa mã hóa một cách hiệu quả.
Cả ứng dụng và Microsoft đều không có quyền truy cập trực tiếp vào khóa, mà người dùng phải tự cấp quyền cho các ứng dụng của mình và của bên thứ ba để sử dụng các khóa khi cần thiết.
Lợi ích của việc sử dụng Azure Key Vault để quản lý các “Key”
Azure Key Vault cung cấp một giải pháp lưu trữ tập trung và an toàn cho các thông tin nhạy cảm như mật khẩu, chứng chỉ và khóa mã hóa Việc sử dụng Azure Key Vault giúp giảm thiểu nguy cơ vi phạm dữ liệu, đồng thời bảo vệ tính bảo mật của hệ thống và dữ liệu quan trọng.
Azure Key Vault cung cấp tính năng bảo vệ nâng cao cho các dịch vụ Azure khác, giúp tổ chức giảm thiểu nguy cơ vi phạm dữ liệu và nâng cao bảo mật cho các tài nguyên đám mây của mình.
Dịch vụ dữ liệu và AI của Databricks được cung cấp trên nền tảng Microsoft Azure, cho phép bạn lưu trữ toàn bộ dữ liệu trong một hồ chứa mở, đồng thời tích hợp tất cả các khối lượng công việc phân tích và AI một cách đơn giản và hiệu quả.
Azure Databricks được tối ưu hóa cho Azure, tích hợp chặt chẽ với Azure Data Lake Storage, Azure Data Factory, Azure Synapse Analytics, Power BI và các dịch vụ Azure khác, giúp lưu trữ dữ liệu trên một hồ chứa mở Điều này đơn giản hóa và hợp nhất mọi khối lượng công việc phân tích và AI của bạn, mang lại hiệu quả vượt trội.
Hiệu suất gấp 50 lần cho khối lượng công việc Apache Spark
Hàng triệu giờ máy chủ mỗi ngày
ADF không lưu trữ dữ liệu mà cho phép tạo quy trình công việc dựa trên dữ liệu để điều phối di chuyển dữ liệu giữa các kho dữ liệu hỗ trợ Sau đó, nó xử lý dữ liệu bằng các dịch vụ điện toán ở các khu vực khác hoặc trong môi trường tại chỗ Ngoài ra, ADF còn cung cấp khả năng theo dõi và quản lý quy trình công việc thông qua cả lập trình và giao diện người dùng.
Dịch vụ Data Factory cho phép người dùng tạo và quản lý các đường ống dữ liệu để di chuyển và chuyển đổi dữ liệu một cách hiệu quả Người dùng có thể thiết lập lịch trình chạy các đường ống này theo các khoảng thời gian cụ thể như hàng giờ, hàng ngày hoặc hàng tuần Điều này đảm bảo rằng dữ liệu được sử dụng và tạo ra bởi quy trình làm việc luôn được cập nhật theo thời gian, với khả năng chỉ định chế độ quy trình theo lịch trình hoặc thực hiện một lần duy nhất.
Hỗ trợ di chuyển dữ liệu
Nhận dữ liệu từ máy chủ của khách hàng hoặc dữ liệu trực tuyến tới Hồ dữ liệu Azure
Thực hiện các quy trình tích hợp dữ liệu khác nhau
Tích hợp dữ liệu từ các hệ thống ERP khác nhau và tải dữ liệu vào Azure Synapse để báo cáo
Tổng quan về hệ thống xử lý dữ liệu trên Microsoft azure
Tổng quan về xây dựng hệ thống
Hệ thống xử lý và lưu trữ dữ liệu tự động được phát triển trên nền tảng Cloud MicroSoft Azure, nhằm giải quyết nhu cầu tải lên và cập nhật dữ liệu một cách thường xuyên Hệ thống này sử dụng các Pipeline được thiết kế sẵn để tự động hóa quy trình, giúp người dùng dễ dàng thêm mới hoặc cập nhật dữ liệu.
Khi có dữ liệu mới, các trigger tự động kích hoạt các Pipeline đã được thiết kế sẵn để xử lý dữ liệu qua từng lớp Tại lớp Bronze_Processing, hệ thống sẽ tiếp nhận dữ liệu tải lên từ người dùng và lưu trữ vào lớp Bronze Tiếp theo, tại Silver_Processing, dữ liệu từ lớp Bronze sẽ được truy cập, xử lý và làm sạch trước khi lưu vào lớp Silver Dữ liệu mới khi tải lên sẽ được kết hợp với dữ liệu cũ để cập nhật (thêm, xóa, cập nhật) thông tin trong các lớp lưu trữ Hệ thống cũng cho phép truy xuất và phục hồi các phiên bản trong lịch sử nhờ vào tính năng “ChangeDataFeed” được áp dụng trong quá trình thiết kế.
Quá trình truy cập vào các kho lưu trữ đảm bảo tính bảo mật dữ liệu thông qua việc sử dụng keyvault Mật khẩu được mã hóa để sử dụng, tránh việc hiển thị trực tiếp các mật khẩu trong quá trình truy cập các Storage.
Hình 3.1 Tổng quan về Pipeline
Quy trình xử lý của hệ thống
3.2.1 Kích hoạt Trigger tự động: Để kích hoạt trigger thì người dùng chỉ tải dữ liệu mới được thu thập trong quá trình hoạt động thường ngày của các bộ phận trong doanh nghiệp lên storage (Data Lake) của hệ thống, ngay lập tức trigger tự động sẽ kích hoạt quá trình xử lý, truy cập và lấy dữ liệu mới tải lên đưa dữ liệu qua các Pipeline tương ứng đã được xây dựng sẵn để xử lý và lưu trữ tại StorageLevel-02( Lake House)
3.2.2 Xử lý dữ liệu qua các databricks trong pipeline:
Tại Bronze_Processing: Sẽ sử dụng keyvault chứa key đã được mã hóa của
StorageLevel-01 (Data Lake) cho phép truy cập và tải dữ liệu mới cập nhật vào hệ thống để xử lý Dữ liệu sau đó sẽ được lưu trữ tại StorageLevel-02 (Lake House) ở lớp Bronze dưới dạng delta, với tính năng “DataChangeFeed” được kích hoạt, giúp truy xuất lịch sử phiên bản của dữ liệu.
Tại lớp Bronze_Processing, hệ thống sẽ sử dụng keyvault chứa khóa của StorageLevel-02 để truy cập và lấy các phiên bản dữ liệu từ lớp Bronze Tính năng history của Data Change Feed sẽ được áp dụng để lấy phiên bản mới nhất trong lớp Bronze, sau đó chuyển đến hàm xử lý Silver_Processing Sau khi dữ liệu được xử lý, chúng sẽ được hợp nhất và lưu trữ vào lớp Silver, nơi dữ liệu đã được làm sạch và cập nhật với nguồn dữ liệu cũ, sẵn sàng cho quá trình phân tích.
3.2.3 Kết thúc quy trình xử lý và lặp lại nếu người dùng tiếp tục tải dữ liệu lên
Dữ liệu sau khi đi qua các luồng xử lý sẽ được sử dụng cho quá trình phân tích và xây dựng các mô hình ML và Dashboard
Quy trình sau khi nếu tiếp tục upload dữ liệu mới lên:
Khi dữ liệu mới được thêm vào storage_level-1, hệ thống sẽ tự động kích hoạt trigger để xử lý dữ liệu mới Sau đó, dữ liệu cũ đã được xử lý sẽ được kết hợp với dữ liệu mới thành một tập dữ liệu hoàn chỉnh Tập dữ liệu này sẽ tiếp tục được lưu trữ vào các storage tương ứng, nhằm đảm bảo hiệu suất truy vấn tối ưu cho tệp dữ liệu mới ngay sau khi tải lên.
3.2.4 Công nghệ được sử dụng
Trên nền tảng Azure Microsoft: Strange Account, DataFactory, DataBricks, Key Vault, power BI
Công nghệ : Delta Lake, Data lake, Data Change Feed
Ngôn ngữ lập trình: Scala Spark, SQL
Tính năng của lakehouse và Delta Lake trong quá trình xử lý dữ liệu21 3.4 Mô tả về bộ dữ liệu dùng để Demo cho hệ thống
1 ACID Transaction: Hỗ trợ ACID transaction, đảm bảo tính toàn vẹn và nhất quán của dữ liệu
Acomcity hoạt động dựa trên nguyên tắc giao dịch nguyên tử, nghĩa là một giao dịch sẽ được thực hiện hoàn toàn hoặc không thực hiện Nếu trong quá trình xử lý xảy ra lỗi ở bất kỳ bước nào, giao dịch sẽ không hoàn thành và hệ thống sẽ quay trở lại trạng thái ban đầu.
Đảm bảo tính nhất quán của dữ liệu là yếu tố quan trọng trong quá trình giao dịch Nếu dữ liệu ở trạng thái hợp lệ trước khi giao dịch, thì sau khi giao dịch, dữ liệu cũng cần phải giữ được trạng thái hợp lệ.
Tính độc lập của giao dịch đảm bảo rằng khi một giao dịch đang được thực hiện, các giao dịch khác không thể can thiệp hoặc thực hiện song song Điều này giúp duy trì sự đối chiếu chính xác giữa các giao dịch và cung cấp thứ tự rõ ràng cho chúng, từ đó nâng cao tính toàn vẹn và đáng tin cậy trong quy trình giao dịch.
Tính bền vững là yếu tố quan trọng, đảm bảo rằng mọi giao dịch liên quan đến dữ liệu đều được ghi lại thành công, ngay cả khi xảy ra lỗi hệ thống.
2 Schema enforcement: xác định schema trong tập dữ liệu của mình, khi chúng ta có hoạt động thao tác thêm dữ liệu vào thì nó sẽ xem dữ liệu mới có phù hợp với cấu trúc schema đó không, nếu không thì từ chối và thông báo lỗi
3 Unified Bath & Streaming: cho phép người dùng làm việc với dữ liệu theo cả kiểu batch ( xử lý dữ liệu lớn và đồng bộ) và kiểu streaming (xử lý dữ liệu trực tuyến và không đồng bộ) mà không cần thay đổi cấu trúc lưu trữ hay code
Delta Lake cung cấp tính năng "Time travel", cho phép người dùng giữ lại lịch sử thay đổi của dữ liệu Nhờ vào tính năng này, bạn có thể dễ dàng truy cập và phục hồi bất kỳ phiên bản nào của dữ liệu từ quá khứ, giúp xem xét và khôi phục thông tin từ các phiên bản trước đó một cách hiệu quả.
3.4 Mô tả về bộ dữ liệu dùng để Demo cho hệ thống
Nguồn kaggle: https://www.kaggle.com/datasets/miclesve/datasetlaptop
Dataset về dữ liệu mua laptop của sinh viên năm 2020
Sheet 1( customer profile): 1101 dòng, 18 cột
Thông tin các cột của dữ liệu
NamHocThu Năm học hiện tại của sinh viên
ChuyenNganh Chuyên ngành học của sinh viên
NgheNghiepGiaDinh Nghề nghiệp của gia đình sinh viên
ChiTieuHangThang Số tiền chi tiêu hàng tháng của sinh viên
ThoiGianSuDung Thời gian sử dụng laptop
MucDichSuDungLaptop Các mục đích sử dụng laptop
Mức độ hài lòng của sinh viên đối với laptop đang sử dụng: 1 - Rất không hài lòng, 5 - Rất hài lòng
Các yếu tố cân nhắc khi chọn mua laptop theo mức độ:
Reference Kênh thông tin biết đến sản phẩm và cửa hàng
Bảng 3.1 Thông tin về bộ dữ liệu
Xây dựng hệ thống
Quy trình xây dựng
Quy trình xây dựng dữ liệu trên Microsoft Azure bao gồm năm bước chính: đầu tiên, tạo các tài khoản lưu trữ (Storage account) để lưu trữ dữ liệu; tiếp theo, thiết lập key vault để quản lý các khóa bảo mật; sau đó, xử lý dữ liệu bằng Databricks Azure; tiếp theo là sử dụng Data Factory để xây dựng pipeline; và cuối cùng, tạo Sql Server Azure để tải dữ liệu vào cơ sở dữ liệu và kết nối với Power BI trên Desktop nhằm trực quan hóa dữ liệu.
Hình 4.1 Tổng quát về resource group trên Azure
Create Storage Accounts at different levels, each containing Containers for data files In Storage-Level01, establish two containers, data-raw and data_log, corresponding to each data file (customers and sales).
Dữ liệu thô là những thông tin ban đầu được sử dụng trong quá trình đọc và xử lý dữ liệu lần đầu của hệ thống.
DataLog là quá trình ghi lại nhật ký thay đổi của dữ liệu trong suốt quá trình thu thập Nó bao gồm thông tin về kích thước dữ liệu, các sửa đổi, bổ sung hoặc cập nhật Dữ liệu này sẽ được đọc và xử lý cho các lần xử lý tiếp theo, đảm bảo tính chính xác và hiệu quả trong quản lý dữ liệu.
Trong StogareLevel-2 tạo các containers tương ứng để lưu các lớp dữ liệu sau xử lý gồm lớp Bronze và lớp Silver
Tạo Key Vault để lưu trữ và mã hóa các khóa của từng Storage, đảm bảo tính bảo mật khi truy cập và tải dữ liệu trên DataBricks mà không sử dụng khóa trực tiếp trong mã Mỗi Key Vault sẽ chứa các khóa của các Storage Account và được mã hóa bên trong để bảo vệ thông tin.
4.1.3 Xử lý bằng Databricks a) Lớp Bronze- Processing
Tạo Scope có đường dẫn của KeyVault đã tạo để tạo vùng truy cập đến chứa dữ liệu
Hình 4.5 Tạo scope trên databricks
Bước 2: Truy cập vào các StorageLevel_01
Sử dụng scope đã tạo cùng keyvault để cấp quyền truy cập data trong Storage
Hình 4.6 Sử dụng Scope truy cập vào các Storage
Bước 3: Tạo tham số để nhập tên file dữ liệu từ file mới nhất được tải lên nhằm kích hoạt trigger File mới nhất này sẽ được sử dụng để xử lý, không phải các file cũ đã được tải lên trước đó trong storage_level01.
Hình 4.7 Tạo tham số đầu vào cho file dữ liệu
Trong lần đầu đọc dữ liệu của hệ thống thì data sẽ được lấy từ container “Raw Data”
Hình 4.8 Đọc dữ liệu lần đầu
Trong các lần đọc và xử lý dữ liệu tiếp theo sẽ đọc dữ liệu log từ container “Data-log”
Hình 4.9 Đọc dữ liệu sau lần đầu tiên
Bước 4: Quy trình xử lý khi lưu dữ liệu vào Bronze
Khi lần đầu tiên xử lý Delta Table, đường dẫn lưu trữ lớp Bronze sẽ trống và không ở định dạng delta Nếu Delta Table với đường dẫn Bronze trả về Flash, dữ liệu mới đầu tiên sẽ được tải vào lớp Bronze, đồng thời kích hoạt Change Data Feed, cho phép sử dụng các tính năng truy cập các phiên bản lịch sử.
Trong các lần xử lý tiếp theo, khi Delta Table của Bronze được kích hoạt và trả về True, dữ liệu sẽ được lấy từ data-log để tiến hành merge dữ liệu mới vào bảng dữ liệu của Bronze theo các điều kiện đã được xác định trong data-log Nếu 'Operation' của nguồn dữ liệu mới là delete, hệ thống sẽ xóa dòng tương ứng Đối với các trường hợp update, dữ liệu sẽ được cập nhật lại Còn đối với insert, các hàng mới sẽ được thêm vào dữ liệu cũ.
Giải thích về cột Operation: Trong các file mới được update sẽ có thêm cột
Để thực hiện điều kiện merge, các thao tác có thể là xóa (delete) hoặc thêm (insert) dữ liệu, và điều này được ghi lại trong file log File log này được thu thập trong quá trình hoạt động của khách hàng và chứa thông tin cần thiết để cập nhật lại hệ thống.
Hình 4.10 Lưu dữ liệu vào lớp Bronze b) Silver- Processing
Bước 1: Tương tự ở Bronze_Processing, cũng sẽ tạo Scope để có thể truy cập vào lớp dữ liệu được lưu ở lớp Bronze
Để đảm bảo tính bảo mật, bước 2 yêu cầu bạn truy cập và tải dữ liệu từ đường dẫn trong vùng truy cập scope và keyvault vừa tạo Sử dụng keyvault giúp mã hóa key, tránh việc sử dụng key trực tiếp trong mã nguồn.
Hình 4.12 Sử dụng scope và keyvault truy cập vào Storage
Bước 3: Tạo hàm làm sạch dữ liệu
Hàm làm sạch dữ liệu bao gồm tất cả các quy trình xử lý thô như xử lý giá trị null, loại bỏ giá trị trùng lặp, kiểm tra schema và sửa các lỗi trong tập dữ liệu Việc sử dụng hàm này là cần thiết để đảm bảo dữ liệu được chuẩn bị kỹ lưỡng trước khi đưa vào lớp Silver.
Bước 4: Xây dựng quy trình tải dữ liệu thô từ lớp Bronze, sau đó tiến hành làm sạch và lưu vào lớp Silver Khi lần đầu tải dữ liệu lên lớp Silver, định dạng chưa phải là Delta table; hệ thống sẽ đọc file dữ liệu thô từ lớp Bronze và sử dụng hàm xử lý để làm sạch Cuối cùng, dữ liệu đã được làm sạch sẽ được lưu dưới dạng Delta vào đường dẫn đã tạo và kích hoạt tính năng Change Data Feed.
Hình 4.13 Lưu dữ liệu vào silver ở lần đầu
Trong các lần tiếp theo, dữ liệu mới nhất sẽ được lấy từ lớp bronze thông qua tính năng history của change data feed mà tôi đã kích hoạt trong các lớp từ lần xử lý đầu tiên Sau đó, dữ liệu sẽ được xử lý để làm sạch và cuối cùng sẽ được kết hợp với bảng dữ liệu trong lớp Silver.
Hình 4.14 Xây dựng luồng dữ liệu trên Data Factory
4.1.4 Tạo SQL Server và database trên azure
4.1.5 Sử Data Factory xây dựng các đường ống xử lý dữ liệu theo quy trình
Xây dựng luồng dữ liệu trên Data Factory bắt đầu bằng việc kích hoạt trigger, sau đó dữ liệu sẽ được xử lý qua hai quy trình của Databricks: Bronze_Processing và Silver_Processing Sau khi hoàn tất, dữ liệu từ Silver_Processing sẽ được sao chép vào cơ sở dữ liệu đã liên kết Cuối cùng, chúng ta có thể sử dụng Power BI để trực quan hóa dữ liệu từ cơ sở dữ liệu này.
Hình 4.15 Xây dựng luồng dữ liệu trên Data Factory
− Tạo các đường liên kết dịch vụ với Storage Account, DataBricks, Azure SQL trên Pipeline
Để kích hoạt Trigger và xử lý file dữ liệu trên DataBricks, cần tạo các tham số cần thiết nhằm liên kết các file này khi được tải lên.
Kiểm tra và chạy thử hoạt động của hệ thống sau khi hoàn thành gồm trigger, pipeline và databricks
4.3.1 Lần chạy đầu tiên với rawdata a) Hoạt động của trigger và pipeline
Sau khi đẩy dữ liệu thô vào container Raw-data tiến hành vào “Monitor” của
“DataFactory” kiểm tra xem trigger và hoạt động của pipeline có diễn ra hay không Nếu trigger hoạt động, hệ thống sẽ xác minh xem pipeline có gặp lỗi trong quá trình chạy hay không Nếu không có lỗi, quá trình sẽ tiếp tục với lần chạy tiếp theo sử dụng các tệp dữ liệu data-log.
Trigger raw-customer chạy thành công
Hình 4.16 Hoạt động của trigger Raw
Hình 4.17 Pipeline chạy thành công b) Kiểm tra kết quả trả về của data bricks
Xem chi tiết kết quả thông qua link Output trả về
Hình 4.18 Xem kết quả trả về ua DataBricks
Kết quả cho thấy các tham số đã khớp với tệp dữ liệu raw-data đã tải lên để kích hoạt trigger Số lượng dòng dữ liệu được ghi vào hai lớp Bronze và Silver là 501 dòng.
Hình 4.19 Kết quả Bronze_Processing
Hình 4.20 Kết quả Silver_Processing
4.3.2 Lần chạy tiếp theo với các tệp data-log
After the initial step, we will download the data-log files, which may include operations such as insert, delete, and update In this demonstration, we will specifically download an insert data-log file containing a specified number of lines.
Trong lần kiểm tra này, chúng ta sẽ đánh giá hoạt động của trigger-log và pipeline, đồng thời xác minh xem kết quả trả về từ Databricks có phản ánh chính xác số dòng insert trong tệp data-log hay không.
Hình 4.21 Trigger-Log chạy thành công
Pipeline hoạt động thành công b) Kiểm tra kết quả trả về
According to the results from Databricks Parameters, the insert-log file shows an increase of 555 rows, up from the initial 501 rows in both the Bronze and Silver layers.
Hình 4.23 Xem kết quả ở Bronze_Processing Hình 4.22 Pipeline do trigger-log kích hoạt chạy thành công
Hình 4.24 Xem kết quả ở Silver_Processing
4.3.3 Cuối cùng kiểm tra dữ liệu sau khi được lưu vào cơ sở dữ liệu SQL server
Sau khi kiểm tra xong các chức năng của hệ thống sẽ kiểm tra dữ liệu cuối cùng được đưa vào trong Database để phân tích
Hình 4.25 Kiểm tra dữ liệu nạp vào Database
TẠO DASHBOARD BẰNG POWER BI
Tạo Dashboard bằng Power Bi
5.1.1 Liên kết dữ liệu trên SQL Azure Database vào PowerBi Desktop
Kết nối và thực hiện truy vấn trên cơ sở dữ liệu trong SQL Azure đã được thiết lập Tiến hành chọn các bảng dữ liệu cần phân tích Đảm bảo tính bảo mật cho server bằng cách yêu cầu cung cấp địa chỉ IP cho tất cả các kết nối mạng muốn truy cập vào server.
Hình 5.1 Cung cấp địa chỉ IP của máy cho networking server
Hình 5.2 LIên kết dữ liệu DataBase với PowerBI
Tạo Dashboard
Dashboard cung cấp cái nhìn trực quan về bộ dữ liệu, nhưng để phân tích sâu và đưa ra kết luận chính xác, cần xây dựng thêm các mô hình machine learning và thuật toán phân cụm, phân lớp Những công việc này sẽ được thực hiện bởi các nhà phân tích dữ liệu (data analyst).
Ngành Data Engineer tập trung vào việc xây dựng các đường ống dữ liệu, làm sạch và chuẩn bị nguồn dữ liệu, giúp các nhà phân tích dữ liệu thực hiện phân tích chuyên sâu một cách hiệu quả.
Dưới đây là hai bảng điều khiển (Dashboard) cung cấp thông tin về khách hàng và hành vi mua sắm của họ Những bảng điều khiển này giúp chúng ta có cái nhìn tổng quan về bộ dữ liệu, từ đó hình dung các thông tin một cách trực quan và dễ hiểu nhất.
5.2.1 Dashboard thông tin khách hàng Ở Dashboard sẽ cho chúng ta thấy được một cách tổng quan nhất về các thông tin của khách hàng như chi tiêu hàng tháng, chuyên ngành, nghề nghiệp gia đình, quê quán, năm học của sinh viên
Hình 5.3 Dashboard thông tin khách hàng
5.2.2 Dashboard về hành vi khách hàng
Ta sẽ nhìn thấy được những thương hiệu sản phẩm, cửa hàng, kênh mua sắm cũng như phương thức thanh toán mà khách hàng lựa chọn nhiều nhất
- Về thương hiệu Asus, Dell là 2 thương hiệu mà khách hàng chọn nhiều nhất, còn Microsof khá ít sinh viên lựa chọn
- Về cửa hàng: FPT shop và thế giới di động và 2 cửa hàng chiếm thị phần cao nhất
Khi mua laptop, do giá trị cao của sản phẩm, hầu hết người tiêu dùng ưu tiên phương thức thanh toán qua thẻ để đảm bảo an toàn và tiện lợi.
Hình 5.4 Dashboard về hành vi khách hàng
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Đạt được
Trong thời gian thực tập tại TMA Solution với vị trí Data Engineer, tôi đã tích lũy được nhiều kiến thức quý giá về lập trình, tư duy phát triển hệ thống và quản lý đường ống dữ liệu Qua quá trình học hỏi, tôi đã hiểu rõ hơn về các nhiệm vụ của một Data Engineer và áp dụng hiệu quả các kỹ năng cũng như kiến thức vào công việc được giao bởi mentor.
Ngoài việc tiếp xúc với kiến thức chuyên môn về dữ liệu, tôi còn phát triển kỹ năng mềm như thuyết trình và trình bày thông tin hiệu quả Tôi cũng đã học hỏi nhiều về bảo mật trong công nghệ thông tin Qua quá trình làm việc và giao lưu với đồng nghiệp, kỹ năng giao tiếp của tôi đã được cải thiện đáng kể.
Trong quá trình thực tập vừa qua, tôi đã tích lũy được nhiều kiến thức quý giá về công việc và các kỹ năng cần thiết từ các anh chị trong công ty Tôi tin rằng những gì đã học sẽ hỗ trợ tích cực cho sự nghiệp của mình trong tương lai gần.
Thời gian thực tập tại công ty chỉ kéo dài 10 tuần, điều này đã tạo ra một hạn chế lớn trong việc hoàn thành các nhiệm vụ và bài báo cáo cho trường Mặc dù tôi đã nỗ lực học hỏi và tìm hiểu đề tài, nhưng thời gian ngắn đã khiến tôi chưa thể áp dụng hết kiến thức và kỹ năng vào thực tế Việc làm quen với ngôn ngữ lập trình mới và môi trường làm việc như Cloud Azure cần thời gian dài hơn để có thể khai thác tối đa các chức năng và hoạt động của chúng, từ đó tạo ra giá trị thực sự cho các dự án Do đó, bài báo cáo không thể tránh khỏi một số sai sót nhất định.
Sau quá trình học tập và thực tập tại doanh nghiệp, tôi đã xác định được hướng đi rõ ràng cho sự nghiệp tương lai Sau kỳ thực tập, tôi sẽ tiếp tục rèn luyện và nâng cao các kỹ năng đã học để củng cố kiến thức Đồng thời, tôi sẽ nỗ lực tìm kiếm một công việc có tính chất học hỏi cao hơn về lĩnh vực dữ liệu, nhằm mở rộng cơ hội tiếp xúc và làm việc tại các doanh nghiệp.
Ngoài việc tập trung vào lĩnh vực Data Engineer, tôi cũng sẽ mở rộng hiểu biết về các công việc liên quan như data analyst và data scientist Tôi không chỉ dừng lại ở việc học lý thuyết mà còn mong muốn áp dụng kiến thức vào thực tế để tích lũy kinh nghiệm quý báu trước khi tốt nghiệp Tôi tin rằng nỗ lực không ngừng trong việc mở rộng kiến thức và kinh nghiệm sẽ giúp tôi thành thạo hơn trong lập trình, xử lý và phân tích dữ liệu.