Triển khai Data Warehouse trên SQL Server 2012 - Phần 2: Các vấn đề cần xem xét đối với 1 giải pháp Data Warehouse

1 post / 0 mới
riavietnam
Offline
Truy cập lần cuối: 11 năm 8 tháng trước
Tham gia: 29/05/2010 - 23:23
Triển khai Data Warehouse trên SQL Server 2012 - Phần 2: Các vấn đề cần xem xét đối với 1 giải pháp Data Warehouse

Tiếp theo phần đầu tiên (giới thiệu khái quát về data warehouse) trong loạt bài giới thiệu về "Data Warehouse trên SQL Server 2012". Phần 2 sẽ bàn về "các vấn đề cần xem xét đối với 1 giải pháp Data Warehouse". Trước khi bắt đầu 1 dự án làm về data warehouse, có 1 số vấn đề cần phải được quan tâm, xem xét đúng mức. Tìm hiểu kỹ về những vấn đề này sẽ giúp chúng ta có được các giải pháp data warehouse đáp ứng tốt các yêu cầu và ràng buộc cụ thể. Bài viết sẽ giới thiệu các vấn đề quan trọng để hoạch định 1 giải pháp data warehouse hiệu quả.

Phần 2:  Các vấn đề cần xem xét đối với 1 giải pháp Data Warehouse

Bài viết hy vọng sẽ giúp người đọc có thể:

- Nhận biết các vấn đề trong thiết kế cơ sở dữ liệu cho data warehouse
- Nhận biết các vấn đề về nguồn dữ liệu
- Nhận biết các vấn đề trong thiết kế qui trình ETL
- Nhận biết các vấn đề trong việc triển khai chất lượng dữ liệu và quản trị dữ liệu gốc


1. Cơ sở dữ liệu và lưu trữ cho Data Warehouse

Data warehouse thật sự cũng là 1 cơ sở dữ liệu quan hệ nhưng được tối ưu hóa việc đọc dữ liệu để phục vụ mục đích phân tích và báo cáo. Khi hoạch định cho 1 data warehouse, có 1 số vấn đề cần phải được quan tâm như sau:

Lược đồ Cơ sở dữ liệu

Lược đồ luận lý của 1 data warehouse thường được thiết kế để lượt bớt dữ liệu chuẩn hóa thành 1 cấu trúc sao cho có thể giảm thiểu được số lượng các phép KẾT cần thiết trong các câu truy vấn để lấy và gộp dữ liệu. Cách làm thông thường là thiết kế 1 lược đồ hình sao (star schema) trong đó các số đo được đặt trong bảng fact (fact tables). Các bảng fact này có chứa các khóa ngoại để liên kết tới các bảng chiều dữ liệu (dimension tables) chứa các thành phần dữ liệu trong thế giới thực mà các số đo lưu trong bảng fact có thể tính gộp được. Trước khi thiết kế data warehouse, chúng ta phải biết được những chiều dữ liệu nào người dùng cần sử dụng để tính gộp, số đo nào cần được xử lý, tính toán và ở mức độ chi tiết nào và bảng fact nào chứa các số đo đó. Ngoài ra chúng ta cũng cần phải chọn các khóa sử dụng để liên kết các bảng fact với các bảng chiều dữ liệu có thay đổi theo thời gian của nó (ví dụ như việc xử lý chiều dữ liệu thể hiện thông tin về khách hàng có thay đổi địa chỉ của họ).

Chúng ta cũng cần phải quan tâm tới việc hiện thực cơ sở dữ liệu ở mức vật lý, do nó sẽ ảnh hưởng tới hiệu suất và khả năng quản lý của data warehouse. Thông thường người ta sử dụng hình thức phân hoạch bảng (table partitioning) để phân tán 1 lượng lớn số liệu vào nhiều nhóm tập tin khác nhau, mỗi nhóm nằm trên 1 đĩa vật lý khác nhau. Điều này có thể làm tăng hiệu suất truy vấn dữ liệu,  đồng thời cho phép chúng ta thực hiện các chiến lược sao lưu trên nhóm tập tin làm giảm được thời gian downtime trong tình huống hệ thống gặp sự cố hỏng 1 đĩa. Ngoài ra, chúng ta cũng nên xem xét tới việc sử dụng các chiến lược đánh chỉ mục cho dữ liệu và xem xét xem liệu có cần nén dữ liệu khi lưu không?

