Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Di chuyển giản đồ:Liên quan đến Dấu sao

Lưu ý:Bài viết này giới thiệu việc di chuyển mô hình cơ sở dữ liệu quan hệ (RDB) sang giản đồ hình sao bằng cách sử dụng IDE Eclipse cho Voracity (và các sản phẩm đi kèm của nó), IRI Workbench, sau phần giới thiệu về cả hai kiến ​​trúc. Nếu bạn quan tâm đến việc di chuyển RDB hoặc dữ liệu của mình sang mô hình Data Vault 2.0, trình hướng dẫn Workbench mới sẽ ra mắt tại World Wide Data Vault Consortium vào tháng 5 năm 2019; đăng ký blog IRI để nhận các hướng dẫn từng bước đó ngay khi chúng xuất bản!

Kho dữ liệu (DW) là tập hợp dữ liệu được trích xuất từ ​​hệ thống hoạt động hoặc giao dịch trong một doanh nghiệp, được chuyển đổi để làm sạch các điểm mâu thuẫn và sau đó được sắp xếp để hỗ trợ phân tích và / hoặc báo cáo nhanh chóng. DW yêu cầu một lược đồ, hoặc mô tả logic và biểu diễn đồ họa cho cơ sở dữ liệu hoạt động của nó. Bài viết này đề cập đến những chủ đề đó đồng thời cung cấp hướng dẫn cách chuyển từ một lược đồ cơ sở dữ liệu quan hệ thông thường sang một lược đồ DW phổ biến được gọi là lược đồ hình sao.

Giản đồ sao so với quan hệ

Hầu hết các cấu trúc dữ liệu quan hệ được minh họa trong biểu đồ mối quan hệ thực thể (ER). Sơ đồ ER được sử dụng trong việc phát triển các mô hình khái niệm cho hệ thống quản lý cơ sở dữ liệu xử lý giao dịch trực tuyến (OLTP). Nó là nguồn mà từ đó cấu trúc bảng được dịch.

Tuy nhiên, lược đồ hình sao là tiêu chuẩn được chấp nhận rộng rãi cho cấu trúc bảng cơ bản của kho dữ liệu. Hình sao đơn giản của nó (khi được lập sơ đồ ER) hiển thị bảng dữ kiện (chứa các giá trị hoặc số đo giao dịch) ở trung tâm và các bảng thứ nguyên (chứa các giá trị mô tả hoặc phân bổ) xuất phát từ đó. Thông thường, bảng dữ kiện ở dạng chuẩn thứ ba (3NF), trong khi bảng thứ nguyên không được chuẩn hóa.

Sự khác biệt cơ bản giữa mô hình quan hệ thực thể (ER) và mô hình hình sao là:

  1. Mô hình ER sử dụng cấu trúc logic và vật lý để thiết kế cơ sở dữ liệu chuẩn hóa
  2. Mô hình thứ nguyên sử dụng cấu trúc vật lý để thiết kế cơ sở dữ liệu không chuẩn hóa

Để xem cách phần mềm IRI có thể khử / chuẩn hóa dữ liệu thông qua xoay vòng theo hàng-cột, hãy nhấp vào đây.


Nền tảng của quá trình chuyển đổi

Trong bài viết này, tôi trình bày cách chuyển đổi dữ liệu từ mô hình quan hệ thành mô hình sao bằng cách sử dụng các công việc mà bạn nên xác định nhiều hơn hoặc ít hơn theo cách thủ công, nhưng có thể tạo và chạy tự động cũng như sửa đổi dễ dàng.

Những gì bạn sẽ thấy ở đây là dữ liệu 4GL của IRI và thông số kỹ thuật công việc - được thể hiện trong tập lệnh “SortCL” [1] - ánh xạ dữ liệu vào các bảng thứ nguyên và kết hợp dữ liệu vào bảng dữ kiện trung tâm. SortCL là chương trình ánh xạ và thao tác dữ liệu cốt lõi trong nền tảng ETL và quản lý dữ liệu IRI Voracity. Tuy nhiên, hiểu phương pháp và ánh xạ trong công việc SortCL của tôi là chìa khóa ở đây, không phải cú pháp tập lệnh.

Eclipse GUI miễn phí, IRI Workbench, cung cấp một trình soạn thảo SortCL nhận biết cú pháp, cũng như các phác thảo và hộp thoại đồ họa, quy trình làm việc và sơ đồ ánh xạ, và trình hướng dẫn công việc trực quan, để tự động xây dựng hoặc sửa đổi các tập lệnh này nếu bạn không muốn làm điều đó. bằng tay. FYI, IRI sử dụng cùng một siêu dữ liệu và GUI để lập hồ sơ và lập sơ đồ DB, tạo dữ liệu thử nghiệm, thực hiện ETL, định dạng báo cáo, che PII, thu thập dữ liệu đã thay đổi, di chuyển và sao chép dữ liệu, làm sạch và xác thực dữ liệu, v.v.

