ĐẶT VẤN ĐỀ Trong bất cứ lĩnh vực nào thì các giao dịch khách hàng là yếu tố quan trọng để phân tích hành vi, thông tin giao dịch và nếu giao dịch đó có vấn đề dựa vào các phân tích có thể đưa ra hướng giải quyết khắc phục. HƯỚNG GIẢI QUYẾT Áp dụng cách xử lý dữ liệu của kiến trúc Lambda là xử lý dữ liệu lịch sử và dữ liệu theo thời gian thực để xây dựng mô hình xử lý dữ liệu để phát hiện ra các giao dịch bất thường. 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Khái niệm về dữ liệu Chúng ta đang sống trong thời đại công nghệ ngày càng phát triển lớn mạnh thì sẽ có rất nhiều câu hỏi được đặt ra đó là dữ liệu là gì và chúng được hình thành như thế nào.
Một cách hiểu đơn giản thì dữ liệu là các thông tin, sự hiểu biết sâu sắc, kiến thức và sức mạnh để đưa ra nhận xét và phân tích dự đoán trên dữ liệu thu thập được. Xung quanh cuộc sống hằng ngày đều tồn tại dữ liệu. Những tiến bộ trong tin học trong những thập kỷ qua cho phép hàng loạt các nguồn dữ liệu mới ra đời. Với việc ảnh hưởng đến lượng dữ liệu được tạo ra, bên cạnh đó phải có các phương pháp mới để lưu trữ dữ liệu này một cách hiệu quả, xử lý và biến nó thành những tập dữ liệu có giá trị.
Dữ liệu có thể được coi là một đơn vị thông tin, do đó giá trị thực của dữ liệu được liên kết chặt chẽ với giá trị của thông tin có thể được trích xuất từ nó. Thông tin có thể cải thiện việc ra quyết định, thúc đẩy tiến bộ khoa học và thịnh vượng kinh tế, về cơ bản là cải thiện và nâng cao chất lượng cuộc sống. Dữ liệu lớn Dữ liệu lớn (Big Data) là một thuật ngữ tương đối mới đang trở nên cực kỳ phổ biến trong vài năm qua. Big Data là những nguồn thông tin có đặc điểm chung khối lượng lớn, tốc độ nhanh và dữ liệu định dạng dưới nhiều hình thức khác nhau, do đó muốn khai thác được các tập dữ liệu lớn đòi hỏi phải có hệ thống để đưa ra quyết định, khám phá và tối ưu hóa quy trình xử lý.
Bộ dữ liệu lớn có thể được mở rộng lên đến terabyte hoặc thậm chí petabyte của dữ liệu có cấu trúc, bán cấu trúc hoặc phi cấu trúc. Big Data cũng thường được mô tả bằng ba chữ V – Volume (khối lượng), Velocity (vận tốc) và Variety (sự đa dạng) [1]. Sau này được bổ sung hai V đó là veracity (tính xác thực) và value (giá trị). Năm chữ V được mô tả như sau: Volume (khối lượng): đặc điểm này đề cập đến số lượng dữ liệu.
Trước đây, việc lưu trữ hàng terabyte dữ liệu sẽ là một vấn đề đối với các nhà nghiên cứu, nhưng các công nghệ mới đã một phần khắc phục được vấn đề này. 4 Velocity (vận tốc): vận tốc đề cập đến việc tạo dữ liệu và tốc độ di chuyển phải được xử lý kịp thời. Đó là một khía cạnh quan trọng đối với dữ liệu đến từ các hệ thống trực tuyến, cảm biến hoặc phương tiện truyền thông xã hội. Variety (sự đa dạng): dữ liệu có thể có đủ loại định dạng, từ dữ liệu có cấu trúc có thể được lưu trữ trong cơ sở dữ liệu truyền thống đến dữ liệu phi cấu trúc như tệp hình ảnh hoặc video.
Veracity (độ chính xác): độ chính xác mô tả mức độ chính xác và hợp lệ của dữ liệu. Ví dụ về dữ liệu có tính xác thực bao gồm các bài đăng trên Facebook và Twitter có từ viết tắt hoặc lỗi chính tả. Value (giá trị): mô tả giá trị mà dữ liệu nắm giữ. Nó thể hiện động lực lớn nhất để lưu trữ và xử lý dữ liệu.
Xử lý dữ liệu theo hướng hiện đại Với việc dữ liệu tăng dần theo thời gian và hình thành các bộ dữ liệu với dung lượng lớn thì bản chất dữ liệu lớn mang lại một số thách thức nếu dữ liệu được xử lý trên quy mô đầy đủ, trong khoảng thời gian có thể chấp nhận được và để cung cấp kết quả nhất quán. Để xử lý dữ liệu lớn, một số điểm quan trọng nhất cần được giải quyết là: Mở rộng cơ sở hạ tầng: các nền tảng dữ liệu có khả năng mở rộng có thể đáp ứng những thay đổi nhanh chóng trong quá trình tăng trưởng dữ liệu, cả về lưu lượng hoặc khối lượng. Xử lý phức tạp: vì dữ liệu đến từ nhiều nguồn ở các định dạng và khối lượng khác nhau nên quá trình xử lý dữ liệu hiện đại có thể bao gồm nhiều lớp và bao gồm các luồng dữ liệu phức tạp. Xử lý nhanh chóng: việc xử lý dữ liệu trong thời gian thực trở thành xu hướng công nghệ ngày nay.
Trong một số trường hợp, độ mới của dữ liệu có thể quan trọng hơn số 5 lượng hoặc kích thước của dữ liệu. Giá trị của dữ liệu có thể giảm theo từng giây, điều này mang lại tầm quan trọng của khả năng xử lý nhanh của hệ thống. Luồng dữ liệu liên tục: dữ liệu được cập nhật liên tục thì các ứng dụng vẫn sẽ tiếp tục chạy mà không bị ảnh hưởng nhiều ngay cả khi có một hoặc nhiều lỗi hệ thống (lỗi máy chủ, lỗi mạng,…). Các ứng dụng sẽ có thể xử lý các lỗi một cách nhẹ nhàng mà không bị mất hoặc gián đoạn dữ liệu.
Phân tích hiệu quả, có thể tái sử dụng: tầm quan trọng của khoa học dữ liệu đã tăng lên trong những năm gần đây. Khi ngày càng có nhiều công ty sử dụng phương pháp tiếp cận dữ liệu dựa trên quá trình ra quyết định, điều quan trọng là phải đảm bảo rằng tạo ra các kết quả nhất quán, có thể lặp lại. Với việc dữ liệu hình thành một cách liên tục và có dung lượng lớn thì cần phải có những phương pháp cũng như các mô hình, thư viện để có thể lưu trữ tập dữ liệu thô và dữ liệu dạng luồng realtime để phục vụ cho việc phân tích và biến tập dữ liệu trở nên có giá trị sử dụng lâu dài theo thời gian. Điện toán phân tán và xử lý dữ liệu quy mô lớn 2.
Apache Hadoop Mô hình Apache Hadoop được phổ biến rộng rãi vì cách tiếp cận của nó cho thấy hiệu quả đối với các tác vụ xử lý dữ liệu. Apache Hadoop tập trung vào việc tạo nền tảng phân tích và lưu trữ đa năng cho dữ liệu lớn. [2] Ngày nay, Hadoop được sử dụng rộng rãi trong các doanh nghiệp chính thống. Thuật ngữ Hadoop thường được sử dụng bởi cả hai mô hình cốt lõi của Apache Hadoop là các framework và nhiều packages được cài đặt sẵn trên Hadoop.
Phần cốt lõi (core) của Apache Hadoop bao gồm năm mô-đun như Hình 1: Hadoop Common: các tiện ích chung hỗ trợ các mô-đun khác của Hadoop. Hadoop Distributed File System (HDFS): là một hệ thống tệp phân tán được thiết kế để lưu trữ các tệp rất lớn với các mẫu truy cập dữ liệu trực tuyến, chạy trên các cụm phần 6 cứng qua việc truy cập dữ liệu truyền trực tuyến. Hệ thống tệp phân tán (HDFS) được xây dựng dựa trên ý tưởng về mẫu ghi một lần, đọc nhiều lần. Nó không yêu cầu phần cứng đắt tiền, có độ tin cậy cao và có thể xử lý hàng petabyte dữ liệu.
HDFS cung cấp khả năng mở rộng và cho phép xử lý song song, vì các tệp được trải rộng trên nhiều máy. Hệ thống tệp cũng cung cấp khả năng chịu lỗi, vì các khối tệp được sao chép trên các nút. Hadoop YARN: là hệ thống quản lý nguồn của cụm Hadoop. YARN đã được ra đời để cải thiện việc triển khai MapReduce và cung cấp các API để yêu cầu và làm việc với các tài nguyên cụm.
Các API được cung cấp thường không được sử dụng trực tiếp mà được gọi bởi các framework tính toán phân tán, bản thân các framework này được xây dựng trên YARN [3]. YARN mang đến khái niệm quản lý tài nguyên trung tâm, cho phép chạy nhiều ứng dụng trên Hadoop một cách hiệu quả. Hadoop MapReduce: hệ thống xử lý song song dữ liệu lớn. Hadoop Ozone: kho lưu trữ đối tượng cho Hadoop.
Các mô-đun trong Hadoop [3] Apache Hadoop có chứa hệ thống HDFS hỗ trợ cho việc lưu trữ dữ liệu một lần và có thể sử dụng dụng được nhiều lần. Không những HDFS mà Hadoop còn có mô hình MapReduce và YARN hỗ trợ việc tính toán song song nhiều máy nên Apache Hadoop có thể coi là lựa chọn hàng đầu cho việc lưu trữ và xữ lý dữ liệu lớn. 7 Bên cạnh các thuận lợi mà Hadoop mang lại, song song đó Hadoop vẫn còn nhiều thiếu sót. Hadoop cho phép lưu trữ và xử lý khối lượng lớn dữ liệu theo cách có khả năng mở rộng, chịu lỗi.
Tuy nhiên, nó có những thiếu sót riêng của nó. Vì HDFS được tối ưu hóa để cung cấp thông lượng cao nên nó sẽ không hoạt động tốt nếu yêu cầu truy cập dữ liệu có độ trễ thấp. Chi phí xử lý cũng là một vấn đề đối với Hadoop vì nó liên quan đến nhiều hoạt động đọc và ghi trên đĩa. Apache Spark Hình 2.
Apache Spark chạy trên cụm [4] Apache Spark ra đời có thể khắc phục được những hạn chế mà Hadoop để lại. Spark được tạo ra cho điện toán đa năng phân tán như là một phản ứng đối với những hạn chế trong mô hình MapReduce, không cần thiết việc liên quan đến số lần đọc và ghi đĩa cao. Spark được sử dụng bằng cách viết trình điều khiển (driver program) thực hiện quá trình điều hướng cấp cao của ứng dụng và khởi chạy song song nhiều hoạt động khác nhau. Mô hình của Spark cung cấp hai khái niệm trừu tượng chính cho lập trình song song nhiều hoạt động khác nhau như Resilient Distributed Datasets (RDDs) – dữ liệu phân tán có khả năng phục hồi và các hoạt động song song trên các bộ dữ liệu này.
RDDs là tập hợp các đối tượng chỉ đọc được phân phối trên một cụm máy. Các đối tượng này có khả năng phục hồi, nghĩa là chúng có khả năng chịu lỗi và có thể phục hồi sau các lỗi bằng cách theo dõi dữ liệu gốc (framework theo dõi cách tính toán một phần dữ liệu nhất định). RDDs cũng được phân phối - dữ liệu của chúng nằm trong bộ nhớ trên các nút cụm. [4] 8 RDDs cho phép thực hiện một số hoạt động song song như: Reduce: kết hợp các thành phần tập dữ liệu bằng hàm kết hợp và tạo ra kết quả cho một chương trình điều khiển.
Collect: gửi tất cả các phần tử của tập dữ liệu tới chương trình trình điều khiển.