Phần cứng

Sự lựa chọn về phần cứng cho giải pháp data warehouse có thể tạo nên sự khác biệt quan trọng về hiệu suất, khả năng quản lý và chi phí cho data warehouse của chúng ta. Một số điều cần xem xét về phần cứng cho 1 data warehouse bao gồm:

  • Các yêu cầu về xử lý các câu truy vấn dữ liệu
  • Các yêu cầu về dung lượng lưu trữ và nhập/xuất trên đĩa
  • Khả năng kết nối và băng thông mạng
  • Chấp nhận dư thừa 1 số thành phần để đảm bảo tính sẵn sàng cao

Chúng ta có thể chọn cách tự triển khai data warehouse cho riêng mình bằng cách mua từng thành phần cần thiết riêng lẻ rồi lắp ghép chúng lại với nhau theo 1 kiến trúc đã được kiểm nghiệm nào đó hoặc cũng có thể mua 1 bộ tổ hợp các phần cứng gồm hết các thành phần cần thiết đã được cấu hình sẵn để dùng. Các yếu tố tác động tới cách chọn của chúng ta có thể gồm:

  • Ngân sách
  • Thõa thuận đã có trước đây giữa công ty và nhà cung cấp
  • Thời gian cho phép
  • Kinh nghiệm lắp ghép và cấu hình phần cứng

Tính sẵn sàng & khả năng khắc phục sự cố cao

Data warehouse có thể sẽ nhanh chóng trở thành 1 phần cực kỳ quan trọng của toàn bộ hạ tầng ứng dụng, nên việc đảm bảo tính sẵn sàng của nó sẻ trở nên cực kỳ thiết yếu. SQL Server cũng hỗ trợ 1 số kỹ thuật để đảm bảo tính sẵn sàng cao nay như database mirroring và server clustering. Chúng ta cần đánh giá các kỹ thuật này và chọn cách tốt nhất cho từng dự án cụ thể dựa trên:

  • Thời gian khắc phục lỗi được yêu cầu
  • Các yêu cầu về phần cứng và chi phí
  • Mức độ phức tạp về cấu hình và quản trị

Ngoài giải pháp đảm bảo tính sẵn sàng cao cho máy chủ, chúng ta cũng phải cân nhắc tới việc sử dụng thêm 1 số thành phần “dư thừa” cho các giao tiếp mạng và lưu trữ.

Giải pháp đảm bảo tính sẵn sàng mạnh mẽ nhất không thể bảo vệ data warehouse khỏi mọi sự cố, nên chúng ta luôn cần có kế hoạch khắc phục sự cố phù hợp gồm cả chiến lược sao lưu toàn diện. Trong chiến lược sao lưu dữ liệu cần phải chú ý tới:

  • Khối lượng dữ liệu trong data warehouse
  • Tầng số thay đổi của dữ liệu trong data warehouse
  • Ảnh hưởng của quá trình sao lưu dữ liệu đối với hiệu suất của data warehouse
  • Thời gian khôi phục cơ sở dữ liệu trong tình huống bị sự cố

An ninh

Data warehouse của chúng ta chứ 1 số lượng dữ liệu khổng lồ và thông thường chứa đựng những thông tin rất có giá trị và vô cùng nhạy cảm. Có thể chúng ta muốn mọi người dùng đều có thể truy cập tới 1 vài dữ liệu trên đó, tuy nhiên lại hạn chế họ truy cập vào 1 vài thông tin quan trọng khác trên đó.
Một số vấn đề cần quan tâm để đảm bảo an ninh cho dữ liệu trên data warehouse gồm:

  • Các cơ chế xác thực chúng ta sử dụng để cấp phép truy cập vào data warehouse
  • Các quyền hạn cần thiết cho những người dùng data warehouse
  • Các kết nối để truy xuất dữ liệu
  • An ninh mức vật lý cho cơ sở dữ liệu và các thiết bị sao lưu

2. Các vấn đề về nguồn dữ liệu

