1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng một spark pipeline sử dụng aws và delta lake

71 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Một Spark Pipeline Sử Dụng AWS Và Delta Lake
Tác giả Lê Thị Kiều Linh
Người hướng dẫn ThS. Nguyễn Văn Chức, Mentor Vũ Anh Tiến
Trường học Trường Đại Học Kinh Tế Đà Nẵng
Chuyên ngành Hệ Thống Thông Tin
Thể loại báo cáo thực tập nghề nghiệp
Thành phố Đà Nẵng
Định dạng
Số trang 71
Dung lượng 6,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu của đề tài - Mục đích của đề tài "Xây dựng một Spark pipeline sử dụng AWS và Delta Lake" là tạo ra một quy trình xử lý dữ liệu sử dụng công nghệ Spark trên nềntảng AWS và sử dụ

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ

KHOA THỐNG KÊ – TIN HỌC

BÁO CÁO THỰC TẬP NGHỀ NGHIỆP

NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ

CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN

ĐỀ TÀI: XÂY DỰNG MỘT SPARK PIPELINE SỬ DỤNG

AWS VÀ DELTA LAKE

Đơn vị thực tập : TMA Solutions Bình Định Giảng viên hướng dẫn : ThS Nguyễn Văn Chức

Trang 2

LỜI CẢM ƠN

Đầu tiên em xin phép được gửi sự tri ân sâu sắc và lời cảm ơn chân thànhnhất đối với các thầy cô giáo Khoa Thống kê- Tin học trường Đại Học Kinh Tế ĐàNẵng đã tạo điều kiện để em có điều kiện thực tập Đặc biệt, em xin trân trọngcảm ơn thầy Nguyễn Văn Chức đã nhiệt tình hướng dẫn để em có thể hoàn thànhtốt kì thực tập này

Em xin gửi lời cảm ơn chân thành đến bạn và toàn bộ đội ngũ của TMASolutions Bình Định vì đã tạo điều kiện cho em tham gia thực tập nghề nghiệp tạiđây Em muốn bày tỏ sự biết ơn và trân trọng đối với cơ hội quý báu này và trảinghiệm thực tế mà em đã có được

Thời gian thực tập đã mang lại cho em một loạt những kiến thức hữu ích và

kỹ năng chuyên môn quan trọng Em đã có cơ hội áp dụng những kiến thức họcđược trong thực tế công việc và làm việc cùng với các chuyên gia trong lĩnh vực.Điều này đã giúp em hiểu rõ hơn về cách thức hoạt động của ngành nghề và pháttriển kỹ năng cá nhân của mình

Đặc biệt, em xin chân thành gửi lời cảm ơn đến Mentor Vũ Anh Tiến đãhướng dẫn trực tiếp, chỉ đạo và tạo mọi điều kiện giúp đỡ em trong suốt quá trìnhhọc cũng như thực tập tại đây

Trong suốt quá trình thực tập cũng như quá trình tìm hiểu, sẽ không thểtránh khỏi những sự thiếu sót và hạn chế Em rất mong nhận được những ý kiếnđóng góp và phản hồi từ quý thầy cô để em có thể khắc phục được những sai sótcũng như rút ra được những bài học cho mình và trau dồi thêm những kiến thứcmới

Một lần nữa, em xin bày tỏ lòng biết ơn chân thành và sự trân trọng sâu sắcđến tất cả mọi người đã đồng hành cùng em trong thời gian thực tập nghề nghiệpnày Em sẽ luôn mang theo những kinh nghiệm và sự học hỏi này trong tương lai

và cống hiến hết mình cho sự phát triển của bản thân và công ty

Trang 3

LỜI CAM ĐOAN

Em, dưới tên gọi Lê Thị Kiều Linh cam đoan rằng báo cáo thực tập nghềnghiệp mà em đã viết là hoàn toàn dựa trên hiểu biết cá nhân của mình dưới sựhướng dẫn của mentor Vũ Anh Tiến, cùng với thông tin và dữ liệu được thu thập

từ các nguồn đáng tin cậy Em xin cam kết rằng tất cả các thông tin và kết quảđược trình bày trong báo cáo này là chính xác và không bị sai lệch hay giả mạo

Em xin cam đoan rằng em đã thực hiện thực tập nghề nghiệp một cách chânthực và trung thực, tuân thủ các quy định và hướng dẫn của cơ quan, tổ chức hoặcdoanh nghiệp em đã tham gia Em đã thực hiện nhiệm vụ được giao với sự tỉ mỉ,đúng thời hạn và đạt được những kết quả như mong đợi

Em cam đoan rằng em đã tuân thủ đạo đức nghề nghiệp và không tiết lộ bất

kỳ thông tin bí mật nào thuộc về tổ chức hoặc doanh nghiệp em đã thực tập

Em sẽ chịu trách nhiệm và sẵn sàng chấp nhận mọi hậu quả pháp lý nếunhững tuyên bố và cam đoan trong báo cáo này không chính xác Em xin camđoan rằng đã đọc và hiểu nội dung của lời cam đoan này và thực sự cam kết tuânthủ mọi điều khoản và cam kết được nêu trong đây

Trang 4

1.1.1 Tổng quan về TMA Solutions Bình Định 2

1.2.1 Công việc của Data Engineer 7 1.2.2 Kỹ năng để trở thành Data Engineer 7 1.2.3 Con đường phát triển sự nghiệp của DE 8

2.1 Khái niệm về Data Lake, Data warehouse, ETL 10

Trang 5

2.1.3 So sánh Data Lake và Data Warehouse 10

Trang 6

3.3 Truy vấn SQL [2] 31

