Cơ sở dữ liệu chuỗi thời gian (Time-Series Database) là gì?
Time-series Data: là một chuỗi các điểm dữ liệu, thường bao gồm các phép đo liên tiếp được thực hiện từ cùng một nguồn trong một khoảng thời gian. Phân tích chuỗi thời gian có mục đích nhận đang và tập hợp lại các yếu tố, những biến đổi theo thời gian mà nó có ảnh hưởng đến giá trị của biến quan sát.
Trong Time-series Data, có hai loại chính.
- Chuỗi thời gian thông thường (regular time series), loại thông thường được gọi là số liệu.
- Chuỗi thời gian bất thường (events) là những sự kiện.
Ứng dụng: Time-series data được ứng dụng rất rộng rãi trong các lĩnh vực:
- IoT
- DevOps
- Phân tích thời gian thực
- Dự báo kinh tế
- Tính toán doanh số bán hàng
- Phân tích lãi
- Phân tích thị trường
- Kiểm soát quy trình và chất lượng
- Phân tích điều tra
- …….
Cơ sở dữ liệu chuỗi thời gian Time Series Database (TSDB) là cơ sở dữ liệu được tối ưu hóa cho dữ liệu chuỗi thời gian hoặc có dấu thời gian. Dữ liệu chuỗi thời gian chỉ đơn giản là các phép đo hoặc sự kiện được theo dõi, theo dõi, lấy mẫu và tổng hợp theo thời gian. Đây có thể là số liệu máy chủ, giám sát hiệu suất ứng dụng, dữ liệu mạng, dữ liệu cảm biến, sự kiện, nhấp chuột, giao dịch trong một thị trường và nhiều loại dữ liệu phân tích khác.
Cơ sở dữ liệu chuỗi thời gian được xây dựng đặc biệt để xử lý các số liệu và sự kiện hoặc phép đo được đóng dấu thời gian. TSDB được tối ưu hóa để đo lường sự thay đổi theo thời gian. Các thuộc tính làm cho dữ liệu chuỗi thời gian rất khác so với các khối lượng công việc dữ liệu khác là quản lý vòng đời dữ liệu, tóm tắt và quét phạm vi lớn của nhiều bản ghi.
Trong các trường hợp sau đây, chúng ta có thể thấy rằng dữ liệu chuỗi thời gian hoàn toàn phù hợp với cuộc sống hàng ngày của chúng ta:
- Một hệ thống thương mại điện tử có được số lượng giao dịch và dữ liệu số tiền thanh toán của mỗi đơn hàng cũng như hàng tồn kho sản phẩm và dữ liệu hậu cần.
- Một đồng hồ điện thông minh ghi lại dữ liệu tiêu thụ điện mỗi giờ và tạo dữ liệu thanh toán theo thời gian thực.
- Một cối xay gió trên một ngọn núi cao có được dữ liệu thời gian thực về tốc độ quay và tạo ra dữ liệu về tốc độ gió và sản xuất điện.
Các ứng dụng này dựa trên một dạng dữ liệu đo lường cách mọi thứ thay đổi theo thời gian. Bộ dữ liệu chuỗi thời gian theo dõi các thay đổi đối với toàn bộ hệ thống dưới dạng INSERT, không phải CẬP NHẬT. Mỗi nguồn dữ liệu định kỳ gửi các bài đọc mới để tạo kết quả đo được thu thập theo thời gian. Những kết quả đo lường là dữ liệu chuỗi thời gian. Tập dữ liệu chuỗi thời gian chủ yếu có ba đặc điểm sau:
- Dữ liệu mới luôn được lưu trữ và ghi lại dưới dạng một mục mới.
- Dữ liệu thường được lưu trữ theo thứ tự thời gian.
- Thời gian là một trục chính (khoảng thời gian có thể là thường xuyên hoặc không đều)
Tại sao cơ sở dữ liệu chuỗi thời gian quan trọng?
Cơ sở dữ liệu chuỗi thời gian không phải là mới, nhưng Cơ sở dữ liệu chuỗi thời gian thế hệ đầu tiên chủ yếu tập trung vào việc xem xét dữ liệu tài chính, sự biến động của giao dịch chứng khoán và các hệ thống được xây dựng để giải quyết giao dịch. Tuy nhiên, các điều kiện cơ bản của điện toán đã thay đổi đáng kể trong thập kỷ qua. Mọi thứ đã trở nên ngăn nắp. Các máy tính lớn nguyên khối đã biến mất, được thay thế bởi các máy chủ, máy chủ siêu nhỏ và container.
Ngoài ra, chúng ta đang chứng kiến các thiết bị kết nối có sẵn trong thế giới vật chất đường phố, xe hơi, nhà máy, lưới điện, mũ băng, vệ tinh, quần áo, điện thoại, lò vi sóng, hộp đựng sữa, hành tinh, cơ thể con người. Tất cả mọi thứ có, hoặc sẽ có, một cảm biến. Vì vậy, bây giờ, mọi thứ trong và ngoài công ty đang phát ra một luồng không ngừng các số liệu và sự kiện hoặc dữ liệu chuỗi thời gian.
Điều này có nghĩa là các nền tảng cơ bản cần phát triển để hỗ trợ các khối lượng công việc mới này nhiều điểm dữ liệu hơn, nhiều nguồn dữ liệu hơn, giám sát nhiều hơn, nhiều điều khiển hơn. Những gì chúng ta đang chứng kiến, và những gì thời gian yêu cầu, là một sự thay đổi nghịch lý trong cách chúng ta tiếp cận cơ sở hạ tầng dữ liệu và cách chúng ta tiếp cận việc xây dựng, giám sát, kiểm soát và quản lý hệ thống. Vì thế chúng ta cần 1 database platform thu thập dữ liệu hiện đại và tốt hơn.
So sánh cơ sở dữ liệu chuỗi thời gian và cơ sở dữ liệu khác
Cơ sở dữ liệu chuỗi thời gian thường được so sánh với các cơ sở dữ liệu khác. Có nhiều loại cơ sở dữ liệu được liệt kê để so sánh. Hầu hết, đây là những cơ sở dữ liệu phân tán như Cassandra, MongoDB hoặc HBase. Khi so sánh cơ sở dữ liệu chuỗi thời gian với Cassandra, MongoDB hoặc HBase, có một số khác biệt rõ ràng. Đầu tiên, những cơ sở dữ liệu đó đòi hỏi một khoản đầu tư đáng kể vào thời gian và mã của nhà phát triển để tạo lại chức năng được cung cấp ngoài với TSDB.
Cụ thể, các nhà phát triển sẽ cần phải viết mã để phân chia dữ liệu trên toàn cụm, các hàm tổng hợp và xuống mẫu, quản lý dữ liệu và vòng đời và tóm tắt lại. Cuối cùng, họ sẽ phải tạo một API để viết và truy vấn dịch vụ mới của họ. Hơn nữa, họ sẽ cần phải viết các công cụ để thu thập dữ liệu. Họ sẽ cần phải giới thiệu một hệ thống xử lý thời gian thực và viết mã để theo dõi và cảnh báo. Cuối cùng, họ sẽ cần phải viết một công cụ trực quan để hiển thị dữ liệu chuỗi thời gian cho người dùng.
Ví dụ Cơ sở dữ liệu chuỗi thời gian so với MongoDB
MongoDB là một cơ sở dữ liệu định hướng tài liệu nguồn mở, thông thường được gọi là cơ sở dữ liệu NoQuery, được viết bằng C và C ++. Mặc dù nó thường không được coi là một TSDB thực sự , nhưng những người tạo ra nó thường thúc đẩy việc sử dụng nó cho khối lượng công việc theo chuỗi thời gian.
Nó cung cấp mô hình nguyên thủy dưới dạng dấu thời gian và khóa, cung cấp cho người dùng khả năng lưu trữ và truy vấn dữ liệu chuỗi thời gian. MongoDB là một kho lưu trữ tài liệu đa năng. MongoDB được dự định để lưu trữ dữ liệu không có lược đồ của Wikipedia, trong đó mỗi đối tượng có thể có cấu trúc khác nhau. Trong thực tế, MongoDB thường được sử dụng đ7ể lưu trữ các tải trọng lớn, có kích thước thay đổi được biểu thị dưới dạng các đối tượng JSON hoặc BSON. Cả vì tính tổng quát của MongoDB và do thiết kế của nó là kho dữ liệu không có lược đồ, MongoDB không tận dụng tính chất cấu trúc cao của dữ liệu chuỗi thời gian. Cụ thể, dữ liệu chuỗi thời gian bao gồm các thẻ (cặp chuỗi khóa / giá trị) và chuỗi các số được đóng dấu thời gian (là các giá trị được đo). Do đó, MongoDB phải được cấu hình cụ thể để hoạt động với dữ liệu chuỗi thời gian.
Bảng xếp hạng 15 Time-Series Database hàng đầu thế giới
Cơ sở dữ liệu chuỗi thời gian là phân khúc phát triển nhanh nhất trong ngành cơ sở dữ liệu. Nhưng cơ sở dữ liệu chuỗi thời gian nào là tốt nhất và phổ biến nhất? Có nhiều cách để xác định mức độ phổ biến, nhưng một siteđộc lập, DB-Engines , xếp hạng cơ sở dữ liệu dựa trên mức độ phổ biến của công cụ tìm kiếm, đề cập phương tiện truyền thông xã hội, bài đăng công việc và khối lượng thảo luận kỹ thuật. Dưới đây là bảng xếp hạng :
- InfluxDB
- Kdb+
- Graphite
- RRDTool
- Prometheus
- OpenTSDB
- Druid
- TimescaleDB
- KairosDB
- eXtremeDB
- FaunaDB
- Amazon Timestream
- GridDB
- IBM Db2 Event Store
- Riak TS
Ứng dụng của Time Series Database
Bạn có thể hỏi: Tại sao tôi không thể sử dụng một cơ sở dữ liệu bình thường (tức là không phải chuỗi thời gian)
Sự thật là bạn có thể, và một số người làm. Tuy nhiên, tại sao các TSDB là loại cơ sở dữ liệu phát triển nhanh nhất hiện nay? Có 2 lý do: (1) thang đo và (2) tính khả dụng.
Quy mô: Dữ liệu chuỗi thời gian tích lũy rất nhanh. (Ví dụ: một chiếc xe được kết nối sẽ thu thập 4.000 GB dữ liệu mỗi ngày .) Và cơ sở dữ liệu thông thường không được thiết kế để xử lý quy mô đó. Cơ sở dữ liệu quan hệ giá rẻ với bộ dữ liệu rất lớn; Cơ sở dữ liệu NoQuery có giá tốt hơn ở quy mô sử dụng, nhưng vẫn có thể vượt trội hơn bởi cơ sở dữ liệu được tinh chỉnh cho phù hợp với dữ liệu chuỗi thời gian.
Ngược lại, cơ sở dữ liệu chuỗi thời gian (có thể dựa trên cơ sở dữ liệu quan hệ hoặc cơ sở dữ liệu NoQuery) xử lý quy mô hiệu quả chỉ có thể có khi bạn coi thời gian là ưu tiên nhất. Những hiệu quả này dẫn đến cải thiện hiệu suất, bao gồm tốc độ nhập cao hơn, truy vấn nhanh hơn theo tỷ lệ (mặc dù một số hỗ trợ nhiều truy vấn hơn các truy vấn khác) và nén dữ liệu tốt hơn.
Tính khả dụng: TSDB cũng thường bao gồm các chức năng và hoạt động phổ biến cho phân tích dữ liệu chuỗi thời gian như chính sách lưu giữ dữ liệu, truy vấn liên tục, tổng hợp thời gian linh hoạt, v.v. Ngay cả khi quy mô không phải là vấn đề đáng lo ngại vào lúc này (ví dụ: nếu bạn mới bắt đầu thu thập dữ liệu), các tính năng này vẫn có thể cung cấp trải nghiệm người dùng tốt hơn và làm cho cuộc sống của bạn dễ dàng hơn.
Đây là lý do tại sao các nhà phát triển đang ngày càng áp dụng cơ sở dữ liệu chuỗi thời gian và sử dụng chúng cho nhiều trường hợp sử dụng:
- Giám sát hệ thống phần mềm: Máy ảo, container, dịch vụ, ứng dụng
- Giám sát hệ thống vật lý: Thiết bị, máy móc, thiết bị kết nối, môi trường, nhà cửa, cơ thể chúng ta
- Ứng dụng theo dõi tài sản: Xe, xe tải, thùng chứa vật lý, pallet
- Hệ thống giao dịch tài chính: Chứng khoán cổ điển, tiền điện tử
- Ứng dụng tổ chức sự kiện: Theo dõi dữ liệu tương tác của người dùng / khách hàng
- Công cụ kinh doanh thông minh: Theo dõi các số liệu quan trọng và sức khỏe tổng thể của doanh nghiệp
- (và hơn thế nữa)
Thậm chí sau đó, bạn sẽ cần chọn một cơ sở dữ liệu chuỗi thời gian phù hợp nhất với mô hình dữ liệu của bạn.