Kiểm tra ETL - Câu hỏi phỏng vấn
ETL là viết tắt của Extract, Transform và Load. Nó là một khái niệm quan trọng trong hệ thống Kho dữ liệu.Extraction là viết tắt của việc trích xuất dữ liệu từ các nguồn dữ liệu khác nhau như hệ thống hoặc ứng dụng giao dịch. Transformationviết tắt của việc áp dụng các quy tắc chuyển đổi trên dữ liệu để dữ liệu trở nên phù hợp với báo cáo phân tích. Cácloading quy trình liên quan đến việc chuyển dữ liệu vào hệ thống đích, thường là một kho dữ liệu.
Ba lớp liên quan đến một chu trình ETL là:
Staging Layer - Lớp dàn được sử dụng để lưu trữ dữ liệu được trích xuất từ các hệ thống dữ liệu nguồn khác nhau.
Data Integration Layer - Lớp tích hợp chuyển đổi dữ liệu từ lớp dàn và di chuyển dữ liệu sang cơ sở dữ liệu, nơi dữ liệu được sắp xếp thành các nhóm phân cấp, thường được gọi là dimensions, và thành sự kiện và sự kiện tổng hợp. Sự kết hợp của các bảng dữ kiện và kích thước trong hệ thống DW được gọi làschema.
Access Layer - Lớp truy cập được sử dụng bởi người dùng cuối để lấy dữ liệu cho báo cáo phân tích.
Một công cụ ETL được sử dụng để trích xuất dữ liệu từ các nguồn dữ liệu khác nhau, chuyển đổi dữ liệu và tải nó vào hệ thống DW. Ngược lại, công cụ BI được sử dụng để tạo báo cáo tương tác và adhoc cho người dùng cuối, bảng điều khiển cho quản lý cấp cao, trực quan hóa dữ liệu cho các cuộc họp hội đồng quản trị hàng tháng, hàng quý và hàng năm.
Hầu hết các công cụ ETL phổ biến bao gồm - Dịch vụ dữ liệu SAP BO (BODS), Informatica, Microsoft - SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL Open source, v.v.
Hầu hết các công cụ BI phổ biến bao gồm - SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition, v.v.
Các công cụ ETL phổ biến hiện có trên thị trường là -
- Informatica - Trung tâm điện
- IBM - Websphere DataStage (Trước đây được gọi là Ascential DataStage)
- SAP - Ban dịch vụ dữ liệu đối tượng kinh doanh
- IBM - Trình quản lý dữ liệu Cognos (Trước đây gọi là Luồng quyết định Cognos)
- Microsoft - Dịch vụ tích hợp máy chủ SQL SSIS
- Oracle - Trình tích hợp dữ liệu ODI (Trước đây được gọi là Trình dẫn dữ liệu Sunopsis)
- SAS - Data Integration Studio
- Oracle - Trình tạo kho
- ABInitio
- Mã nguồn mở Clover ETL
Khu vực dàn dựng là khu vực trung gian nằm giữa các nguồn dữ liệu và hệ thống kho dữ liệu / data marts. Các khu vực tổ chức có thể được thiết kế để cung cấp nhiều lợi ích, nhưng động cơ chính để sử dụng chúng là để tăng hiệu quả của các quy trình ETL, đảm bảo tính toàn vẹn của dữ liệu và hỗ trợ các hoạt động chất lượng dữ liệu.
Kho dữ liệu là một khái niệm rộng hơn so với khai thác dữ liệu. Khai thác dữ liệu bao gồm việc trích xuất thông tin ẩn từ dữ liệu và giải thích nó cho các dự đoán trong tương lai. Ngược lại, kho dữ liệu bao gồm các hoạt động như báo cáo phân tích để tạo báo cáo chi tiết và báo cáo đột xuất, xử lý thông tin để tạo bảng và biểu đồ tương tác.
OLTP là viết tắt của hệ thống Xử lý Giao dịch Trực tuyến, thường là một cơ sở dữ liệu quan hệ và được sử dụng để quản lý các giao dịch hàng ngày.
OLAP là viết tắt của hệ thống Xử lý Phân tích Trực tuyến, thường là một hệ thống đa chiều và còn được gọi là kho dữ liệu.
Giả sử một công ty bán sản phẩm của mình cho khách hàng. Mỗi cuộc mua bán là một sự kiện diễn ra trong công ty và bảng dữ kiện được sử dụng để ghi lại những sự kiện này. Mỗi bảng dữ kiện lưu trữ các khóa chính để nối bảng dữ kiện với các bảng thứ nguyên và số đo / dữ kiện.
Example - Fact_Units
Cust_ID | Prod_Id | Time_Id | Số lượng căn hộ đã bán |
---|---|---|---|
101 | 24 | 1 | 25 |
102 | 25 | 2 | 15 |
103 | 26 | 3 | 30 |
Bảng thứ nguyên lưu trữ các thuộc tính hoặc thứ nguyên mô tả các đối tượng trong bảng dữ kiện. Nó là một tập hợp các bảng đồng hành với một bảng dữ kiện.
Example - Dim_Customer
Cust_id | Cust_Name | Giới tính |
---|---|---|
101 | Jason | M |
102 | Anna | F |
Data mart là một dạng kho dữ liệu đơn giản và nó tập trung vào một khu vực chức năng duy nhất. Nó thường chỉ lấy dữ liệu từ một vài nguồn.
Example - Trong một tổ chức, các kho dữ liệu có thể tồn tại cho các bộ phận Tài chính, Tiếp thị, Nhân sự và các bộ phận riêng lẻ khác lưu trữ dữ liệu liên quan đến các chức năng cụ thể của họ.
Các hàm tổng hợp được sử dụng để nhóm nhiều hàng của một cột để tạo thành một phép đo quan trọng hơn. Chúng cũng được sử dụng để tối ưu hóa hiệu suất khi chúng tôi lưu các bảng tổng hợp trong kho dữ liệu.
Các hàm Tổng hợp phổ biến là -
MIN | trả về giá trị nhỏ nhất trong một cột nhất định |
TỐI ĐA | trả về giá trị lớn nhất trong một cột nhất định |
TỔNG | trả về tổng các giá trị số trong một cột nhất định |
AVG | trả về giá trị trung bình của một cột nhất định |
ĐẾM | trả về tổng số giá trị trong một cột nhất định |
ĐẾM(*) | trả về số hàng trong bảng |
Example
SELECT AVG(salary)
FROM employee
WHERE title = 'developer';
Các câu lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) được sử dụng để xác định cấu trúc cơ sở dữ liệu hoặc lược đồ.
Examples -
CREATE - để tạo các đối tượng trong cơ sở dữ liệu
ALTER - thay đổi cấu trúc của cơ sở dữ liệu
Các câu lệnh Ngôn ngữ Thao tác Dữ liệu (DML) được sử dụng để thao tác dữ liệu trong cơ sở dữ liệu.
Examples -
SELECT - lấy dữ liệu từ cơ sở dữ liệu
INSERT - chèn dữ liệu vào bảng
UPDATE - cập nhật dữ liệu hiện có trong bảng
DELETE - xóa tất cả các bản ghi khỏi một bảng, không gian cho các bản ghi vẫn còn
Câu lệnh Ngôn ngữ điều khiển dữ liệu (DCL) được sử dụng để kiểm soát quyền truy cập trên các đối tượng cơ sở dữ liệu.
Examples -
GRANT - cấp cho người dùng đặc quyền truy cập vào cơ sở dữ liệu
REVOKE - rút lại các đặc quyền truy cập được cung cấp bằng lệnh GRANT
Các toán tử được sử dụng để chỉ định các điều kiện trong một câu lệnh SQL và dùng làm các liên từ cho nhiều điều kiện trong một câu lệnh. Các loại toán tử phổ biến là -
- Toán tử số học
- Toán tử so sánh / quan hệ
- Toán tử logic
- Đặt toán tử
- Các toán tử được sử dụng để phủ định các điều kiện
Các toán tử tập hợp phổ biến trong SQL là:
- UNION
- ĐOÀN KẾT TẤT CẢ
- INTERSECT
- MINUS
Phép toán Intersect được sử dụng để kết hợp hai câu lệnh SELECT, nhưng nó chỉ trả về các bản ghi chung từ cả hai câu lệnh SELECT. Trong trường hợp Intersect, số lượng cột và kiểu dữ liệu phải giống nhau. MySQL không hỗ trợ toán tử INTERSECT. Một truy vấn Intersect trông như sau:
select * from First
INTERSECT
select * from second
Phép toán trừ kết hợp kết quả của hai câu lệnh Chọn và chỉ trả về những kết quả thuộc tập kết quả đầu tiên. Một truy vấn Trừ trông như sau:
select * from First
MINUS
select * from second
Nếu bạn thực hiện nguồn trừ đích và đích trừ nguồn, và nếu truy vấn trừ trả về một giá trị, thì đó sẽ được coi là trường hợp các hàng không khớp.
Nếu truy vấn trừ trả về một giá trị và số lượng giao nhau nhỏ hơn số lượng nguồn hoặc bảng đích, thì bảng nguồn và bảng đích chứa các hàng trùng lặp.
Group-by mệnh đề được sử dụng với select câu lệnh để thu thập loại dữ liệu tương tự. HAVING rất giống với WHERE ngoại trừ các câu lệnh bên trong nó có tính chất tổng hợp.
Syntax -
SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no;
SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no HAVING COUNT( 1 ) > 1;
Example - Bảng nhân viên
Country | Salary |
Ấn Độ | 3000 |
CHÚNG TA | 2500 |
Ấn Độ | 500 |
CHÚNG TA | 1500 |
Group by Country
Country | Salary |
Ấn Độ | 3000 |
Ấn Độ | 500 |
CHÚNG TA | 2500 |
CHÚNG TA | 1500 |
Kiểm tra ETL được thực hiện trước khi dữ liệu được chuyển vào hệ thống Kho dữ liệu sản xuất. Nó đôi khi còn được gọi là Cân bằng bảng hoặc điều chỉnh sản xuất.
Mục tiêu chính của kiểm tra ETL là xác định và giảm thiểu các lỗi dữ liệu và các lỗi chung xảy ra trước khi xử lý dữ liệu để báo cáo phân tích.
Bảng sau ghi lại các tính năng chính của kiểm tra Cơ sở dữ liệu và ETL và so sánh giữa chúng:
Chức năng | Kiểm tra cơ sở dữ liệu | Thử nghiệm ETL |
---|---|---|
Mục tiêu chính | Xác thực và tích hợp dữ liệu | Trích xuất, chuyển đổi và tải dữ liệu cho báo cáo BI |
Hệ thống áp dụng | Hệ thống giao dịch nơi diễn ra luồng kinh doanh | Hệ thống chứa dữ liệu lịch sử và không nằm trong môi trường luồng kinh doanh |
Các công cụ phổ biến trên thị trường | QTP, Selenium, v.v. | QuerySurge, Informatica, v.v. |
Nhu cầu kinh doanh | Nó được sử dụng để tích hợp dữ liệu từ nhiều ứng dụng, Tác động nghiêm trọng. | Nó được sử dụng cho Báo cáo phân tích, thông tin và dự báo. |
Mô hình hóa | Phương pháp ER | Đa chiều |
Loại cơ sở dữ liệu | Nó thường được sử dụng trong hệ thống OLTP | Nó được áp dụng cho hệ thống OLAP |
Loại dữ liệu | Dữ liệu chuẩn hóa với nhiều liên kết hơn | Dữ liệu không chuẩn hóa với ít liên kết hơn, nhiều chỉ mục và Tổng hợp hơn. |
Thử nghiệm ETL có thể được chia thành các loại sau dựa trên chức năng của chúng:
Source to Target Count Testing - Nó liên quan đến việc khớp số lượng bản ghi trong hệ thống nguồn và hệ thống đích.
Source to Target Data Testing- Nó liên quan đến việc xác nhận dữ liệu giữa nguồn và hệ thống đích. Nó cũng liên quan đến việc tích hợp dữ liệu và kiểm tra giá trị ngưỡng và Kiểm tra dữ liệu trùng lặp trong hệ thống đích.
Data Mapping or Transformation Testing- Nó xác nhận ánh xạ của các đối tượng trong hệ thống nguồn và đích. Nó cũng liên quan đến việc kiểm tra chức năng của dữ liệu trong hệ thống đích.
End-User Testing- Nó liên quan đến việc tạo báo cáo cho người dùng cuối để xác minh xem dữ liệu trong báo cáo có đúng như mong đợi hay không. Nó liên quan đến việc tìm kiếm độ lệch trong báo cáo và kiểm tra chéo dữ liệu trong hệ thống đích để xác nhận báo cáo.
Retesting - Nó liên quan đến việc sửa các lỗi và khiếm khuyết trong dữ liệu trong hệ thống đích và chạy lại các báo cáo để xác thực dữ liệu.
System Integration Testing - Nó liên quan đến việc thử nghiệm tất cả các hệ thống riêng lẻ và sau đó kết hợp kết quả để tìm xem có bất kỳ sai lệch nào không.
Mất dữ liệu trong quá trình ETL.
Dữ liệu không chính xác, không đầy đủ hoặc trùng lặp.
Hệ thống DW chứa dữ liệu lịch sử nên khối lượng dữ liệu quá lớn và thực sự phức tạp để thực hiện kiểm tra ETL trong hệ thống đích.
Người kiểm tra ETL thường không được cung cấp quyền truy cập để xem lịch trình công việc trong công cụ ETL. Họ hầu như không có quyền truy cập vào các công cụ Báo cáo BI để xem bố cục cuối cùng của báo cáo và dữ liệu bên trong báo cáo.
Khó tạo và xây dựng các trường hợp thử nghiệm vì khối lượng dữ liệu quá cao và phức tạp.
Người kiểm tra ETL thường không có ý tưởng về các yêu cầu báo cáo của người dùng cuối và luồng thông tin kinh doanh.
Kiểm tra ETL liên quan đến các khái niệm SQL phức tạp khác nhau để xác thực dữ liệu trong hệ thống đích.
Đôi khi người kiểm tra không được cung cấp thông tin ánh xạ nguồn để nhắm mục tiêu.
Môi trường thử nghiệm không ổn định dẫn đến sự chậm trễ trong quá trình phát triển và thử nghiệm.
Các trách nhiệm chính của người kiểm tra ETL bao gồm:
Kiểm tra các bảng trong hệ thống nguồn - Kiểm tra số đếm, Kiểm tra kiểu dữ liệu, các khóa không bị thiếu, dữ liệu trùng lặp.
Áp dụng logic chuyển đổi trước khi tải dữ liệu: Xác thực ngưỡng dữ liệu, kiểm tra ky thay thế, v.v.
Tải dữ liệu từ khu vực Staging đến hệ thống mục tiêu: Giá trị tổng hợp và số đo được tính toán, các trường khóa không bị thiếu, Kiểm tra đếm trong bảng mục tiêu, xác thực báo cáo BI, v.v.
Kiểm thử công cụ ETL và các thành phần của nó, Các trường hợp thử nghiệm - Tạo, thiết kế và thực hiện các kế hoạch thử nghiệm, các trường hợp thử nghiệm, Công cụ ETL thử nghiệm và chức năng của nó, Kiểm tra hệ thống DW, v.v.
Phép biến đổi là một tập hợp các quy tắc tạo, sửa đổi hoặc chuyển dữ liệu. Chuyển đổi có thể có hai loại - Chủ động và Bị động.
Trong một chuyển đổi đang hoạt động, số lượng hàng được tạo dưới dạng đầu ra có thể được thay đổi khi một chuyển đổi đã xảy ra. Điều này không xảy ra trong quá trình chuyển đổi bị động. Thông tin chuyển qua cùng một số được cung cấp cho nó làm đầu vào.
Phân vùng là khi bạn phân chia khu vực lưu trữ dữ liệu theo từng phần. Nó thường được thực hiện để cải thiện hiệu suất của các giao dịch.
Nếu hệ thống DW của bạn có kích thước lớn, sẽ mất thời gian để định vị dữ liệu. Phân vùng không gian lưu trữ cho phép bạn tìm và phân tích dữ liệu dễ dàng hơn và nhanh hơn.
Phân vùng có thể có hai loại - phân vùng vòng tròn và phân vùng băm.
Trong phân vùng theo vòng tròn, dữ liệu được phân bổ đồng đều giữa tất cả các phân vùng nên số hàng trong mỗi phân vùng là tương đối như nhau. Phân vùng băm là khi máy chủ sử dụng hàm băm để tạo các khóa phân vùng để nhóm dữ liệu.
Mapplet xác định các quy tắc Chuyển đổi.
Các phiên được định nghĩa để hướng dẫn dữ liệu khi nó được chuyển từ nguồn sang hệ thống đích.
Dòng công việc là một tập hợp các hướng dẫn hướng dẫn máy chủ thực thi tác vụ.
Ánh xạ là sự di chuyển của dữ liệu từ nguồn đến đích.
Phép biến đổi tra cứu cho phép bạn truy cập dữ liệu từ các bảng quan hệ không được xác định trong tài liệu ánh xạ. Nó cho phép bạn cập nhật các bảng thứ nguyên thay đổi chậm để xác định liệu các bản ghi đã tồn tại trong mục tiêu hay chưa.
Khóa thay thế là thứ có các số được tạo theo trình tự không có ý nghĩa và chỉ để xác định hàng duy nhất. Nó không hiển thị cho người dùng hoặc ứng dụng. Nó còn được gọi là khóa Ứng viên.
Khóa thay thế có các số được tạo theo trình tự không có ý nghĩa. Nó có nghĩa là để xác định các hàng duy nhất.
Khóa chính được sử dụng để xác định duy nhất các hàng. Nó hiển thị cho người dùng và có thể được thay đổi theo yêu cầu.
Trong những trường hợp như vậy, bạn có thể áp dụng phương pháp tổng kiểm tra. Bạn có thể bắt đầu bằng cách kiểm tra số lượng bản ghi trong hệ thống nguồn và đích. Chọn tổng và so sánh thông tin.
Trong thử nghiệm này, người thử nghiệm xác nhận phạm vi dữ liệu. Tất cả các giá trị ngưỡng trong hệ thống mục tiêu phải được kiểm tra để đảm bảo chúng theo kết quả mong đợi.
Example - Thuộc tính tuổi không được có giá trị lớn hơn 100. Trong cột Ngày DD / MM / YY, trường tháng không được có giá trị lớn hơn 12.
Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;
Khi không có khóa chính nào được xác định, thì các giá trị trùng lặp có thể xuất hiện.
Sự trùng lặp dữ liệu cũng có thể phát sinh do ánh xạ không chính xác và lỗi thủ công trong khi chuyển dữ liệu từ nguồn sang hệ thống đích.
Kiểm tra hồi quy là khi chúng tôi thực hiện các thay đổi đối với các quy tắc tổng hợp và chuyển đổi dữ liệu để thêm chức năng mới và giúp người kiểm tra tìm ra lỗi mới. Các lỗi xuất hiện trong dữ liệu trong kiểm thử hồi quy được gọi là hồi quy.
Ba cách tiếp cận là - từ trên xuống, từ dưới lên và kết hợp.
Các tình huống thử nghiệm ETL phổ biến nhất là:
- Xác nhận cấu trúc
- Xác thực tài liệu ánh xạ
- Xác thực các ràng buộc
- Kiểm tra tính nhất quán của dữ liệu
- Xác thực tính hoàn chỉnh của dữ liệu
- Xác thực tính đúng đắn của dữ liệu
- Xác thực chuyển đổi dữ liệu
- Xác thực chất lượng dữ liệu
- Xác thực Null
- Xác thực trùng lặp
- Kiểm tra xác thực ngày
- Xác thực toàn bộ dữ liệu bằng cách sử dụng truy vấn trừ
- Các tình huống thử nghiệm khác
- Làm sạch dữ liệu
Xóa dữ liệu là một quá trình xóa dữ liệu khỏi kho dữ liệu. Nó loại bỏ dữ liệu rác như các hàng có giá trị rỗng hoặc khoảng trắng thừa.
Lỗi thẩm mỹ có liên quan đến GUI của một ứng dụng. Nó có thể liên quan đến kiểu phông chữ, cỡ chữ, màu sắc, căn lề, lỗi chính tả, điều hướng, v.v.
Nó được gọi là lỗi liên quan đến Phân tích giá trị ranh giới.
Bạn có thể làm điều đó bằng cách tạo một biến ánh xạ và một phép biến đổi được lọc. Bạn có thể cần tạo một chuỗi để có bản ghi được sắp xếp cụ thể mà bạn yêu cầu.
Value comparison- Nó liên quan đến việc so sánh dữ liệu trong hệ thống nguồn và hệ thống đích với sự biến đổi tối thiểu hoặc không. Nó có thể được thực hiện bằng cách sử dụng các công cụ Kiểm tra ETL khác nhau như Chuyển đổi Bộ định lượng Nguồn trong Informatica.
Các cột dữ liệu quan trọng có thể được kiểm tra bằng cách so sánh các giá trị khác nhau trong hệ thống nguồn và hệ thống đích.
Bạn có thể sử dụng các câu lệnh Minus và Intersect để thực hiện xác nhận tính đầy đủ của dữ liệu. Khi bạn thực hiện nguồn trừ đích và đích trừ nguồn và truy vấn trừ trả về một giá trị, thì đó là dấu hiệu của các hàng không khớp.
Nếu truy vấn trừ trả về một giá trị và số lượng giao nhau nhỏ hơn số lượng nguồn hoặc bảng đích thì các hàng trùng lặp sẽ tồn tại.
Shortcut Transformationlà một tham chiếu đến một đối tượng có sẵn trong một thư mục chia sẻ. Các tham chiếu này thường được sử dụng cho các nguồn và mục tiêu khác nhau được chia sẻ giữa các dự án hoặc môi trường khác nhau.
Trong Trình quản lý Kho lưu trữ, một lối tắt được tạo bằng cách gán trạng thái 'Đã chia sẻ'. Sau đó, các đối tượng có thể được kéo từ thư mục này sang thư mục khác. Quá trình này cho phép một điểm kiểm soát duy nhất cho đối tượng và nhiều dự án không có tất cả các nguồn và mục tiêu nhập vào các thư mục cục bộ của chúng.
Reusable Transformation là cục bộ cho một thư mục. Example- Trình tạo trình tự có thể tái sử dụng để phân bổ id khách hàng trong kho. Sẽ rất hữu ích khi tải thông tin chi tiết của khách hàng từ nhiều hệ thống nguồn và cấp phát id duy nhất cho mỗi khóa nguồn mới.
Khi bạn tham gia một bảng với chính nó, nó được gọi là Tự tham gia.
Chuẩn hóa cơ sở dữ liệu là quá trình tổ chức các thuộc tính và bảng của cơ sở dữ liệu quan hệ để giảm thiểu dư thừa dữ liệu.
Chuẩn hóa liên quan đến việc phân tách một bảng thành các bảng ít dư thừa hơn (và nhỏ hơn) nhưng không làm mất thông tin.
Bảng dữ kiện không có dữ kiện là một bảng dữ kiện không có bất kỳ thước đo nào. Về cơ bản nó là một giao điểm của các chiều. Có hai loại bảng thiếu dữ kiện: Một là để nắm bắt một sự kiện và loại kia là để mô tả các điều kiện.
Thứ nguyên thay đổi chậm đề cập đến giá trị thay đổi của thuộc tính theo thời gian. SCD có ba loại - Loại 1, Loại 2 và Loại 3.