4.4.3 Đồ data vào Data model 40

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1 Công ty TMA Solutions Bình Định 3

Hình 2 Sơ đồ cơ cấu tổ chức 6

Hình 3 Thành phần chính của Apache Spark 13

Hình 4 Tính năng của Apache Spark 14

Hình 5 Giao diện Databrick community 17

Hình 6 Tính năng của Delta Lake 19

Hình 7 Amazon Web Service 20

Hình 16 Bộ dữ liệu khảo sát về sức khỏe tâm thần. 30

Hình 17 Dữ liệu sau khi đã được xử lý 31

Trang 8

Hình 32 Kết quả sau khi chạy Lambda 2 42

Hình 33 Upsert data thành công 44

Trang 9

DANH MỤC BẢNG BIỂU

Bảng 1 So sánh Data Lake và Data Warehouse 11

Bảng 2 So sánh SQL và NoSQL 16

Trang 10

DANH MỤC CÁC TỪ VIẾT TẮTAWS: Amazon Web Services

AI: Artificial Intelligence

IoT: Internet of Thing

ETL: Extract, Transform, Load

DE: Data Engineer

ML: Machine Learning

ACID: Atomicity, Consistency, Isolation và Durability YARN: Yet Another Resource Negotiator

ADLS (Azure Data Lake Storage)

GCS (Google Cloud Storage)

HDFS (Hadoop Distributed File System)

BI: Business Intelligence

JDBC: Java Database Connectivity

Trang 11

LỜI MỞ ĐẦU

1 Mục tiêu của đề tài

- Mục đích của đề tài "Xây dựng một Spark pipeline sử dụng AWS và Delta

Lake" là tạo ra một quy trình xử lý dữ liệu sử dụng công nghệ Spark trên nềntảng AWS và sử dụng Delta Lake để lưu trữ và quản lý dữ liệu

2 Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu chính là quy trình xử lý dữ liệu sử dụng Spark trên

AWS, sử dụng Delta Lake làm lớp lưu trữ Đề tài tập trung vào việc xây dựngmột pipeline hoàn chỉnh để xử lý dữ liệu theo lô (batching data) và thực hiệncác phân tích trên dữ liệu đó

- Nghiên cứu tập trung vào việc áp dụng công nghệ Spark trên nền tảng AWS để

xây dựng một pipeline xử lý dữ liệu phân tán Pipeline này có thể bao gồm cácbước như tải dữ liệu, tiền xử lý, phân tích và biến đổi dữ liệu, lưu trữ kết quảvào Delta Lake, và triển khai các tác vụ xử lý dữ liệu tự động theo yêu cầu

- Phạm vi nghiên cứu bao gồm các kỹ thuật và công nghệ liên quan đến Spark

và AWS như Amazon S3, Amazon Athena, Amazon Glue, API Gateway vàcác công cụ và thư viện hỗ trợ xử lý dữ liệu trên Spark như Spark SQL, SparkStreaming và Spark DataFrames

3 Kết cấu của đề tài

Đề tài được tổ chức gồm phần mở đầu, 4 chương nội dung và phần kếtluận

- Mở đầu

- Chương 1: Tổng quan công ty và lý thuyết về Data Engineer

- Chương 2: Cơ sở lý thuyết

- Chương 3: Xử lý dữ liệu bằng Pyspark và Delta Lake trong Databrick

- Chương 4: Triển khai đề tài

- Kết luận và hướng phát triển

Trang 12

CHƯƠNG 1 TỔNG QUAN CÔNG TY VÀ LÝ THUYẾT VỀ DATA

ENGINEER 1.1 Giới thiệu tổng quát về TMA Solutions Bình Định

1.1.1 Tổng quan về TMA Solutions Bình Định

TMA được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu ViệtNam với 4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thếgiới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở

Tp Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật,Singapore)

Trải qua 25 năm hình thành và phát triển, với những nỗ lực không ngừngnghỉ, Tập đoàn Công Nghệ TMA đã trở thành một trong những tập đoàn côngnghệ hàng đầu của đất nước, TMA tự hào đã góp phần tiên phong đưa tên tuổiViệt Nam lên bản đồ công nghệ thế giới và vinh dự nhận được những danh hiệu,phần thưởng cao quý như cờ thi đua, bằng khen do UBND TP.HCM trao tặng, 18năm liền đạt danh hiệu TOP 10 doanh nghiệp xuất khẩu phần mềm, TOP 10 doanhnghiệp AI-IoT, Top 10 doanh nghiệp Fintech… đóng góp mạnh mẽ vào sự pháttriển của ngành CNTT và công nghệ cao của Việt Nam

Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 5 năm, TMABình Định đã phát triển nhanh chóng với hơn 600 kỹ sư, trong đó có nhiều kỹ sưđang làm việc tại TP.HCM đã trở về làm việc tại quê hương Là trung tâm phầnmềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, Công viên Sáng tạo TMA mang

sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tạimiền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thànhmột điểm đến của công nghệ 4.0 tại Việt Nam Công viên Sáng tạo TMA ba gồmTrung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâmKhoa học Dữ liệu, Học viện Công Nghệ…với tổng diện tích sử dụng hơn15,000m2

Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMABình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo

Trang 13

Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷđồng thể hiện quyết tâm và cam kết mạnh mẽ trong việc phát triển ngành CNTTtại miền Trung và nâng tầm giá trị chất xám của con người nơi đây Hiện thực hóamong muốn trở về xây đắp cho quê hương Bình Định nói riêng và khu vực miềntrung nói chung của vợ chồng Chủ tịch Tiến sĩ Nguyễn Hữu Lệ và CEO-Bùi NgọcAnh.

