Về cơ bản, DataEngineer là người thiết kế và triển khai các hệ thống dữ liệu, bao gồm các cơ sở dữ liệu, hệ thống lưu trữ, công cụ xử lý dữ liệu và các ứng dụng phân tích dữ liệu.. Kỹ nă
Trang 1TRƯỜ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
XÂY DỰNG ETL PIPELINE BẰNG NỀN TẢNG AWS
Giảng viên hướng dẫn : ThS.Trần Thị Thu Thảo
Trang 2LỜI CẢM ƠN
Để hoàn thành báo cáo thực tập nghề nghiệp này, trước tiên em xin gửi lời cảm ơnchân thành đến các quý thầy, cô giảng viên khoa Thống kê - Tin học, trường Đại họcKinh tế - Đại học Đà Nẵng đã tạo điều kiện và hỗ trợ em trong quá trình học tập và thựctập Nhờ có sự chỉ dẫn và động viên của các thầy cô, chúng em đã có hoàn thành báo cáo
thực tập nghề nghiệp với tên đề tài “Xây dựng ETL Pipeline bằng nền tảng AWS”
Tiếp theo, em xin gửi lời cảm ơn đến quý Công ty TNHH Giải pháp Phần mềmTường Minh Bình Định, nơi chúng em đã được thực tập Em xin cảm ơn ban lãnh đạocông ty đã tạo cơ hội cho em được làm việc trong một môi trường chuyên nghiệp và thânthiện Em cũng xin cảm ơn các anh chị cán bộ, nhân viên phòng Data Science đã giúp đỡ
em trong dự án và công việc Nhờ có sự hướng dẫn và chia sẻ của các anh chị, em đã cóđược những kinh nghiệm và bài học thực tiễn rất bổ ích
Đặc biệt, em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy TS.Trần ThịThu Thảo - Giảng viên hướng dẫn và anh Trần Nam Hải - người đã trực tiếp hướng dẫntại công ty đã theo dõi quá trình thực tập của em, luôn sẵn sàng giải đáp những thắc mắc
và khó khăn Đã dành cho chúng em những lời khuyên và góp ý quý giá để hoàn thiện bàibáo cáo này
Trong quá trình thực tập và thực hiện báo cáo, vì kiến thức còn nhiều hạn chế nên
em không thể tránh khỏi những sai sót, kính mong nhận được sự góp ý của quý thầy cô,quý công ty để chúng em có thể rút kinh nghiệm và chỉnh sửa
Em xin chân thành cảm ơn!
Trang 3LỜI CAM ĐOAN
Em xin cam đoan bài báo cáo “Xây dựng ETL Pipeline bằng nền tảng AWS” là
kết quả nghiên cứu của em dưới sự hướng dẫn của giảng viên hướng dẫn TS.Trần ThịThu Thảo và anh Trần Nam Hải tại Công ty TMA Bình Định
Báo cáo thực tập này là sản phẩm mà em đã nổ lực nghiên cứu trong suốt thời gianthực tập tại Công ty TMA Bình Định Em cam kết tất cả những thông tin được cung cấptrong báo cáo thực tập nghề nghiệp này là chính xác, trung thực Em xin chịu hoàn toànmọi trách nhiệm, kỷ luật của nhà trường nếu có vấn đề nào xảy ra
Trang 4MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP VÀ ĐỀ TÀI 2
1.1 Giới thiệu tổng quát về đơn vị thực tập 21.1.1 Thông tin chung về đơn vị thực tập 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT HỖ TRỢ XÂY DỰNG ETL PIPELINE BẰNG
2.1 Giới thiệu về công việc Kỹ sư dữ liệu 4
2.1.2 Kỹ năng cần thiết cho Kỹ sư dữ liệu 42.1.3 Công nghệ và công cụ thường được sử dụng trong công việc 4
Trang 52.2 Giới thiệu về Hồ dữ liệu 6
2.3.2 Các trường hợp sử dụng ETL Pipeline 82.4 Giới thiệu về nền tảng và dịch vụ của AWS 8
2.4.3 Các dịch vụ AWS được sử dụng trong dự án 9
CHƯƠNG 3 ỨNG DỤNG CÁC DỊCH VỤ TRÊN NỀN TẢNG AWS ĐỂ XÂY
Trang 63.3.4 Tạo Crawler trong AWS Glue 19
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
Trang 7DANH MỤC HÌNH ẢNH
Hình 3.2.1 Giao diện hỗ trợ hình cho việc thiết kế 14
Hình 3.3.4 Tùy chọn thông tin bucket sẽ tạo 16Hình 3.3.5 Chọn nút “Create bucket” ở cuối trang 17
Trang 8Hình 3.3.17 Các crawlers đã tạo 22Hình 3.3.18 Tạo Glue Job trong AWS Glue Studio 22Hình 3.3.19 Giao diện “Spark script editor” 22
Hình 3.3.35 Chi tiết cơ bản về Glue Job sẽ tạo 27Hình 3.3.36 Chi tiết nâng cao về Glue Job sẽ tạo 27
Hình 3.3.39 Giao diện trigger “job-trigger” 28Hình 3.3.40 Nguồn tài nguyên được kích hoạt 28
Hình 3.3.44 Chọn quyền truy cập cho function 30
Trang 9Hình 3.3.45 Giao diện sau khi tạo function 30
Hình 3.3.50 Quá trình crawler dữ liệu thô hoàn tất 32
Hình 3.3.55 Hai bảng sau khi hoàn tất quy trình 33
Hình 3.3.62 Kết quả truy vấn bảng dữ liệu thô 36
Hình 3.3.64 Kết quả truy vấn bảng dữ liệu sạch 36
Trang 10DANH MỤC CÁC TỪ VIẾT TẮT
AWS : Amazon Web Services
NFT : Non-Fungible Token
GCP : Google Cloud Platform
SQL : Structured Query Language
DB : Database
SaaS : Software as a Service
CRM : Customer Relationship Management
IaaS : Infrastructure as a Service
PaaS : Platform as a Service
S3 : Simple Storage Service
ETL : Extract, Transform, Load
IAM : Identity and Access Management
API : Application Programming Interface
MLlib : Machine Learning Library
Trang 11LỜI MỞ ĐẦU
1 Mục tiêu của đề tài
- Xây dựng một hệ thống xử lý xử liệu thông minh và hiệu quả, từ việc xử lý và lưutrữ dữ liệu Giúp tăng cường khả năng phân tích và đưa ra giải pháp dựa trên dữliệu
- Để xây dựng đường ống dữ liệu, đề tài này sẽ thực hiện các bước xử lý, lưu trữ, vàtrực quan hóa dữ liệu Kết quả đề tài này hướng tới là có được một hệ thống xử lý
dữ liệu được tổ chức và xử lý dữ liệu một cách hoàn chỉnh, tự động và hiệu quảhơn Giúp cho việc đánh giá, so sánh dữ liệu trở nên dễ dàng và chính xác hơn
2 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Dữ liệu sử dụng cho đề tài nghiên cứu được lấy từ 02/2021
Đề tài nghiên cứu về các cuộc giao dịch được ghi lại trên sàn giao dịch điện tửNFT OpenSea
- Phạm vi nghiên cứu: Nghiên cứu, phân tích số lượng, giao dịch và thống kê sốlượng giao dịch hay các NFT trong từ đầu 02/2021 đến cuối 02/2021
3 Kết cấu của đề tài
Đề tài được tổ chức gồm phần mở đầu, 3 chương nội dung và phần kết luận
- Mở đầu
- Chương 1: Giới thiệu về đơn vị thực tập và đề tài
- Chương 2: Cơ sở lý thuyết hỗ trợ xây dựng ETL Pipeline trên nền tảng AWS
- Chương 3: Ứng dụng các dịch vụ trên nền tảng AWS để xây dựng ETL Pipeline
- Kết luận và hướng phát triển
Trang 12CHƯƠNG 1 GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP VÀ ĐỀ TÀI
1.1. Giới thiệu tổng quát về đơn vị thực tập
1.1.1 Thông tin chung về đơn vị thực tập
- Tên đầy đủ: TMA Solutions Bình Định
- Công ty mẹ: Công ty TNHH Giải Pháp Phần Mềm Tường Minh
- Trụ sở chính: 111, Đường Nguyễn Đình Chính, Quận Phú Nhuận, Thành phố HồChí Minh, Việt Nam
Hình 1.1.1 Công ty TMA Solutions Bình Định
1.1.2 Thông tin liên hệ
- Địa chỉ: Công viên Sáng tạo TMA, Đại lộ Khoa học, Thung lũng Sáng tạo QuyNhơn, P Ghềnh Ráng, TP Quy Nhơn, Bình Định
- Số điện thoại: (0256) 389 8979
- Email: contact@tma-binhdinh.vn
- Website: https://www.tma-binhdinh.vn
1.1.3 Lịch sử hình thành
- Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam 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)
Trang 13- Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 5 năm, TMA BìnhĐịnh đã phát triển nhanh chóng với hơn 600 kỹ sư, trong đó có nhiều kỹ sư đanglàm việc tại TP.HCM đã trở về làm việc tại quê hương.
- Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA BìnhĐịnh (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo QuyNhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng
1.1.4 Lĩnh vực kinh doanh
- Tài chính, Ngân hang & Bảo hiểm
- Sức khỏe/ Y tế
- Nông nghiệp & Chế biến thực phẩm
- Thương mại điện tử & Phân phối
- Vận tải & Logistic
- Giáo dục
- Khách sạn & Du lịch
- Viễn thông
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT HỖ TRỢ XÂY DỰNG ETL PIPELINE
BẰNG NỀN TẢNG AWS
1.1. Giới thiệu về công việc Kỹ sư dữ liệu
1.1.1 Khái niệm về Kỹ sư dữ liệu
Kỹ sư dữ liệu là một chuyên gia về xây dựng hệ thống xử lý dữ liệu, đảm bảo dữliệu được thu thập, lưu trữ và truy xuất một cách hiệu quả và an toàn Về cơ bản, DataEngineer là người thiết kế và triển khai các hệ thống dữ liệu, bao gồm các cơ sở dữ liệu,
hệ thống lưu trữ, công cụ xử lý dữ liệu và các ứng dụng phân tích dữ liệu
1.1.2 Kỹ năng cần thiết cho Kỹ sư dữ liệu
Để trở thành một Kỹ sư dữ liệu, cần có kiến thức về cơ sở dữ liệu, lập trình, xử lý
dữ liệu lớn, công nghệ lưu trữ và công cụ phân tích dữ liệu, kỹ năng tư duy logic và giảiquyết vấn đề, và kiến thức về an toàn thông tin và bảo mật dữ liệu Kỹ sư dữ liệu cần hiểubiết về các loại cơ sở dữ liệu như quan hệ, không quan hệ, đồ thị và các công nghệ lưu trữ
dữ liệu Kỹ năng lập trình là rất quan trọng để xây dựng các ứng dụng xử lý dữ liệu và tối
ưu hóa hiệu suất của hệ thống Khả năng xử lý dữ liệu lớn cũng là một kỹ năng quantrọng để tối ưu hóa hiệu suất của hệ thống và đảm bảo tính toàn vẹn của dữ liệu Kỹ năng
tư duy logic và giải quyết vấn đề là một điều quan trọng để phân tích và giải quyết cácvấn đề trong quá trình xử lý dữ liệu Cuối cùng, kiến thức về an toàn thông tin và bảo mật
dữ liệu cũng rất cần thiết để đảm bảo tính toàn vẹn và an toàn của dữ liệu
1.1.3 Công nghệ và công cụ thường được sử dụng trong công việc
Công nghệ và công cụ thường được sử dụng trong công việc kỹ sư dữ liệu baogồm các nền tảng đám mây như AWS, GCP, Azure, các công cụ phân tích dữ liệu nhưSQL, Python, R, SAS, các công cụ lưu trữ dữ liệu như MySQL, Oracle, MongoDB,Cassandra và các công nghệ phân tán như Hadoop và Spark Kỹ sư dữ liệu cần hiểu và sửdụng các công nghệ và công cụ này để xử lý, lưu trữ và quản lý dữ liệu lớn và phức tạp
Trang 15- Mức lương hấp dẫn: Kỹ sư dữ liệu là một nghề yêu cầu kỹ năng cao, và do đó,mức lương của ngành này thường rất cạnh tranh và nằm trong nhóm những ngànhnghề có mức lương hấp dẫn nhất
- Liên tục đổi mới: Kỹ sư dữ liệu là một lĩnh vực liên tục thay đổi, với các côngnghệ và công cụ mới được phát triển để cải thiện quản lý và phân tích dữ liệu
- Tính linh hoạt: Kỹ sư dữ liệu thông thường có thể làm việc trong nhiều môi trườngkhác nhau, bao gồm môi trường văn phòng truyền thống, làm việc từ xa hoặc làmviệc tự do tùy theo tính chất của doanh nghiệp làm việc
Trang 16b) Thách thức
- Công nghệ thay đổi nhanh chóng: Vừa là cơ hội và cũng là thách thức, các kỹ sư
dữ liệu cần liên tục cập nhật kỹ năng và kiến thức để theo kịp các công nghệ và xuhướng mới nhất
- Dữ liệu phức tạp: Dữ liệu mà các kỹ sư dữ liệu làm việc có thể phức tạp và khóquản lý, đòi hỏi các kỹ năng tiên tiến trong việc mô hình dữ liệu, lưu trữ và xử lý
- Rủi ro về bảo mật và riêng tư dữ liệu: Các kỹ sư dữ liệu cần nhận thức về các rủi
ro về việc xâm nhập dữ liệu và đảm bảo rằng dữ liệu được lưu trữ và xử lý an toàn
và tuân thủ các quy định liên quan
- Kỹ năng liên ngành: Kỹ sư dữ liệu thường yêu cầu sự hợp tác với các chuyên giakhác, chẳng hạn như nhà khoa học dữ liệu, nhà phân tích kinh doanh và nhà pháttriển phần mềm, đòi hỏi kỹ năng giao tiếp và giải quyết vấn đề liên ngành
- Chất lượng dữ liệu: Đảm bảo độ chính xác, đầy đủ và nhất quán của dữ liệu có thể
là một thách thức đối với các kỹ sư dữ liệu, đòi hỏi sự chú ý kỹ lưỡng đến chi tiết
và tập trung vào kiểm soát chất lượng
1.2. Giới thiệu về Hồ dữ liệu
Hồ dữ liệu là nơi cho phép chúng ta có thể lưu trữ tất cả dữ liệu có cấu trúc vàkhông có cấu trúc ở bất kỳ quy mô nào Chúng ta có thể lưu trữ dữ liệu của mình nguyênvẹn, mà không cần phải trước tiên cấu trúc dữ liệu, và chạy các loại phân tích khác nhau -
từ bảng điều khiển và trực quan hóa đến xử lý dữ liệu lớn, phân tích thời gian thực và họcmáy để hỗ trợ quyết định tốt hơn
Hình 2.2.1 Kiến trúc của Hồ dữ liệu
Trang 171.3. Giới thiệu về ETL Pipeline
1.3.1 Khái niệm về ETL Pipeline
Một ETL pipeline mô tả các quy trình liên quan đến việc trích xuất dữ liệu từ cácnguồn khác nhau, biến đổi dữ liệu và sau đó tải nó vào một đích đến Bằng cách sử dụngphương pháp tích hợp dữ liệu ETL, các nhà phân tích có quyền truy cập vào một nơichứa dữ liệu trung tâm đã được làm sạch và định dạng Họ có thể sử dụng dữ liệu này chophân tích và thông tin kinh doanh
Hình 2.3.1 Các bước trong ETL
Có 3 giai đoạn trong quá trình ETL:
- Trích xuất: Trong giai đoạn trích xuất của quá trình ETL, dữ liệu được thu thập từ
nhiều nguồn và được tải lên một khu vực trung gian hoặc điểm đến tạm thời Cácnguồn dữ liệu phổ biến bao gồm ứng dụng SaaS, nền tảng CRM, công cụ bán hàng
và tiếp thị, luồng sự kiện, cơ sở dữ liệu SQL hoặc NoSQL Dữ liệu từ các nguồnnày có thể được đồng bộ hóa cùng một lúc hoặc không đồng bộ, tùy thuộc vào yêucầu phân tích dữ liệu
- Biến đổi: Trong quá trình biến đổi dữ liệu (transform) trong quá trình ETL, dữ liệu
gốc từ mỗi nguồn phải được làm sạch, cấu trúc và định dạng để sử dụng trong các
mô hình dữ liệu cho phân tích Quá trình biến đổi này bao gồm các công việc nhưchuẩn hóa, làm sạch, cấu trúc lại, loại bỏ bản sao và xác nhận dữ liệu Tùy thuộcvào yêu cầu cụ thể, nó cũng có thể bao gồm việc tóm tắt, sắp xếp, và tạo chỉ mục
Trang 18Thay vì viết mã biến đổi cho từng tập dữ liệu, nhà phát triển và nhóm dữ liệu cóthể sử dụng các biến đổi có sẵn để tăng tốc quá trình này.
- Tải lên: Quá trình tải lên (load) trong quá trình ETL di chuyển dữ liệu đã được
biến đổi đến một đích tập trung như cơ sở dữ liệu, kho dữ liệu, hồ sơ dữ liệu hoặckho dữ liệu đám mây Ngoài ra, dữ liệu cũng có thể được gửi trực tiếp đến cáccông cụ thông tin kinh doanh để phân tích nhanh chóng
1.3.2 Các trường hợp sử dụng ETL Pipeline
Công cụ ETL thông thường được sử dụng cho các mục đích sau:
- Tập trung và tiêu chuẩn hóa dữ liệu: ETL pipeline có thể tập trung dữ liệu từ
nhiều nguồn vào một cơ sở dữ liệu trung tâm, chẳng hạn như kho dữ liệu mục tiêu,nơi các nhà phân tích có thể truy cập và sử dụng dữ liệu đã được làm sạch chophân tích
- Di cư dữ liệu: ETL pipeline có thể giúp các tổ chức chuyển từ các hệ thống lưu trữ
cũ, kế thừa sang các hệ thống hiện đại hơn, giúp nâng cao tốc độ và phạm vi phântích
- Phân tích sâu: Tập dữ liệu có cấu trúc có thể được đưa vào các công cụ phân tích
để nhanh chóng thu được thông tin mà không mất mất dữ liệu ngữ cảnh Ngữ cảnh
là rất quan trọng cho phân tích vì nó cho thấy cách các kết quả hoặc kết luận cụthể đã được thu được và giúp các nhà phân tích giải quyết và khắc phục các lỗi
1.4. Giới thiệu về nền tảng và dịch vụ của AWS
1.4.1 Giới thiệu về điệu toán đám mây
Điện toán đám mây là việc phân phối các tài nguyên CNTT theo nhu cầu quaInternet với chính sách thanh toán theo mức sử dụng Thay vì mua, sở hữu và bảo trì cáctrung tâm dữ liệu và máy chủ vật lý, bạn có thể tiếp cận các dịch vụ công nghệ, như nănglượng điện toán, lưu trữ và cơ sở dữ liệu, khi cần thiết, từ nhà cung cấp dịch vụ đám mâynhư Amazon Web Services
Trang 191.4.2 Nền tảng Amazon Web Services
Amazon Web Services là nền tảng đám mây toàn diện và được sử dụng phổ biếnnhất thế giới bao gồm cơ sở hạ tầng dưới dạng dịch vụ (IaaS) và nền tảng dưới dạng dịch
vụ (PaaS) Dịch vụ AWS cung cấp các giải pháp có quy mô linh hoạt cho điện toán, lưutrữ, cơ sở dữ liệu, phân tích, v.v
Hình 2.4.1 Nền tảng Amazon Web Services
1.4.3 Các dịch vụ AWS được sử dụng trong dự án
a) AWS S3
Với Amazon, việc lưu trữ dữ liệu bất cứ lúc nào và bất cứ đâu đã trở nên dễ dànghơn bao giờ hết Amazon S3 là một trong những dịch vụ tốt nhất được cung cấp bởiAWS, là một dịch vụ lưu trữ đối tượng cung cấp tính mở rộng, khả dụng, bảo mật và hiệusuất cao Bạn cũng có thể truy xuất dữ liệu, dữ liệu được lưu trữ ở các "lớp lưu trữ" màkhông cần đầu tư thêm và bạn cũng có thể quản lý nó tốt Amazon S3 rất phù hợp với cácdoanh nghiệp lớn nơi lượng dữ liệu lớn được quản lý cho các mục đích khác nhau Nó đikèm với khả năng xử lý bất kỳ khối lượng dữ liệu nào với các điều khiển truy cập mạnh
mẽ của nó, và các công cụ sao chép ngăn ngừa xóa vô tình và cũng duy trì điều khiểnphiên bản dữ liệu
b) AWS Glue
AWS Glue là một dịch vụ ETL (Extract, Transform, and Load) được quản lý hoàntoàn, giúp việc phân loại dữ liệu, làm sạch, làm phong phú và di chuyển nó một cáchđáng tin cậy giữa các kho lưu trữ dữ liệu trở nên đơn giản và tiết kiệm chi phí Nó baogồm một kho dữ liệu trung tâm được gọi là danh mục dữ liệu AWS Glue, một động cơ
Trang 20sát công việc AWS Glue là một dịch vụ không máy chủ, điều này có nghĩa là không có
cơ sở hạ tầng để thiết lập hoặc quản lý
c) AWS Athena
AWS Athena là một dịch vụ truy vấn tương tác không máy chủ cho phép phân tích
dữ liệu SQL thông thường trên Amazon S3 Athena dựa trên Presto, một động cơ truyvấn SQL phân tán, và có thể truy vấn dữ liệu trên Amazon S3 nhanh chóng bằng cú phápSQL truyền thống Không có cơ sở hạ tầng nào cần xử lý với Athena, vì vậy bạn có thểtập trung vào phân tích dữ liệu với quy mô lớn Để có ý tưởng hơn về AWS Athena,chúng ta hãy hiểu kiến trúc trước
d) AWS Lambda
Amazon Lambda, là một dịch vụ tính toán không máy chủ và dựa trên sự kiện chophép bạn chạy mã cho các ứng dụng ảo hoặc dịch vụ backend tự động Bạn không cầnphải lo lắng về các máy chủ và cụm khi làm việc với các giải pháp sử dụng AmazonLambda Nó cũng rất tiết kiệm chi phí, bạn chỉ phải trả tiền cho các dịch vụ bạn sử dụng.Với vai trò là người dùng, trách nhiệm của bạn chỉ là tải lên mã và Lambda sẽ xử lý phầncòn lại Sử dụng Lambda, bạn có được khả năng mở rộng phần mềm chính xác và sẵnsàng mở rộng rộng rãi Với hàng trăm đến hàng nghìn khối lượng công việc mỗi giây,AWS Lambda xử lý các yêu cầu thực thi mã một cách đáng tin cậy Đó là một trongnhững dịch vụ tốt nhất được cung cấp bởi AWS cho các nhà phát triển
e) AWS IAM
AWS IAM là dịch vụ web giúp bạn kiểm soát quyền truy cập vào tài nguyên AWSmột cách an toàn Với IAM, bạn có thể quản lý tập trung các quyền kiểm soát những tàinguyên AWS mà người dùng có thể truy cập Bạn sử dụng IAM để kiểm soát ai được xácthực và được ủy quyền sử dụng tài nguyên
1.5. Giới thiệu về công cụ hỗ trợ
1.5.1 Ngôn ngữ truy vấn SQL
Trang 21SQL là viết tắt của "Structured Query Language", một ngôn ngữ lập trình được sửdụng để quản lý và thao tác cơ sở dữ liệu quan hệ Đây là một ngôn ngữ tiêu chuẩn dùng
để quản lý dữ liệu trong cơ sở dữ liệu và được sử dụng bởi các nhà phát triển, nhà phântích dữ liệu và quản trị cơ sở dữ liệu
1.5.2 Ngôn ngữ lập trình Python
Python là một ngôn ngữ lập trình thông dịch, hướng đối tượng, cấp cao với cúpháp linh hoạt Các cấu trúc dữ liệu tích hợp cấp cao, kết hợp với kiểu dữ liệu động vàràng buộc động, làm cho Python rất hấp dẫn cho việc phát triển ứng dụng nhanh chóng,cũng như sử dụng như một ngôn ngữ script hoặc kết nối các thành phần hiện có với nhau
Cú pháp đơn giản, dễ học của Python nhấn mạnh tính đọc được và do đó giảm chi phíbảo trì chương trình Python hỗ trợ modules và packages, khuyến khích tính mô-đun hóachương trình và tái sử dụng mã nguồn
1.5.3 Hệ sinh thái Apache Spark
Apache Spark là một hệ thống xử lý phân tán mã nguồn mở được sử dụng cho cáccông việc làm việc với dữ liệu lớn Nó sử dụng bộ nhớ cache trong và thực thi truy vấntối ưu để thực hiện các truy vấn phân tích nhanh chóng trên dữ liệu với bất kỳ quy mônào Nó cung cấp các API phát triển bằng Java, Scala, Python và R, và hỗ trợ việc tái sửdụng mã nguồn qua nhiều công việc khác nhau, bao gồm xử lý theo lô, truy vấn tươngtác, phân tích thời gian thực, học máy và xử lý đồ thị Bạn có thể thấy nó được sử dụngbởi các tổ chức trong mọi ngành công nghiệp, bao gồm FINRA, Yelp, Zillow, DataXu,Urban Institute và CrowdStrike Apache Spark đã trở thành một trong những framework
xử lý dữ liệu lớn phân tán phổ biến nhất, với 365.000 thành viên meetup vào năm 2017
1.5.4 Giới thiệu về PySpark
Trang 22PySpark là API Python cho Apache Spark Nó cho phép bạn thực hiện xử lý dữliệu quy mô lớn thời gian thực trong một môi trường phân tán sử dụng Python Ngoài ra,PySpark cung cấp một PySpark shell cho việc phân tích tương tác dữ liệu PySpark kếthợp khả năng học và sử dụng dễ dàng của Python với sức mạnh của Apache Spark để chophép xử lý và phân tích dữ liệu với bất kỳ quy mô nào cho những người quen thuộc vớiPython PySpark hỗ trợ tất cả các tính năng của Spark như Spark SQL, DataFrames,Structured Streaming, Machine Learning (MLlib) và Spark Core.
Hình 2.5.1 Logo PySpark
Trang 23CHƯƠNG 3 ỨNG DỤNG CÁC DỊCH VỤ TRÊN NỀN TẢNG AWS ĐỂ XÂY
Hình 3.1.1 Sàn giao dịch OpenSea
2.1.2 Cấu trúc dữ liệu
Bộ dữ liệu bao gồm 108147 dòng được lưu dưới dạng tệp tin csv với 17 cột nhưsau:
- collections_slug : Định danh của bộ sưu tập
- collection_name: Tên của bộ sưu tập
- collection_url: Địa chỉ url của bộ sưu tập
- asset_id: Định danh của NFT được bán
- asset_name: Tên của NFT được bán
- asset_description: Mô tả của NFT được bán
- asset_contract_date: Ngày tạo địa chỉ hợp đồng NFT được bán
- asset_url: Địa chỉ url của NFT được bán
- asset_image_url: Địa chỉ url hình ảnh của NFT được bán
- event_id: Định danh duy nhất của giao dịch
- event_time: Thời điểm giao dịch được ghi nhận
- event_auction_type: Loại đấu giá
- event_contract_address: Địa chỉ hợp đồng của giao dịch
- event_quantity: Số lượng sản phẩm được bán
- event_payment_symbol: Loại tiền điện tử được sử dụng trong giao dịch
Trang 242.2. Sơ đồ kiến trúc ETL Pipeline
2.2.1 Công cụ thiết kế
Draw.io là một nền tảng trực tuyến miễn phí cho phép chúng ta có thể tạo và chỉnhsửa các sơ đồ, biểu đồ và các loại hình vẽ khác Nó cung cấp một giao diện dễ sử dụng,cho phép chúng ta kéo và thả các thành phần để tạo ra các sơ đồ kiến trúc, sơ đồ luồngcông việc và sơ đồ tư duy, và nhiều loại biểu đồ khác
Hình 3.2.1 Giao diện hỗ trợ hình cho việc thiết kế
2.2.2 Thiết kế sơ đồ kiến trúc ETL Pipeline
Hình 3.2.2 Sơ đồ kiến trúc ETL Pipeline
2.3. Triển khai xây dựng ETL Pipeline trên AWS
2.3.1 Tạo các vai trò trong IAM
Trang 25Hình 3.3.1 Giao diện của AWS IAMMục đích của việc tạo vai trò truy cập trong AWS IAM cho phép chúng ta có thểquản lý quyền truy cập theo cách có tổ chức và dễ dàng quản lý phiên truy cập Thay vìgán quyền truy cập trực tiếp cho mỗi người dùng Chúng ta cũng quản lý quyền truy cậpcho các dịch vụ và tài nguyên khác nhau trong hệ thống
Hình 3.3.2 Các vai trò đã tạoKhi chúng ta sử dụng các dịch vụ của AWS, chúng ta phải gán cho nó vai tròIAM Tức là chúng ta có thể hạn chế quyền truy cập các chức năng hoặc quản lý phiêntruy cập thông qua IAM đó
2.3.2 Tạo bucket trong Amazon S3
Trang 26Hình 3.3.3 Giao diện ban đầu của Amazon S3
Hình 3.3.4 Tùy chọn thông tin bucket sẽ tạoBucket trong Amazon S3 là một vùng lưu trữ dữ liệu có tên duy nhất, được sửdụng để lưu trữ và quản lý các đối tượng dữ liệu như tệp tin, hình ảnh, video và tài liệu
Nó cung cấp khả năng lưu trữ và truy cập dữ liệu trong môi trường đám mây AWS Ởbước này em sẽ chọn các tùy chọn đối với bucket sẽ tạo ví dụ như cấu hình chung, quyền
sở hữu đối tượng, các cài đặt nâng cao,… ở các hình sau