Workbench sử dụng phiên bản nâng cao của trình cắm thêm Nền tảng Công cụ Dữ liệu (DTP) cho Eclipse để kết nối với cơ sở dữ liệu qua JDBC và cho phép các hoạt động SQL và trao đổi siêu dữ liệu IRI trong chế độ xem Data Source Explorer (DSE). Trong trường hợp này, Workbench đang hỗ trợ:

  1. việc tạo và tập hợp các bảng kiểm tra Oracle (nguồn) bị ràng buộc thông qua SortCL (hoặc các công việc IRI RowGen, theo bài viết này)
  2. ánh xạ dữ liệu bảng thực thể thành bảng Thứ nguyên thông qua SortCL
  3. ánh xạ các phần tử dữ kiện dưới dạng quan hệ n-ary để liên kết với bảng thứ nguyên nguyên tắc; tức là thực hiện phép nối nhiều bảng trong SortCL để tạo bảng Sự kiện
  4. dân số của tất cả các bảng mục tiêu (giản đồ hình sao)
  5. Sơ đồ ER của các lược đồ nguồn và mục tiêu

Các loại thực thể trong mô hình quan hệ ban đầu của tôi là:Dept, Emp, Project, Category, Item, Item_Use và Sale:


Trước…

Biểu đồ tiếp theo cho thấy mô hình Ngôi sao cuối cùng với tám bảng kích thước và một bảng dữ kiện. Các bảng thứ nguyên là:Dept_Dim, Emp_Dim, Emp_Salary_Range_Dim, Project_Dim, Category_Dim, Item_Price_Range_Dim, Item_Dim. Bảng dữ kiện ở trung tâm là Sale_Fact, chứa các khóa cho tất cả các bảng thứ nguyên.


… Sau


Các bước chuyển đổi

  1. Xác định và tạo bảng Dữ kiện
    Cấu trúc cho bảng Sale_Fact được hiển thị trong tài liệu này. Khóa chính là sale_id và phần còn lại của các thuộc tính là khóa ngoại được kế thừa từ bảng Thứ nguyên. Tôi đang sử dụng cơ sở dữ liệu Oracle (mặc dù bất kỳ RDB nào hoạt động) được kết nối với Workbench DSE (thông qua JDBC) và SortCL để chuyển đổi và ánh xạ dữ liệu ( qua ODBC). Tôi đã tạo các bảng của mình bằng các tập lệnh SQL được chỉnh sửa trong sổ lưu niệm SQL của DSE và thực thi trong Workbench.
  1. Xác định và tạo bảng Thứ nguyên
    Sử dụng cùng một kỹ thuật và siêu dữ liệu được liên kết ở trên để tạo các bảng Thứ nguyên này sẽ nhận dữ liệu quan hệ được ánh xạ từ các công việc SortCL trong bước tiếp theo:bảng Category_Dim, Dept tới Dept_Dim, Project thành Project_Dim, Item thành Item_Dim và Emp thành Emp_Dim. Bạn có thể chạy chương trình .SQL đó với tất cả logic CREATE cùng một lúc để xây dựng các bảng.
  1. Di chuyển dữ liệu bảng Đối tượng ban đầu vào bảng Thứ nguyên
    Xác định và chạy các công việc SortCL được hiển thị ở đây để ánh xạ dữ liệu (thử nghiệm do RowGen tạo) từ lược đồ quan hệ thành các bảng Thứ nguyên cho lược đồ Hình sao. Cụ thể, các tập lệnh này tải dữ liệu từ bảng Category sang bảng Category_Dim, Dept thành Dept_Dim, Project thành Project_Dim, Item thành Item_Dim và Emp thành Emp_Dim.
  1. Điền vào Bảng Dữ kiện
    Sử dụng SortCL để kết hợp dữ liệu từ các bảng thực thể Sale, Emp, Project, Item_Use, Item, Category ban đầu để chuẩn bị dữ liệu cho bảng Sale_Fact mới. Sử dụng tập lệnh thứ hai (tham gia công việc) tại đây.

Để nâng cao ví dụ của chúng tôi, chúng tôi cũng sẽ sử dụng SortCL để đưa dữ liệu thứ nguyên mới vào giản đồ Ngôi sao mà bảng Dữ kiện của tôi cũng sẽ dựa vào đó. Bạn có thể thấy các bảng bổ sung này trong sơ đồ Hình sao ở trên không có trong lược đồ quan hệ của tôi:Emp_Salary_Range_Dim và Item_Price_Range_Dim. Các bảng đó được tạo trong cùng một tệp .SQL cho bảng Fact và các bảng Thứ nguyên khác.

Bảng Fact cần dữ liệu emp_salary_range_id và item_price_range_id từ các bảng này để thể hiện phạm vi giá trị trong các bảng Thứ nguyên đó. Ví dụ:khi tôi tải các giá trị thứ nguyên vào kho dữ liệu, tôi muốn gán chúng vào một phạm vi giá:

Item_Price Range_Id Range_Name Range_End
1 Thấp 1 100
2 Giữa 101 500
3 Cao 501 999

Cách đơn giản nhất để gán các ID phạm vi trong tập lệnh công việc (đang chuẩn bị dữ liệu cho bảng Sale_Fact của tôi) là sử dụng câu lệnh IF-THEN-ELSE trong phần đầu ra. Xem bài viết này về các giá trị bán đấu giá cho nền tảng.

Dù sao, tôi đã tạo toàn bộ công việc này bằng CoSort Công việc mới tham gia trong Workbench. Và khi tôi chạy nó, bảng dữ kiện của tôi đã được điền:

Hiển thị bảng Sale_Fact trong IRI Workbench DSE

Kết luận

Ưu điểm chính của biểu diễn dữ liệu theo chiều là giảm độ phức tạp của cấu trúc cơ sở dữ liệu. Điều này làm cho cơ sở dữ liệu dễ dàng hơn cho mọi người để hiểu và viết các truy vấn bằng cách giảm thiểu số lượng bảng và do đó, số lượng liên kết bắt buộc. Như đã đề cập trước đó, các mô hình chiều cũng tối ưu hóa hiệu suất truy vấn. Tuy nhiên, nó có điểm yếu cũng như sức mạnh. Cấu trúc cố định của Lược đồ hình sao giới hạn các truy vấn. Vì vậy, nó làm cho các truy vấn phổ biến nhất dễ viết, nó cũng hạn chế cách dữ liệu có thể được phân tích.

IRI Workbench GUI cho Voracity có một bộ công cụ mạnh mẽ và toàn diện giúp đơn giản hóa việc tích hợp dữ liệu, bao gồm việc tạo, bảo trì và mở rộng kho dữ liệu. Với giao diện trực quan, dễ sử dụng này, Voracity tạo điều kiện cho việc tạo quy trình ETL (trích xuất, chuyển đổi, tải) nhanh chóng, linh hoạt, liên quan đến cấu trúc dữ liệu trên các nền tảng khác nhau.

Trong các hoạt động ETL, dữ liệu được trích xuất từ ​​các nguồn khác nhau, được chuyển đổi riêng biệt và được tải vào Kho dữ liệu và có thể là các mục tiêu khác. Xây dựng quy trình ETL, có khả năng, là một trong những nhiệm vụ lớn nhất của việc xây dựng nhà kho; nó phức tạp và tốn thời gian. Phương pháp tiếp cận ETL của IRI hỗ trợ quá trình này theo cách hiệu quả cao và không phụ thuộc vào cơ sở dữ liệu, bằng cách thực hiện tất cả tích hợp và tổ chức dữ liệu trong hệ thống tệp.

[1] Nếu bạn là người chuyên về cú pháp, hãy lưu ý rằng tập lệnh SortCL được sử dụng trong sản phẩm IRI CoSort hoặc nền tảng IRI Voracity hỗ trợ cú pháp và định nghĩa dữ liệu giống như IRI RowGen để tạo dữ liệu thử nghiệm, IRI NextForm để di chuyển dữ liệu và IRI FieldShield để che dữ liệu. Tất cả những công cụ đó đều được hỗ trợ trong IRI Workbench GUI và siêu dữ liệu của chúng cũng có thể được chia sẻ và được nhóm quản lý để kiểm soát phiên bản, công việc / dòng dữ liệu và bảo mật trên đám mây.

[2] Để hiển thị sơ đồ E-R trong IRI Workbench:

  1. Chọn Dự án IRI Mới và tạo một Thư mục Mới
  2. Chọn thư mục đó và đánh dấu tất cả các bảng cơ sở dữ liệu áp dụng trong Data Source Explorer; sau đó nhấp chuột phải vào IRI, Sơ đồ ER mới
  3. Tệp (Schema.QA) sẽ được tạo
  4. Nhấp chuột phải vào Tệp đó và chọn Biểu diễn Mới, Sơ đồ Quan hệ Thực thể Mới.

[3] Các yếu tố của sơ đồ ER minh họa các mô hình như vậy bao gồm:

  1. các loại thực thể được xác định
  2. thuộc tính được xác định
  3. mối quan hệ giữa các loại thực thể
  4. bức tranh tổng thể hoặc sơ đồ khái niệm

[4] IRI FACT và SQL * Loader lần lượt là các tùy chọn trích xuất và tải hàng loạt.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để loại bỏ một ràng buộc duy nhất trong SQL?

  2. ScaleGrid DBaaS lọt vào danh sách rút gọn cho Giải thưởng Cloud Excellence 2018

  3. Chi phí của #temp theo dõi tạo bảng

  4. T-SQL Thứ Ba # 106:INSTEAD OF trigger

  5. Làm thế nào để cài đặt SQLcl trên windows?