Hình 1 Công ty TMA Solutions Bình Định 1.1.2 Lĩnh vực hoạt động

Tài chính, ngân hàng và bảo hiểm

- Quản lý tài sản, vốn và đầu tư

- Thanh toán di động

- Phân tích tài chính

- Quy trình bảo hiểm

- Hỗ trợ bán bảo hiểm

Thương mại điện tử và phân phối

- Tư vấn, thiết kế, phát triển và triển khai hệ thống phần mềm trọn gói vềthương mại điện tử

Trang 14

- Quản lý phân phối sản phẩm

- Phân tích hành vi khách hàng, dự báo doanh số

- POS (Point of Sale)

- Theo dõi sức khỏe người già 24/24

- Quản lý người cách ly tại nhà

- Phân tích năng lực học sinh

- Quản lý và điểm danh tự động, trường họcViễn thông

Trang 15

Vận tải và logistic

- Quản lý giao nhận

- Quản lý tài sản

- Quản lý xe và tàu biển

- Phân tích giao thông

Khách sạn và du lịch

- Website dịch vụ khách sạn và du lịch

- Phần mềm dịch vụ khách sạn

- Quản lý khách sạn tự động

Nông nghiệp và chế biến thực phẩm

- Áp dụng các công nghệ mới (AI, IoT, Big data, drone…) để hiện đại hóangành nông nghiệp cho khách hàng Úc, New Zealand, Nhật Bản

1.1.3 Cơ cấu tổ chức

Trang 16

Hình 2 Sơ đồ cơ cấu tổ chức

1.2 Tổng quan về vị trí Data Engineer

Là vị trí tập trung vào xây dựng cơ sở hạ tầng cho việc lưu trữ và xử lý các dữliệu lớn, bao gồm các hệ thống cơ sở dữ liệu, hệ thống lưu trữ đám mây và cáccông nghệ liên quan đến dữ liệu

Các kỹ sư phần mềm này thường chịu trách nhiệm xây dựng các đường dẫn dữliệu để tập hợp thông tin từ các hệ thống nguồn khác nhau Họ tích hợp, hợp nhất,làm sạch dữ liệu và cấu trúc nó để sử dụng trong các ứng dụng phân tích Họ đặtmục tiêu làm cho dữ liệu dễ dàng truy cập và tối ưu hóa hệ sinh thái dữ liệu lớncủa tổ chức

Lượng dữ liệu mà một Data Engineer làm việc thay đổi theo quy mô của tổchức Công ty càng lớn, kiến trúc phân tích càng phức tạp và họ sẽ phải nhiều chịutrách nhiệm hơn về dữ liệu Các kỹ sư dữ liệu làm việc cùng với các nhóm khoahọc dữ liệu, cải thiện tính minh bạch của dữ liệu và cho phép các doanh nghiệpđưa ra các quyết định kinh doanh đáng tin cậy hơn

Trang 17

1.2.1 Công việc của Data Engineer

Data engineer thường làm việc như một phần của nhóm phân tích cùng với cácnhà khoa học dữ liệu Họ cung cấp dữ liệu ở các định dạng có thể sử dụng đượccho các nhà khoa học dữ liệu, những người chạy các truy vấn và thuật toán dựatrên thông tin cho các ứng dụng phân tích dự đoán, học máy và khai thác dữ liệu Các Data Engineer cũng cung cấp dữ liệu tổng hợp cho giám đốc điều hành vànhà phân tích doanh nghiệp cũng như những người dùng cuối khác để họ có thểphân tích và áp dụng kết quả vào việc cải thiện hoạt động kinh doanh

Data Engineer xử lý cả dữ liệu có cấu trúc và phi cấu trúc Dữ liệu có cấu trúc

là thông tin có thể được tổ chức thành một kho lưu trữ được định dạng giống nhưmột cơ sở dữ liệu Dữ liệu phi cấu trúc – chẳng hạn như văn bản, hình ảnh, tệp âmthanh và video – không tuân theo các mô hình dữ liệu thông thường

Một kỹ sư dữ liệu phải hiểu các cách tiếp cận khác nhau đối với kiến trúc dữliệu và các ứng dụng chúng để xử lý cả hai kiểu dữ liệu trên Một loạt các côngnghệ về dữ liệu lớn, chẳng hạn như các khung xử lý và nhập dữ liệu nguồn mở,cũng là một phần của bộ công cụ của trình xử lý dữ liệu

1.2.2 Kỹ năng để trở thành Data Engineer

Kỹ năng lập trình: Data Engineer cần phải có kiến thức về lập trình, bao gồm các ngôn ngữ lập trình như Python, Java, Scala, SQL

Kỹ năng xây dựng cơ sở dữ liệu: Data Engineer cần có khả năng thiết kế, triểnkhai và quản lý các cơ sở dữ liệu lớn, bao gồm các hệ thống cơ sở dữ liệu quan hệ

Trang 18

Kiến thức về bảo mật dữ liệu: Data Engineer cần hiểu về các giải pháp bảo mật

dữ liệu và có khả năng triển khai các giải pháp này trên các hệ thống dữ liệu lớn

Kỹ năng về triển khai hệ thống: Data Engineer cần có khả năng triển khai các

hệ thống dữ liệu lớn trên các môi trường sản xuất và có khả năng quản lý các hệthống này

Kỹ năng tư duy logic: Data Engineer cần có khả năng tư duy logic để phân tíchvấn đề và xây dựng các giải pháp kỹ thuật

Kỹ năng làm việc nhóm: Data Engineer thường làm việc trong một nhóm, do

