Helpex - Trao đổi & giúp đỡ Đăng nhập

Thiết kế cơ sở dữ liệu thân thiện với kho dữ liệu

Kho dữ liệu là một tập hợp dữ liệu tạo điều kiện thuận lợi cho quá trình ra quyết định. Nó không thay đổi, biến thể theo thời gian và tích hợp. Mặt khác, thiết kế cơ sở dữ liệu đề cập đến việc tạo ra một mô hình dữ liệu chi tiết của cơ sở dữ liệu. Mô hình bao gồm các lựa chọn thiết kế logic và vật lý cùng với các tham số lưu trữ vật lý.

Ngày càng có nhiều chuyên gia kỹ thuật nhấn mạnh vào việc tạo ra một thiết kế cơ sở dữ liệu gắn kết với kho dữ liệu (các thiết kế thân thiện với kho dữ liệu).

OLAP so với OLTP

Hai loại hệ thống cơ sở dữ liệu tồn tại: OLTP và OLAP.

  1. Xử lý giao dịch trực tuyến (OLTP) : OLTP thu thập dữ liệu và sau đó đồng bộ hóa dữ liệu với OLAP. OLTP tập trung vào truy vấn ngắn nhưng nhanh chóng và tần suất cao.
  2. Xử lý phân tích trực tuyến (OLAP) : OLAP giảm tải OLTP và cải thiện tỷ lệ sử dụng dữ liệu cùng với việc phân tích dữ liệu. OLAP tập trung vào các hoạt động tương đối thấp nhưng phức tạp như khai thác dữ liệu.

Hai hệ thống cơ sở dữ liệu này phối hợp chặt chẽ với nhau tạo nên một hệ sinh thái kho dữ liệu hoàn chỉnh cho doanh nghiệp. Nói một cách dễ hiểu, hệ thống OLTP cung cấp dữ liệu vào kho dữ liệu và hệ thống OLAP phân tích dữ liệu.

Phương pháp đồng bộ hóa dữ liệu

Có hai phương pháp để đồng bộ hóa dữ liệu từ OLTP sang OLAP. Dưới đây là một mô tả ngắn gọn:

  1. Đồng bộ hóa Toàn bộ: Phương pháp này đồng bộ hóa dữ liệu từ toàn bộ bảng sang bảng tương ứng của OLAP mỗi lần.
  2. Đồng bộ hóa gia tăng: Thủ tục này đồng bộ hóa dữ liệu đã sửa đổi với bảng tương ứng của OLAP mỗi lần.

So với đồng bộ hóa gia tăng, đồng bộ hóa đầy đủ cần đồng bộ hóa tất cả dữ liệu mỗi lần. Mất nhiều thời gian hơn và áp đặt tải cao hơn cho hệ thống. Trong khi đó, đối với đồng bộ hóa gia tăng, thách thức là xác định dữ liệu gia tăng.

Các trường bảng điển hình

Các trường sau được chứa khi tạo bảng:

  1. khóa chính: Mỗi bảng có một khóa chính
  2. create_time: Trường này cho biết thời điểm dữ liệu được tạo và nó vẫn không thay đổi.
  3. mod_time: Trường này cho biết khi nào dữ liệu được sửa đổi. Nó cập nhật thời gian mới nhất bất cứ khi nào nó được sửa đổi.
  4. Delete_flag: Trường này cho biết rằng tính năng xóa vật lý chưa được bật. Nếu bạn muốn xóa dữ liệu, bạn cần đặt trường này là true. Nếu trường này được đặt là true, thì nó vẫn giữ nguyên và thời gian sửa đổi sẽ không thay đổi.

Quy trình đồng bộ hóa