Chúng ta cần xác định các nguồn dữ liệu cung cấp dữ liệu cần thiết cho data warehouse, đồng thời phải cân nhắc các vấn đề sau đây khi hoạch định giải pháp của mình:

Kiểu kết nối tới các nguồn dữ liệu

Data warehouse có thể sẽ phải lấy dữ liệu từ nhiều nguồn khác nhau. Ứng với mỗi nguồn dữ liệu, chúng ta phải xem cách mà qui trình ELT có thể kết nối và rút trích dữ liệu cần thiết từ nguồn đó. Có thể trong nhiều tình huống dữ liệu nguồn là các cơ sở dữ liệu quan hệ nên có thể đơn giản sử dụng OLE DB hay Open Database Connectivity (ODBC) provider thiết lập kết nối. Tuy nhiên, cũng có thể dữ liệu nguồn lại được lưu trữ theo 1 kiểu độc quyền riêng nào đó cần 1 provider chuyên biệt để kết nối hoặc chẳng có provider nào hỗ trợ hết. Trong tình huống này, chúng ta phải tự phát triển provider hoặc xem xét khả năng kết xuất dữ liệu nguồn thành định dạng mà qui trình ETL có thể sử dụng được (chẳng hạn như định dạng XML hay định dạng thuần văn bản phân cách nội dung bằng dấu phẩy)

Quyền truy cập và quyền sử dụng

Hầu hết các nguồn dữ liệu sẽ sử dụng hình thức truy cập an toàn bằng cách xác thực người dùng và kiểm tra quyền sử dụng của họ trên các đơn vị dữ liệu. Chúng ta cần làm việc với chủ sở hữu của các nguồn dữ liệu cần thiết trong giải pháp data warehouse của mình để thiết lập:

  • Quyền truy cập mà qui trình ETL của chúng ta sử dụng để có thể truy cập được tới nguồn dữ liệu
  • Quyền sử dụng cần thiết để có thể truy cập được tới các thành phần dữ liệu mà data warehouse của chúng ta dùng

Định dạng dữ liệu

Dữ liệu nguồn có thể tổ chức lưu trữ dữ liệu dưới nhiều định dạng khác nhau. Giải pháp của chúng ta cũng cần phải cân nhắc tới việc phải đối mặt với các vấn đề do các khác biệt trong định dạng dữ liệu như:

  • Chuyển đổi dữ liệu từ kiểu dữ liệu này sang kiểu dữ liệu khác – như, rút trích số từ tập tin văn bản
  • Cắt bớt dữ liệu khi chép dữ liệu đến chỗ có độ rộng kiểu dữ liệu bị giới hạn.
  • Các định dạng ngày tháng khác nhau trong dữ liệu nguồn
  • Định dạng số, phần nguyên, phần dư.
  • Hỗ trợ Unicode.

Cách lấy dữ liệu nguồn

Tùy theo đặc thù độ tải về mặt nghiệp vụ, nguồn dữ liệu có thể chỉ tồn tại trong 1 khoảng thời gian nhất định, lúc đó nguồn dữ liệu sẽ không sẵn sàng cho việc truy cập và sử dụng hoặc không thể dự đoán được mức độ thành công trong việc rút trích dữ liệu. Do đó khi hoạch định giải pháp về data warehouse, chúng ta cần làm việc cụ thể với từng chủ sở hữu dữ liệu nguồn để xác định được cách thức lấy dữ liệu dựa trên:

  • Đặc thù độ tải của nguồn dữ liệu, và
  • Khối lượng dữ liệu sẽ rút trích, và thời gian cần thiết để rút trích.
  • Mức độ thường xuyên trong việc cập nhật dữ liệu vào data warehouse bằng dữ liệu mới nhất.
  • Kể cả vấn đề lệch múi giờ trong truy xuất dữ liệu của người dùng cuối cũng cần được xem xét.

3. Các vấn đề trong thiết kế qui trình ETL

 ...

4. Các vấn đề trong việc triển khai chất lượng dữ liệu và quản trị dữ liệu gốc

...

Theo Phan Võ Minh Thắng- Microsoft Certified Trainer

  ITStudent.net