đó cần có kỹ năng làm việc nhóm để đạt được kết quả tốt nhất

Kỹ năng giao tiếp: Data Engineer cần có khả năng giao tiếp tốt để trình bày cácphân tích dữ liệu và giải thích các kết quả cho các bên liên quan

1.2.3 Con đường phát triển sự nghiệp của DE

Con đường phát triển sự nghiệp của một Data Engineer (DE) có thể phụ thuộcvào nhiều yếu tố, bao gồm kỹ năng cá nhân, mục tiêu nghề nghiệp, cơ hội trongcông ty và ngành công nghiệp, và xu hướng công nghệ hiện tại Dưới đây là một

số con đường phát triển sự nghiệp mà một DE có thể theo đuổi

- Xây dựng kỹ năng cơ bản: Một DE cần có kiến thức và kỹ năng về cáccông nghệ và công cụ liên quan đến xử lý dữ liệu như Apache Hadoop,Spark, SQL, Python, Scala, ETL (Extract, Transform, Load), và quy trình

xử lý dữ liệu

- Mở rộng kiến thức về công nghệ: công nghệ đám mây (Cloud Computing),

dữ liệu lớn (Big Data), máy học (Machine Learning), và trí tuệ nhân tạo(Artificial Intelligence)

- Phát triển kỹ năng liên quan đến công nghệ đám mây: Amazon WebServices (AWS), Microsoft Azure, hoặc Google Cloud Platform (GCP)

- Thăng tiến trong sự nghiệp: DE có thể tiến xa hơn trong sự nghiệp bằngcách thăng tiến vị trí hoặc chuyển sang các vai trò liên quan như DataArchitect, Data Scientist, hoặc Solution Architect

1.2.4 Mức lương

Trang 19

Đối với sinh viên thực tập, sinh viên mới ra trường chưa có kinh nghiệm, mứcthu nhập khoảng 7 – 10 triệu đồng/ tháng.

Các nhân viên có kinh nghiệm, làm việc lâu năm thì mức lương có thể từ 15 –

25 triệu đồng/tháng và sẽ được tăng lên theo thời gian, khả năng, kinh nghiệm

Vị trí Manager hay Driector, mức lương thường được tính bằng USD, trungbình từ 30 – 66 triệu đồng/tháng quy đổi ra USD bằng 1500 USD/tháng đến 3000USD/ tháng

Trang 20

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 Khái niệm về Data Lake, Data warehouse, ETL

2.1.1 Data Lake

Data Lake là một kho lưu trữ tập trung được thiết kế để lưu trữ, xử lý vàbảo mật một lượng lớn dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc Nó có thểlưu trữ dữ liệu ở định dạng gốc và xử lý mọi loại dữ liệu khác nhau, bỏ qua cácgiới hạn về kích thước Nó cung cấp số lượng dữ liệu cao để tăng hiệu suất phântích và tích hợp gốc

Vì dữ liệu được giữ nguyên gốc nên doanh nghiệp không cần phải đầu tưcho việc biến đổi, phân loại và lưu trữ dữ liệu đến khi có nhu cầu sử dụng Những

dữ liệu này khi có nhu cầu sử dụng phải cần được xử lý thêm

Data lake thường được sử dụng trong các ứng dụng big data và machinelearning, vì chúng cung cấp một cách để lưu trữ và phân tích các lượng lớn dữ liệumột cách nhanh chóng và hiệu quả Tuy nhiên, chúng cũng có thể được sử dụngtrong các ứng dụng quy mô nhỏ hơn, chẳng hạn như thông tin doanh nghiệp vàphân tích, nơi khả năng lưu trữ và phân tích các lượng lớn dữ liệu đa dạng là quantrọng

2.1.2 Data Warehouse

Data Warehouse là 1 kho lưu trữ dữ liệu cho các doanh nghiệp Các dữ liệuđược lưu trữ đôi khi phải trải qua quá trình trích xuất, chuyển đổi và xử lý qua quytrình ETL trước khi nhập kho lưu trữ Biến đổi và phân loại DL từ các nguồn khácnhau của DN Sẵn sàng để phục vụ cho các mục đích khác, đặc biệt là báo cáo vàphân tích

Data warehouse được thiết kế để hỗ trợ việc phân tích dữ liệu phức tạp vàtruy vấn dữ liệu lớn một cách hiệu quả Nó cung cấp một cách tiếp cận phù hợpvới các công cụ phân tích dữ liệu, bao gồm các truy vấn phức tạp và các báo cáođịnh kỳ Data warehouse cũng có thể được sử dụng để lưu trữ lịch sử dữ liệu, giúpngười dùng truy xuất và phân tích dữ liệu theo thời gian

Trang 21

2.1.3 So sánh Data Lake và Data Warehouse

Dữ liệu Các Data Lake lưu trữ

mọi thứ tập trung vào các Quy trìnhData Warehouse chỉ

nghiệp vụ

được xử lý Dữ liệu được xử lýcao

Loại dữ liệu Nó có thể là phi cấu

trúc, bán cấu trúc hoặc có

cấu trúc

Nó chủ yếu ở dạngbảng và cấu trúc

Nhiệm vụ Chia sẻ quyền quản lý

dữ liệu truy xuất dữ liệuĐược tối ưu hóa để

Tính nhanh

nhẹn

Rất nhanh nhẹn,configure và reconfigure nếu

cần

So với Data lake, nókém linh hoạt hơn và cócấu hình cố định

Người dùng Data Lake chủ yếu

được sử dụng bởi Data

Scientist

Các chuyên gia kinhdoanh sử dụng rộng rãiData Warehouse

