Data pipeline là gì
Mục tiêu
Trong thời đại của IoT (Internet of Things) khối lượng dữ liệu sẵn bao gồm tăng với tốc độ chóng khía cạnh dẫn tới nhu cầu cấp thiết của một khối hệ thống phân tích hiệu quả. Bên cạnh ra, sự đa dạng và phong phú của những dữ liệu tới từ khá nhiều nguồn và nhiều định dạng không giống nhau, chẳng hạn như các cảm biến, phiên bản ghi, tài liệu có cấu tạo từ một RDBMS... Và cần phải có một pipepline phân tích công dụng mà hoàn toàn có thể trả về các dữ liệu có giá trị giúp cho những bài toán khiếp tế. Nội dung bài viết này khám phá cách tạo nên một pipeline do đó với các công nghệ tiên tiến độc nhất hiện nay.
Bạn đang xem: Data pipeline là gì
Background
Khoảng thời hạn trước đây lưu trữ dữ liệu bự vô thuộc tốn kém vị thiếu những công nghệ hoàn toàn có thể xử lý một bí quyết hiệu quả. Mẩu truyện đã không giống ở hiện tại khi chi phí lưu trữ trở đề xuất rẻ hơn không ít với sự lộ diện của nhiều technology mới. Một số cột mốc đặc biệt đầu tiên nhắm đến xử lý Big Data có thể kể tới đó là vào khoảng thời gian 2003 khi Google công bố GFS (Google tệp tin System) và các bài báo về Mapreduce. Doug Cutting cũng bước đầu việt một khối hệ thống Big Data dựa trên các khái niệm và phát hành Hadoop, trong số những hệ thống Big Data thông dụng độc nhất vô nhị hiện nay.
Một khối hệ thống phân tích hiệu quả cần phải có tác dụng giữ lại những dữ liệu, xử lý dữ liệu, khai quật các tri thức, đưa thông tin trong một khoảng thời gian chấp nhận được (không đề xuất là thừa trễ để rất có thể đáp ứng những yêu ước nghiệp vụ) cũng giống như đủ hoạt bát để xử trí muôn vàn những trường thích hợp sử dụng.
Tất cả các hệ thống nêu bên trên đều đòi hỏi một pipeline phân tích bao gồm các thành phần như sau:
Các yếu tắc của pipeline phân tích
Các thành phần chính của một pipeline phân tích:
Hệ thống nhắn tin (messaging system)Phân phối các message tới những node khác nhau để xử lýXử lý phân tích, bóc tách tách những suy luận nội suy từ dữ liệu. Bao gồm các vận dụng học sản phẩm trên dữ liệu.Hệ thống lưu trữ dữ liệu (data storage system) giữ gìn các kết quả và tin tức có liên quan.Các hình ảnh (interface), dụng cụ trực quan liêu (visual tools), cảnh báo, etc.Các thông số quan trọng của hệ thống
Các khối hệ thống phân tích đề nghị đáp ứng:
Xử lý được lượng phệ và phong phú và đa dạng của dữ liệu, i.e Big Data. Hệ thống hoàn toàn có thể đáp ứng xử lý cho hàng triệu message đến từ một lượng bự không dứt tăng những thiết bị.Độ trễ thấp: Thời gian thỏa mãn nhu cầu phản hồi xuất sắc (gần như là thời hạn thực). Có khá nhiều các trường hợp thực hiện sẽ đòi hỏi một thời gian đáp ứng hiệu quả, phụ thuộc vào đó những thực thể quan lại trọng hoàn toàn có thể được thông báo về các event sắp xảy ra hoặc ngôi trường hợp thua (failure).Khả năng mở rộng: không ngừng mở rộng trên một tập nhiều thông số kỹ thuật khác nhau, ví dụ điển hình như số lượng các sản phẩm tham gia (hàng trăm nghìn), message (hàng triệu mỗi phút), tàng trữ (nhiều terabytes)Sự đa dạng: ship hàng không giới hạn các trường phù hợp sử dụng, bao hàm cả số đông trường hợp do dự trước. Khi các nghiệp vụ và trường hợp áp dụng thay đổi, khối hệ thống cần phải có khả năng cung cung cấp các tinh chỉnh phù hợp.Sự linh hoạt: đầy đủ linh hoạt để tự điều chỉnh thích hợp với các ngôi trường hợp sử dụng mới. Có thể kết hợp với các phân tích mang tính chất vạc đoán.Tiết kiệm: có ngân sách hiệu quả, tiện ích đem lại của câu hỏi xây dựng một hệ thống như vậy cần lớn hơn chi tiêu bỏ ra.Hệ thống
Một khối hệ thống phân tích kết quả cần buộc phải có một số khả năng đặc biệt để đáp ứng các nhu cầu nghiệp vụ. Ngoài ra, nền tảng technology không đề nghị bị số lượng giới hạn trong ngữ cảnh của chi phí và sử dụng. Các tính năng mà chúng ta đang tra cứu kiếm để sở hữu được:
Xử lý con số dữ liệu phệ (high volume of data): - sử dụng một big data framework giống như như Hadoop để bảo quản dữ liệu.Xử lý dữ liệu theo thời gian thực (real-time data processing): áp dụng đồng thời Kafka và Spark cho giải pháp streaming.Học dự đoán (predictive learning) - có tương đối nhiều giải thuật học vật dụng được cung ứng bởi Spark MLLib xuất xắc Hadoop Mahount library.Lưu trữ các kết quả và dữ liệu. Một khối hệ thống NoSQL như MongoDB có thể là một lựa chọn xuất sắc vì nó cung cấp sự hoạt bát trong phương thức lưu trữ dữ liệu dạng JSON trong schema. Pipeline mà họ đang sản xuất sẽ bao hàm các dữ liệu do laptop tạo ra, do đó MongoDB là một trong những ứng cử viên hữu ích.Báo cáo công dụng - rất có thể sử dụng Tableau hoặc Qlikview hoặc các công rứa mã mối cung cấp mở như Jasper hoặc Brit. Bọn chúng đều hỗ trợ giao diện người sử dụng giúp quản lý thông tin, lịch sử report tốt hơn.Cảnh báo (alert) - hoàn toàn có thể dử dụng Twilio để gửi đi các tin nhắn văn bản, ngoài ra cũng rất có thể sử dụng phương thức gửi cảnh báo trải qua email.Biểu đồ dưới đây thể hiện nay pipeline phân tích bên trong phối cảnh IoT:

Technology stack
Các technology sau trên đây được ưu tiên chắt lọc cho bài toán xây dựng pipeline phân tích. Ngoài ra để giải quyết cho nhu yếu kinh doanh, lựa chọn technology bị tác động bởi nhì tham số: thực hiện và giá cả nhập (cost of entry). Hadoop là framework Big Data phổ dụng tuyệt nhất tuy nhiên gần đây Spark cũng được xã hội sử dụng và phổ cập đáng kể. Với năng lực tích hợp các khía cạnh khách nhau của nhiều các chiến thuật Big Data như Streaming với xây dựng quy mô dự đoán (predictive model) Spark đã trở thành một tuyển lựa sáng giá.
Hệ quản lí trị dữ liệu phân tán Hadoop (Hadoop distributed tệp tin system)Spark StreamingSpark MLLibKafkaMongoDB (hoặc Cassandra)Visualization tool như Tableau, Qlikview, D3.js, etc.Đa số các công nghệ nêu trên phần nhiều đã được tích vừa lòng sẵn trong dịch vụ cloud bởi các nhà cung ứng lớn như Microsoft, IBM, Amazon ... Những giải pháp này rước tới cho họ nhiều lợi ích riêng, ví dụ điển hình như hoàn toàn có thể thử nghiệm nhanh lẹ một phương án nào đó hoặc sản xuất PoCs. Mặc dù nhiên, rất nhiều thứ đã trong quá trình cải cách và phát triển và đôi lúc lựa lựa chọn về công nghệ lại bị số lượng giới hạn từ phía nhà cung ứng platform. Trong khi mong chờ nhà cung cấp cải thiện, đa dạng cũng giống như ổn định hóa các dịch vụ trên, chúng ta có thể tự phân tích và chế tạo một pipeline phân tích đối chọi giản, linh hoạt với dễ kiểm soát của bản thân mình ở môi trường local.
Xem thêm: Cash Flow Statement Of Cash Flows Là Gì, Báo Cáo Lưu Hành Tiền Tệ
Đặc tả chi tiết của Pipeline phân tích
Messaging SystemTừ góc nhìn một hệ thống phân tích, Apache Kafka rất có thể được thực hiện như điểm nhập vào (entry point). Apache Kafka với các tính năng cung cấp thông lượng khủng (high-throughput), phân tán (distributed) và vẻ ngoài publish-suscribe của một messaging system rất cân xứng với những kịch bạn dạng dữ liệu lớn có thể mở rộng khi yêu cầu thiết. Để xử lý bài toán xử lý thời gian thực, Kafka được thực hiện chung một cặp cùng với Spark streaming, bạn dạng thân Spark cung cấp phương án tính toán gấp rút và khả năng mở rộng do áp dụng kiến trúc bộ nhớ lưu trữ nhanh hơn đáng chú ý so với loài kiến trúc map reduce của Hadoop.
Kafka hỗ trợ hai cơ chế: Producer và Listener, API ghi tài liệu vào producer (thông qua Priority Queue), tiếp đến một Spark listener đk lắng nghe trường đoản cú Kafka đang nhận được dữ liệu từ stream. Trải qua sử dụng bề ngoài này, Kafka bảo đảm an toàn được lượng phệ dữ liệu có thể xử lý một biện pháp tuần từ bỏ với tần số cao và Spark streaming hoàn toàn có thể phân phát cũng tương tự xử lý ở rất nhiều node của Hadoop cluster. Cho nên khi dữ liệu tăng lên chúng ta chỉ cần tạo thêm số node (nếu cần) là rất có thể đáp ứng được việc thường xuyên xử lý.
Một điểm mạnh khác từ việc sử dụng Kafka sẽ là mỗi queue hoàn toàn có thể mapping với một trong những kịch bạn dạng sử dụng khác nhau. Fan thiết kế có thể thiết kế các queue bóc tách biệt, đảm bảo an toàn cho quy trình xử lý ngắn gọn xúc tích là buổi tối thiểu. Bọn họ không quan trọng phải viết code để lý cho đầy đủ trường hợp, ngoại lệ nhưng không khi nào xuất hiện tại trong queue.
Data ingestionMột khi tài liệu đã sẵn sàng ở messaging system, họ cần một cơ chế bảo đảm cho dữ liệu tới với con số và gia tốc lớn hoàn toàn có thể được xử lý kết quả đáp ứng được các yêu cầu nghiệp vụ. Điều này có thể đạt được bằng cách sử dụng các API streaming của hệ sinh thái xanh Big Data. Spark Streaming hoàn toàn có thể được sử dụng tại chỗ này để bảo vệ rằng các message cảm nhận sẽ trải ra bên trên cluster và giải pháp xử lý hiệu quả. Một ưu điểm khác đáng để ý của câu hỏi này kia là bạn cũng có thể cấu hình một cửa ngõ sổ thời hạn xử lý nếu như cần. Mang sử bọn họ muốn xử lý dữ liệu mỗi 30 giây hoặc từng 5 phút, vấn đề đó không bị nhờ vào vào khối hệ thống mà vào trường vừa lòng sử dụng.
Xử lý lỗi (error handling)Dữ liệu tới các node khác nhau rất có thể không cân xứng với những tham số yêu cầu thiết. Trong tình huống này, nếu có lỗi phát sinh trong quy trình xử lý của một message, message đó rất cần được được log lại vào file và phân tích sau đó.
Xử lý phân tíchĐây là giai đoạn mà quả trình xử lý tài liệu thực sự được thực hiện. Ở đây, dựa trên những thuộc tính của dữ liệu (metadata), các quy mô phân tích được áp dụng. Ví dụ, nếu chương trình nghe được một message về tài chính, nó đã biết rằng rất cần phải áp dụng một hình thức phát hiện nay gian lận. Phân phát hiện gian lậu này sau đó rất có thể được áp dụng bằng phương tiện của một quy mô dự đoán. Ví dụ, giải sử rằng chúng ta đang cải cách và phát triển một lời giải K-means mà các trường hợp gian lậu được để cờ off, khi quy mô này được chế tạo ra, những thông số không giống nhau của nó sẽ tiến hành đưa vào khối hệ thống trước.
Sự linh hoạt để xử lý các định dạng dữ liệu khác nhau có sẵn thông qua định dạng JSON và triết xuất thông tin quan trọng từ những dữ liệu gồm sẵn. Ví dụ, nếu quy mô học đồ vật của bọn họ được dự đoán phụ thuộc hai tham số pred1 với pred2, chương trình ở lever spark streaming chỉ có thể đọc những biến cần thiết và để lại cho quy mô học máy. Khi mô hình thay đổi, chương trình kiểm soát và điều chỉnh lại những biến trong thời hạn chạy, bởi vì đó cung cấp sự linh hoạt. Sự tự do định dạng từ các thiết bị được triển khai ở lever Data Sink, vị trí chương trình có thể dịch (nếu cần) một văn bạn dạng hoặc CSV qua thể hiện bằng JSON. Bằng phương pháp này, bảo đảm rằng một định dạng sai sẽ ảnh hưởng bắt ở tiến độ trước đó, chứ không gây ra failure của công tác ở tiến trình sau. Điều này cũng bao hàm một số trong những bảo mật cơ bạn dạng và tính linh hoạt, như các message sẽ không còn được truyền trực tiếp tới lever thiết bị.
Bây giờ, lúc message được xử lý, các thông số được đọc, khai quật của những biến được thực hiện, mô hình thích hòa hợp được tải, và những dữ liệu được chuyển vào mô hình. Dựa trên các kết quả có sẵn, những xử lý không giống (cũng có thể thông số kỹ thuật được) rất có thể được tiến hành ở những lớp tiếp theo.
Các công nghệ được chắt lọc ở đây là thư viện MLLib Spark. Những thuật toán học sản phẩm công nghệ phổ biến khác biệt như Decision tree, Random forest, K-means, vv đã bao gồm sẵn, với chúng có thể được sử dụng để tạo ra các quy mô khác nhau. Hơn nữa, MLLib liên tiếp được phát triển, bởi vậy chúng ta cũng có thể mong chờ nó trưởng thành hơn theo thời gian. Ở đây, không chỉ mô hình dự đoán hoàn toàn có thể được sử dụng, mà còn là một cơ chế dựa trên luật rất có thể được phát triển cho mục tiêu giám sát.
Lưu trữ các kết quảSau khi quá trình xử lý phân tích được thực hiện, các công dụng sẽ rất cần phải được xử lý. Dựa trên output, chúng có thể được gửi đến user trong thời gian thực trải qua cảnh báo hoặc cũng có thể được giữ lại xem sau. Để bảo đảm cho dung lượng và vận tốc lưu lớn, NoSQL database với phương thức lưu dữ liệu dưới định hình JSON như MongoDB hoặc stavrou sẽ là lựa chọn xuất sắc nhất. Những cảnh báo thời gian thực rất có thể được thông số kỹ thuật cũng như lập trình nhằm gửi đi các tin nhắn văn bản, sử dụng những dịch vụ như Twilio. Cùng với nguồn lưu trữ dứ liệu này, chúng ta cũng có thể đáp ứng tương đối nhiều giao diện áp dụng tùy vào nhu yếu của fan sử dụng, ví dụ như như report sử dụng Tableau, hoặc xem trên những thiết bị di dộng, etc.
Bảo mật, tin tưởng và có thể mở rộngKhi xây cất một khối hệ thống phân tích, toàn bộ các nhân tố trên cần phải xem xét. Sự chắt lọc của các công nghệ như Hadoop, Spark, với Kafka đã đưa ra những góc cạnh này. Dịch vụ bảo mật Kerberos-based có thể được cấu hình trên các cụm Hadoop, vị đó đảm bảo cho hệ thống. Các thành phần khác như Kafka với Spark điều khiển xe trên một các Hadoop, vì vậy họ cũng được bao che bởi các tính năng bình an của Hadoop. Khi đa số công cụ có thiết kế để xử lý dữ liệu lớn, coppy dữ liệu và độ tin cẩn được cung ứng bởi những cơ sở hạ tầng, bởi vì đó có thể chấp nhận được các kỹ sư triệu tập vào bài toán xây dựng các đề xuất phục vụ mang đến nghiệp vụ. Ví dụ, nếu khối lượng dữ liệu tăng lên, chúng ta cũng có thể thêm các node vào cluster. Cơ chế tàng trữ cơ phiên bản đảm bảo sở hữu trọng phân bố đều, cùng một khuôn khổ cung cấp được tính toán sao cho đảm bảo tất cả những node được sử dụng. Những công nghệ này cũng thực hiện một phương pháp fail-safe nên lúc một node fail, hệ thống đảm bảo an toàn rằng các đo lường và tính toán sẽ được submit lại.
Kết luận
Như là một trong những xu vậy tất yếu, câu hỏi xây dựng một pipeline so sánh là cung cấp thiết cho các tổ chức/cá nhân mong muốn thu được nhiều giá trị rộng từ dữ liệu. Đây là một quá trình phức tạp, yên cầu sự linh hoạt trên một quy mô không tùng có, không hẳn chỉ để xử lý lượng lớn tài liệu mà còn phải đáp ứng ở một vận tốc vô cùng cao.
Xem thêm: Vietnamese Beef Jerky Là Gì ? Beef Jerky Khô Bò Thảo Mộc 20G
Với sự sẵn có của những công nghệ, điều này không còn là một khái niệm lạ lẫm mà dần biến thực tế, sự linh hoạt rất có thể được mở rộng liên tục thông qua các dịch vụ cloud tích thích hợp sẵn học trang bị như Azure ML, Yhat, etc.
Bài viết tiếp theo
In kích hoạt với hướng dẫn setup môi trường Cassandra, Kafka, Storm, Spark cùng viết công tác kết nối những thành phần nằm trong pipline với nhau. Các bạn quan tâm rất có thể xem source code nghỉ ngơi project của mình:project kafka-storm-cassandra-elasticsearch