Kho dữ liệu bao gồm lớp ODS và lớp DW. ODS lưu trữ dữ liệu thô của OLTP. Quá trình đồng bộ hóa chủ yếu xảy ra trên lớp ODS. Nếu thời gian sửa đổi là bản ghi của ngày, nó chỉ ra rằng dữ liệu có liên quan là dữ liệu gia tăng của chính ngày đó. Do đó, khi đồng bộ hóa, bạn có thể đưa ra phán đoán dựa trên thời gian sửa đổi.

  1. Các trường hợp ngoại lệ có thể xảy ra: Ví dụ: thời gian tạo của mục nhập A là 20170304, nhưng được sửa đổi tại 20170305 00:20, sau đó thời gian sửa đổi đã được thay đổi thành 20170305. Tác vụ đồng bộ hóa sẽ được thực thi lúc 20170305 00:00. Tuy nhiên, do chậm tiến độ nên đến 00:30 năm 2017 mới thực hiện. Tại thời điểm này, mục nhập A sẽ bị bỏ lỡ, vì thời gian sửa đổi của mục nhập A đã được thay đổi thành 20170305 tại thời điểm đồng bộ hóa.
  2. Giải pháp khả thi: Một trong những giải pháp là thay đổi điều kiện đồng bộ hóa. Nếu thời gian sửa đổi của bản ghi là trong cùng một ngày hoặc thời gian được tạo của bản ghi là trong cùng một ngày, thì điều đó chỉ ra rằng dữ liệu có liên quan là dữ liệu gia tăng của chính ngày đó.

Quy trình sao chép

  1. Khi tóm tắt các bảng lớp ODS trên lớp DW, việc thực hiện khử trùng lặp trở nên cần thiết. Điều này là do cùng một mục nhập có thể đã được sửa đổi nhiều lần và trong các khoảng thời gian khác nhau.
  2. Việc thực thi trùng lặp có thể xảy ra bằng cách sử dụng hàm phân tích row_number () over (phân vùng theo thứ tự khóa_chính_mã bởi mod_time desc). Đó là, lấy bản ghi mod_time mới nhất bằng cách sử dụng khóa chính. Sau khi hoàn tất, bạn có thể xóa bản ghi có thẻ delete_flag là true trong quá trình này.

Quy trình xác minh dữ liệu

Khi thực thi việc khử trùng lặp được thực hiện cho dữ liệu của lớp ODS trên lớp DW, bạn có thể nhận được cùng một dữ liệu với dữ liệu sản xuất. Xác minh xem nó có đúng không bằng phương pháp sau:

Khối lượng dữ liệu trên lớp DW = Tất cả dữ liệu cho sản xuất (tổng số) - Khối lượng dữ liệu được tạo ngày hôm nay (đã tạo) - Khối lượng dữ liệu đã xóa trước ngày hôm nay (đã xóa)

Thiết kế cơ sở dữ liệu thân thiện với kho dữ liệu

Sử dụng bảng table_a làm ví dụ:

total = select count(*) from table_a
created = select count(*) from table_a where created_time = T+1
deleted = select count(*) from table_a where created_time <= T and modified_time < = T and deleted_flag = true
result = total - created - deleted

Trong quá trình này, việc hiểu được phương pháp tính toán của khối lượng dữ liệu bị xóa (đã xóa) là rất khó. Bạn có thể hiểu nó như thế này:

Nếu thời gian sửa đổi là ngày hôm nay, thì có thể xác nhận rằng dữ liệu này đã tồn tại trước ngày hôm nay, bởi vì khi thẻ xóa_duyệt được đặt là true, thì thời gian sửa đổi vẫn không thay đổi.

Phần kết luận

Trong blog này, chúng tôi đã thảo luận về các loại hệ thống cơ sở dữ liệu tồn tại trong kho dữ liệu và cách chúng tôi có thể đạt được đồng bộ hóa dữ liệu bằng cách áp dụng các phương pháp khác nhau. Có thể tuân theo nhiều quy trình khác nhau để tạo điều kiện thuận lợi cho việc tạo ra một thiết kế cơ sở dữ liệu hỗ trợ và gắn kết với hệ thống cơ sở dữ liệu. Việc hợp nhất hệ thống cơ sở dữ liệu và thiết kế cơ sở dữ liệu mang lại những lợi thế như nâng cao tính khả dụng của dữ liệu, giảm thời gian phản hồi, cùng với việc tái tạo khối lượng hiệu quả.

20 hữu ích 0 bình luận 5.0k xem chia sẻ

Có thể bạn quan tâm

loading