lưu trữ với chi phí thấp thời gian phản hồi nhanhBộ nhớ đắt tiền có

được sử dụng

kiểm soát thấp hơn dữ liệu tốt hơn.Cho phép kiểm soát

Thay thế

EDW nguồn cho EDWData Lake có thể là (không thay thế)Bổ sung cho EDW

Tốn nhiều thời gian

để giới thiệu nội dung mới.Mức độ chi Dữ liệu ở mức độ chi Dữ liệu ở cấp độ chi

Trang 22

tiết của dữ liệu tiết hoặc chi tiết thấp tiết tóm tắt hoặc tổng hợp.

Quá trình ETL bao gồm các bước sau:

- Extract: Lấy dữ liệu từ các nguồn khác nhau, chẳng hạn như cơ sở dữ

liệu, tệp dữ liệu, API, và các ứng dụng khác

- Transform: Chuyển đổi dữ liệu để phù hợp với mô hình dữ liệu của kho

dữ liệu tập trung (Data Warehouse hoặc Data Lake) Bước này có thể bao gồm việc thay đổi định dạng dữ liệu, loại bỏ dữ liệu trùng lặp, kết hợp dữ liệu từ nhiều nguồn khác nhau, và các bước biến đổi khác để làmcho dữ liệu phù hợp với mục đích phân tích và báo cáo

- Load: Tải dữ liệu đã được chuyển đổi vào kho dữ liệu tập trung Bước

này có thể bao gồm việc tạo các bảng mới, cập nhật các bảng hiện có, vàcác bước khác để đảm bảo rằng dữ liệu được lưu trữ theo cách phù hợp với mô hình dữ liệu của kho dữ liệu tập trung

Quá trình ETL là một bước quan trọng trong quá trình xây dựng và duy trì các kho dữ liệu tập trung, và nó được sử dụng rộng rãi trong các ứng dụng phân tích dữ liệu, bao gồm cả big data và business intelligence

2.2 Giới thiệu Python, Apache Spark

2.2.1 Python

Trang 23

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụngweb, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển

sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khácnhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại

hệ thống và tăng tốc độ phát triển

Python có tính linh hoạt cao và được sử dụng trong nhiều lĩnh vực khác nhaunhư phát triển web, khoa học dữ liệu, trí tuệ nhân tạo, đồ họa máy tính, trò chơiđiện tử, và nhiều ứng dụng khác Nó cũng hỗ trợ nhiều thư viện và frameworkscho phép các lập trình viên xây dựng các ứng dụng phức tạp một cách nhanhchóng và hiệu quả

Python cũng được phát triển như một ngôn ngữ lập trình hướng đối tượng, hỗtrợ nhiều tính năng như đa kế thừa, đa hình, và quản lý bộ nhớ tự động

2.2.2 Apache Spark

Apache Spark là một Framework phân tán mã nguồn mở được sử dụng để xử

lý và phân tích dữ liệu lớn Spark cung cấp khả năng xử lý dữ liệu phân tán, tăngtốc độ xử lý dữ liệu và giảm thời gian tính toán

Spark cung cấp một công cụ đơn giản để xử lý dữ liệu hàng loạt, xử lý dữ liệuthời gian thực, machine learning và xử lý đồ thị Nó được thiết kế để chạy trên mộtcụm máy và có thể xử lý các tập dữ liệu lớn song song trên nhiều nút Spark hỗ trợnhiều ngôn ngữ lập trình như Java, Scala, Python và R, giúp nó trở nên dễ dàngtiếp cận với đa dạng các nhà phát triển

● Thành phần chính của Apache Spark

Hình 3 Thành phần chính của Apache Spark

Trang 24

Apache Spark gồm có 5 thành phần chính: Spark Core, Spark Streaming, Spark

SQL, MLlib và GraphX

- Spark Core là thành phần cốt lõi của Apache Spark, các thành phần khác muốn

hoạt động đều cần thông qua Spark Core Spark Core có vai trò thực hiện côngviệc tính toán và xử lý trong bộ nhớ (In-memory computing), đồng thời nócũng tham chiếu đến các dữ liệu được lưu trữ tại các hệ thống lưu trữ bênngoài

- Spark Core: là thành phần cốt lõi của Spark, cung cấp các tính năng và API cho

việc xử lý dữ liệu phân tán

- Spark SQL: Spark SQL tập trung vào việc xử lý dữ liệu có cấu trúc cung cấp

API để truy vấn dữ liệu từ các nguồn dữ liệu khác nhau bằng cách sử dụngSQL

- Spark Streaming: cho phép xử lý dữ liệu trực tiếp (real-time) bằng cách chia

nhỏ dữ liệu thành các batch nhỏ và xử lý chúng

- MLlib: cung cấp các API để xây dựng các mô hình học máy và thực hiện các

tác vụ trích xuất đặc trưng (feature extraction) trên các RDD

- GraphX: cung cấp các API để xử lý đồ thị (graph) và các thuật toán liên quan

đến đồ thị

● Một số tính năng của Apache Spark

Hình 4 Tính năng của Apache Spark

Tốc độ: Spark có thể xử lý lượng dữ liệu lớn nhanh hơn nhiều so với MapReduce

Trang 25

Bộ nhớ đệm mạnh mẽ: Spark cung cấp khả năng lưu trữ bộ nhớ đệm và ổ cứng

mạnh mẽ, cho phép dữ liệu được lưu trữ tạm thời trong bộ nhớ để giảm thời giantruy cập dữ liệu từ đĩa

Triển khai: Spark có thể triển khai trên nhiều hệ thống khác nhau, bao gồm Mesos,

Hadoop thông qua YARN hoặc trình quản lý cụm riêng của Spark

Xử lý thời gian thực: Spark hỗ trợ xử lý dl time thực với khả năng xử lý dữ liệu

hàng loạt (batch data) và dữ liệu liên tục (streaming data) Spark Streaming chophép xử lý dữ liệu online và thực hiện tính toán trên Stream data

Đa ngôn ngữ: Spark hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Scala, Python

và R

Machine Learning: Spark cung cấp thư viện Machine Learning cho phép xử lý các

tác vụ liên quan đến ML trên dữ liệu lớn MLlib hỗ trợ các thuật toán phân loại,phân cụm, hồi quy và giảm chiều dữ liệu

2.3 SQL và NoSQL

2.3.1 SQL

SQL (viết tắt của Structured Query Language) là ngôn ngữ truy vấn cấu trúc

Nó được dùng để xử lý cơ sở dữ liệu quan hệ SQL được chia thành các mệnh đề,biểu thức, toán tử, truy vấn và truy vấn con

Lập trình SQL có thể được sử dụng hiệu quả để chèn, tìm kiếm, xóa bản ghi,cập nhật cơ sở dữ liệu SQL có thể làm được rất nhiều thứ, không giới hạn cácviệc như tối ưu hóa và duy trì cơ sở dữ liệu Các cơ sở dữ liệu quan hệ như cơ sở

dữ liệu MySQL, Oracle, MS SQL,…

2.3.2 NoSQL

NoSQL (viết tắt của Non-Relational SQL) được sử dụng với mục đích gầngiống với SQL Nhưng nó là đối với cơ sở dữ liệu không quan hệ, không yêu cầumột lược đồ cố định và dễ dàng mở rộng Cơ sở dữ liệu NoSQL được sử dụng chocác kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu khổng lồ NoSQL được sửdụng cho Big Data và các ứng dụng web thời gian thực

Trang 26

Một hệ thống cơ sở dữ liệu NoSQL bao gồm một loạt các công nghệ cơ sở dữliệu có thể lưu trữ dữ liệu có cấu trúc, bán cấu trúc, không có cấu trúc và đa hình.

Tốt hơn SQL

vì bỏ qua các ràngbuộc

Mở rộng theo

chiều ngang

Có thể thực hiện đượcnhưng quá trình mở rộng phứctạp nếu đã tồn tại dữ liệu trongDatabase

Mở rộng dễdàng

Tốc độ read/

write

Kém hơn NoSQL vì phảiđảm bảo tính ràng buộc dữ liệugiữa các bảng

Nếu sử dụng nhiều Serverthì phải đảm bảo tính nhất quán

về dl của các server với nhau

Tốc độ nhanhhơn SQL vì bỏ qua cơchế ràng buộc củabảng

Vì dữ liệuđược lưu trong RAMsau đó mới đẩy xuốngHDD và tính nhấtquán cuối

Việc lấy báocáo trực tiếp từNOSQL chưa được

Trang 27

báo cáo dụng công cụ hỗ trợ để báo cáo hỗ trợ tốt, thực hiện

chủ yếu thông quagiao diện ứng dụng

Bảng 2 So sánh SQL và NoSQL

2.4 Tổng quan Databrick community

Hình 5 Giao diện Databrick community

Databricks Community Edition là một phiên bản miễn phí của Databricks,một nền tảng phân tích dữ liệu được phát triển bởi công ty Databricks Nó chophép người dùng trải nghiệm các tính năng của Databricks và Apache Spark trênmột môi trường đám mây

Databricks Community Edition cung cấp một môi trường tích hợp để phântích dữ liệu, bao gồm Jupyter Notebook, Apache Spark và các thư viện tích hợpcho xử lý dữ liệu và machine learning Nó cũng cung cấp một số tài liệu và khóahọc trực tuyến để hướng dẫn người dùng sử dụng nền tảng

Databricks Community Edition được sử dụng rộng rãi bởi các nhà pháttriển, sinh viên và các chuyên gia trong lĩnh vực khoa học dữ liệu và trí tuệ nhân

Trang 28

tạo để phân tích dữ liệu và xây dựng các ứng dụng machine learning Nó cũng chophép người dùng chia sẻ các tệp notebook và tài nguyên khác với cộng đồng.

2.5 Khái niệm về Lakehouse, Delta Lake

mẽ và đa dạng, bao gồm:

Dữ liệu phi cấu trúc: Lakehouse cho phép lưu trữ dữ liệu phi cấu trúc(unstructured data) như tệp tin văn bản, hình ảnh, video, và các dữ liệu có cấu trúcnhư JSON, Avro, Parquet, và ORC

Dữ liệu cấu trúc: Lakehouse hỗ trợ lưu trữ các dữ liệu có cấu trúc (structureddata) như các bảng dữ liệu, giúp cho việc truy vấn và phân tích dữ liệu được dễdàng hơn

Delta Lake: Lakehouse sử dụng Delta Lake làm phương tiện lưu trữ dữ liệu cơ

sở, cung cấp các tính năng như ACID transactions, time travel, schemaenforcement and evolution, metadata management, và scalability

Data Lake và Data Warehouse: Lakehouse kết hợp tính năng của data lake (chỉcho phép lưu trữ dữ liệu phi cấu trúc) và data warehouse (chỉ cho phép lưu trữ dữliệu có cấu trúc), giúp cho việc lưu trữ và quản lý dữ liệu trở nên đơn giản và hiệuquả hơn

Tích hợp với công cụ phân tích: Lakehouse tích hợp dễ dàng với các công cụphân tích dữ liệu như Apache Spark, Apache Hive, và các công cụ BI (BusinessIntelligence) khác

Trang 29

2.5.2 Delta Lake

Delta Lake là một dự án mã nguồn mở cho phép xây dựng kiến trúc Lakehousetrên các Data Lake Delta Lake cung cấp các ACID transactions (Atomicity,Consistency, Isolation, Durability), xử lý siêu dữ liệu có thể mở rộng và hợp nhất

xử lý dữ liệu hàng loạt( batch) và truyền trực tuyến (streaming) trên các hồ dữ liệuhiện có, chẳng hạn như S3, ADLS, GCS và HDFS

Delta Lake là một công nghệ lưu trữ dl mã nguồn mở được xây dựng trênApache Spark Được sử dụng để quản lý dữ liệu lớn và phức tạp Delta Lake cungcập một số tính năng quản lý metadata, kiểm soát phiên bản và khả năng phục hồi

dữ liệu, giúp cho việc xử lý và quản lý dữ liệu trên hệ thống lưu trữ lớn trở nên dễdàng hơn

● Tính năng của Delta Lake

Hình 6 Tính năng của Delta Lake

- ACID transactions trên Spark: các mức độ cô lập có thể tuần tự hóa đảm bảo

rằng người đọc không bao giờ nhìn thấy dữ liệu không nhất quán

- Xử lý siêu dữ liệu có thể mở rộng: Tận dụng sức mạnh xử lý phân tán của

Spark để xử lý tất cả metadata cho các bảng quy mô petabyte với hàng tỷ tệpmột cách dễ dàng

Trang 30

- Streaming và Batch: một bảng trong Delta Lake là một bảng hàng loạt cũng

như nguồn phát trực tuyến và phần chìm Nhập dữ liệu trực tuyến, chèn lấplịch sử hàng loạt, truy vấn tương tác, tất cả đều hoạt động hiệu quả

- Thực thi giản đồ: tự động xử lý các biến thể giản đồ để ngăn việc chèn các bản

ghi xấu trong quá trình nhập

- Time travel: Lập phiên bản dữ liệu cho phép lùi thời gian, theo dõi lịch sử

kiểm tra đầy đủ và các thử nghiệm học máy có thể lặp lại

- Upserts và deletes: hỗ trợ các thao tác hợp nhất, cập nhật và xóa để kích hoạt

các trường hợp sử dụng phức tạp như: thao tác thu thập dữ liệu thay đổi, kíchthước thay đổi chậm (SCD), upserts trực tuyến,…

Hình 7 Amazon Web Service 2.6.1 S3 service

Amazon Simple Storage Service (Amazon S3): là một dịch vụ lưu trữ đối tượng

cung cấp khả năng mở rộng, tính sẵn có của dữ liệu, bảo mật và hiệu suất hàngđầu trong ngành Khách hàng thuộc mọi quy mô, ngành nghề có thể sử dụng

Trang 31

Amazon S3 để lưu trữ và bảo vệ mọi lượng dữ liệu cho nhiều trường hợp sử dụngnhư: data lakes, websites, ứng dụng di động, sao lưu và khôi phục, lưu trữ, ứngdụng doanh nghiệp, thiết bị IoT và big data analytics S3 cung cấp các tính năngquản lý để có thể tối ưu hóa, sắp xếp và định cấu hình quyền truy cập vào dữ liệucủa mình nhằm đáp ứng các yêu cầu tuân thủ, tổ chức và kinh doanh cụ thể.

Hình 8 AWS S3

● Thành Phần và cấu trúc

Hình 9 Thành phần và cấu trúc của Aws S3

- Buckets: các “folder” ở tầng root mà chúng ta tạo trong S3 gọi là các

bucket

Các folder con bạn tạo trong bucket gọi là các folder

- Objects: các file được lưu trong bucket được gọi là các object

Trang 32

- Regions: Khi tạo một bucket, bạn cần phải chọn một region nào đó cho nó Điều này có nghĩa rằng bất cứ dữ liệu nào bạn upload lên bucket S3 sẽ nằm trong data center ở region đó.

● Các tính năng của AWS S3

- Storage classes

- Storage management

- Access management and security

- Data processing

- Storage logging and monitoring

- Analytics and insights

- Strong consistency

2.6.2 Athena service

Amazon Athena là một dịch vụ phân tích tương tác phi máy chủ, được xâydựng trên các khung nguồn mở và hỗ trợ định dạng tệp cũng như bảng mở Athenaphân tích hàng petabyte dữ liệu ở chính nơi lưu trữ dữ liệu đó Phân tích dữ liệuhoặc xây dựng ứng dụng từ một hồ dữ liệu thuộc Dịch vụ lưu trữ S3 và hơn 25nguồn dữ liệu khác, bao gồm các nguồn dữ liệu tại chỗ hoặc các hệ thống đámmây khác sử dụng SQL hay Python Athena được xây dựng dựa trên các công cụnguồn mở Trino và Presto cùng với khung Apache Spark, không yêu cầu phảicung cấp tài nguyên hay cấu hình

Trang 33

Hình 10 AWS Athena

● Sử dụng:

- Chạy truy vấn liên kết: Truy vấn SQL để phân tích dữ liệu trong các nguồn dữ

liệu quan hệ, phi quan hệ, đối tượng và tùy chỉnh chạy tại chỗ hoặc trên đámmây

- Chuẩn bị dữ liệu cho các mô hình ML: Sử dụng các mô hình ML trong truy

vấn SQL hoặc Python để đơn giản hóa các tác vụ phức tạp như phát hiện bấtthường, phân tích nhóm khách hàng và dự đoán doanh số bán hàng

- Xây dựng công cụ đối chiếu dữ liệu lớn phân tán: Triển khai công cụ đối chiếu

qua công cụ được xây dựng cho đám mây để xác thực lượng lớn dữ liệu mộtcách hiệu quả trên quy mô lớn

- Phân tích dữ liệu Gg Analytics: Trích xuất dữ liệu Gg Analytics bằng

Analytics bằng Amazon AppFlow, lưu trữ trong Amazon S3 rồi truy vấn dữliệu này

Trang 34

Hình 11 AWS CloudFormation

● Các tính năng chính của AWS CloudFormation bao gồm:

- Infrastructure as Code: AWS CloudFormation cho phép bạn sử dụng mã

để định nghĩa và triển khai hạ tầng AWS của bạn, giúp đảm bảo tính nhấtquán và tái sử dụng trong các quy trình triển khai

- Tự động hóa triển khai hạ tầng: AWS CloudFormation tự động triển khai

tài nguyên AWS của bạn, giúp giảm thiểu thời gian và chi phí triển khai

hạ tầng

- Quản lý cấu hình: AWS CloudFormation cho phép bạn quản lý cấu hình

của tài nguyên AWS của bạn, bao gồm cả cấu hình mạng và cấu hình ứngdụng

- Điều khiển phiên bản: AWS CloudFormation cho phép bạn quản lý phiên

bản của tài nguyên AWS của bạn, giúp bạn dễ dàng khôi phục lại cácphiên bản trước đó nếu cần

- Truy vấn tài nguyên: AWS CloudFormation cho phép bạn truy vấn thông

tin về các tài nguyên AWS của bạn, giúp bạn quản lý và giám sát hạ tầngcủa mình

- Hỗ trợ đa khu vực: AWS CloudFormation hỗ trợ triển khai tài nguyên

AWS trên nhiều khu vực, giúp bạn tăng tính sẵn sàng và độ tin cậy của hạtầng của mình

2.6.4 Glue

Trang 35

AWS Glue là một dịch vụ quản lý trích xuất, chuyển đổi và tải (ETL) dữ liệuđược quản lý, giúp việc di chuyển dữ liệu giữa các kho lưu trữ trở nên dễ dànghơn Với AWS Glue, có thể tạo và chạy các công việc ETL để trích xuất dữ liệu từcác nguồn khác nhau, chuyển đổi dữ liệu theo các quy tắc kinh doanh và tải vàomột kho lưu trữ dữ liệu mục tiêu.

AWS Glue hỗ trợ nhiều nguồn dữ liệu khác nhau, bao gồm S3, RDS, Redshift

và các nguồn khác tương thích với JDBC Sử dụng Glue để chuyển đổi và chuẩn

bị cho phân tích, học máy và các ứng dụng thượng dòng khác

AWS Glue là một công cụ mạnh mẽ để quản lý và xử lý lượng lớn dữ liệu trênnhiều nguồn và định dạng dữ liệu khác nhau 1 cách linh hoạt, có khả năng mởrộng và tiết kiệm chi phí

2.6.5 Lambda

AWS Lambda là một dịch vụ điện toán phi máy chủ, theo định hướng sự kiện,giúp bạn chạy mã cho hầu hết mọi loại ứng dụng hoặc dịch vụ backend mà khôngcần cung cấp hay quản lý máy chủ Bạn có thể kích hoạt Lambda từ hơn 200 dịch

vụ AWS và các ứng dụng phần mềm dưới dạng dịch vụ (SaaS), đồng thời bạn chỉphải trả tiền theo mức sử dụng

Ngày đăng: 12/12/2023, 19:48

HÌNH ẢNH LIÊN QUAN

Hình 1. Công ty TMA Solutions Bình Định 1.1.2. Lĩnh vực hoạt động - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 1. Công ty TMA Solutions Bình Định 1.1.2. Lĩnh vực hoạt động (Trang 13)
Hình 2. Sơ đồ cơ cấu tổ chức - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 2. Sơ đồ cơ cấu tổ chức (Trang 16)
Hình 3. Thành phần chính của Apache Spark - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 3. Thành phần chính của Apache Spark (Trang 23)
Hình 4. Tính năng của Apache Spark - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 4. Tính năng của Apache Spark (Trang 24)
Bảng 2. So sánh SQL và NoSQL - Xây dựng một spark pipeline sử dụng aws và delta lake
Bảng 2. So sánh SQL và NoSQL (Trang 27)
Hình 5. Giao diện Databrick community - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 5. Giao diện Databrick community (Trang 27)
Hình 6. Tính năng của Delta Lake - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 6. Tính năng của Delta Lake (Trang 29)
Hình 7. Amazon Web Service 2.6.1. S3 service - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 7. Amazon Web Service 2.6.1. S3 service (Trang 30)
Hình 8. AWS S3 - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 8. AWS S3 (Trang 31)
Hình 11. AWS CloudFormation - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 11. AWS CloudFormation (Trang 34)
Hình 12. AWS Glue - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 12. AWS Glue (Trang 35)
Hình 13. AWS Lambda - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 13. AWS Lambda (Trang 36)
Hình 16. Bộ dữ liệu khảo sát về sức khỏe tâm thần. - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 16. Bộ dữ liệu khảo sát về sức khỏe tâm thần (Trang 41)
Hình 18. Visualize self_employd - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 18. Visualize self_employd (Trang 43)
Hình 20. Visualize Tech_company - Xây dựng một spark pipeline sử dụng aws và delta lake
Hình 20. Visualize Tech_company (Trang 44)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w