Chuyển đổi chuẩn hóa trong Informatica với VÍ DỤ
⚡ Tóm tắt thông minh
Trong Informatica, phép biến đổi Normalizer là một phép biến đổi chủ động, chuyển đổi một hàng duy nhất chứa các cột lặp lại thành nhiều hàng, đồng thời tạo ra các cột khóa xác định từng lần xuất hiện mà nó tạo ra.

Chuyển đổi chuẩn hóa là gì?
Normalizer là một phép biến đổi chủ động, được sử dụng để chuyển đổi một hàng dữ liệu thành nhiều hàng và ngược lại. Đây là một cách thông minh để trình bày dữ liệu của bạn một cách có tổ chức hơn.
Nếu trong một hàng có dữ liệu lặp lại ở nhiều cột, thì hàng đó có thể được tách thành nhiều hàng. Đôi khi chúng ta có dữ liệu ở nhiều cột xuất hiện cùng lúc. Ví dụ:
| Tên học sinh | Điểm lớp 9 | Điểm lớp 10 | Điểm lớp 11 | Điểm lớp 12 |
| Học sinh 1 | 50 | 60 | 65 | 80 |
| Học sinh 2 | 70 | 64 | 83 | 77 |
Trong trường hợp này, cột điểm số của lớp lặp lại ở bốn cột. Sử dụng bộ chuẩn hóa (Normalizer), chúng ta có thể tách chúng thành tập dữ liệu sau.
| Tên học sinh | Lớp | Điểm số |
| Học sinh 1 | 9 | 50 |
| Học sinh 1 | 10 | 60 |
| Học sinh 1 | 11 | 65 |
| Học sinh 1 | 12 | 80 |
| Học sinh 2 | 9 | 70 |
| Học sinh 2 | 10 | 64 |
| Học sinh 2 | 11 | 83 |
| Học sinh 2 | 12 | 77 |
Hai hàng năm cột đã trở thành tám hàng ba cột. Vì số hàng sau khi biến đổi khác với số hàng đi vào phép biến đổi, nên Normalizer là một phép biến đổi chủ động, và quy tắc tương tự cũng áp dụng cho ví dụ bán hàng được xây dựng trong phần tiếp theo.
Hướng dẫn sử dụng phép biến đổi Normalizer trong Informatica
Sáu bước sau đây sẽ tạo nên một bản đồ.ping Chương trình này đọc một tập tin dạng phẳng chứa dữ liệu doanh số bán hàng của các cửa hàng theo quý và ghi một dòng mục tiêu cho mỗi quý.
Bước 1) Tạo bảng nguồn “sale_source” và bảng mục tiêu “sale_target” bằng cách sử dụng tập lệnh và nhập chúng vào Tin học.
Tải xuống tệp Sales_Source.txt ở trên
Bước 2) Tạo bản đồping Có nguồn là “sales_source” và bảng đích là “sales_target”. Bản đồping Khung thiết kế sau đó chứa định nghĩa nguồn, của nó. Vòng loại nguồn và định nghĩa mục tiêu.
Bước 3) Từ menu Chuyển đổi, tạo một phép chuyển đổi mới. Trong cửa sổ Tạo phép chuyển đổi:
- Chọn Normalizer làm phép biến đổi
- Nhập tên, “nrm_sale”
- Chọn tùy chọn tạo
Cửa sổ trông giống như ảnh chụp màn hình bên dưới, với danh sách loại chuyển đổi ở bên trái và ô tên ở phía dưới.
Bước 4) Quá trình chuyển đổi sẽ được tạo, hãy chọn tùy chọn "Xong". Quá trình chuyển đổi nrm_sales trống hiện nằm trên khung vẽ giữa Source Qualifier và target.
Bước 5) Double Nhấp chuột vào phép biến đổi Normalizer, sau đó:
- Chọn tab Normalizer
- Nhấp vào biểu tượng để tạo hai cột.
- Nhập tên cột
- Đặt số lần xuất hiện thành 4 cho doanh số bán hàng và 0 cho tên cửa hàng
- Chọn nút OK
Giá trị Occurs là mục quan trọng nhất trên tab này: nó cho biết Trình thiết kế biết cột đó lặp lại bao nhiêu lần trong một hàng dữ liệu nguồn. Tên cửa hàng xuất hiện một lần trên mỗi hàng, vì vậy giá trị Occurs của nó luôn bằng 0.
Các cột sẽ được tạo trong quá trình chuyển đổi. Bạn sẽ thấy 4 cột doanh số vì chúng ta đã đặt số lần xuất hiện là 4. Bên cạnh đó, Trình thiết kế sẽ thêm các cổng khóa được tạo và ID cột được tạo như mô tả trong phần tiếp theo.
Bước 6) Sau đó trong bản đồping:
- Liên kết bốn cột của vòng loại nguồn của bốn phần tư với các cột chuẩn hóa tương ứng.
- Liên kết cột tên cửa hàng với cột chuẩn hóa
- Liên kết các cột store_name và doanh số từ bảng chuẩn hóa tới bảng mục tiêu
- Liên kết cột GK_sale từ bộ chuẩn hóa với bảng mục tiêu
Khi tất cả các liên kết được vẽ xong, bản đồ hoàn chỉnh sẽ được tạo thành.ping trông giống thế này.
Lưu bản đồping và thực thi nó sau khi tạo Phiên và quy trình làm việc. Đối với doanh số mỗi quý của một cửa hàng, một hàng riêng biệt sẽ được tạo bằng phép chuyển đổi chuẩn hóa.
Kết quả đầu ra của bản đồ của chúng tôiping sẽ giống như –
| Tên cửa hàng | Quý | Bán hàng |
| DELHI | 1 | 150 |
| DELHI | 2 | 240 |
| DELHI | 3 | 455 |
| DELHI | 4 | 100 |
| MUMBAI | 1 | 100 |
| MUMBAI | 2 | 500 |
| MUMBAI | 3 | 350 |
| MUMBAI | 4 | 340 |
Dữ liệu nguồn có các cột lặp lại, cụ thể là QUARTER1, QUARTER2, QUARTER3 và QUARTER4. Với sự trợ giúp của bộ chuẩn hóa (Normalizer), chúng tôi đã sắp xếp lại dữ liệu để phù hợp với một cột duy nhất là QUARTER, và từ một bản ghi nguồn, bốn bản ghi được tạo ra trong dữ liệu đích.
Bằng cách này, bạn có thể chuẩn hóa dữ liệu và tạo nhiều bản ghi cho một nguồn dữ liệu.
Các cổng và thuộc tính của phép biến đổi chuẩn hóa
Các cột không bao giờ được nhập trực tiếp trên tab Cổng. Chúng được định nghĩa trên tab Bộ chuẩn hóa, và Trình thiết kế sau đó sẽ tự động tạo các cổng tương ứng. Bảng dưới đây giải thích chức năng của từng mục và từng cổng được tạo ra.
| Cổng hoặc thuộc tính | Những gì nó |
| Xảy ra | Số lần xuất hiện của cột trong một hàng dữ liệu nguồn. Giá trị 0 biểu thị một cột chỉ xuất hiện một lần, ví dụ như tên cửa hàng. |
| Cấp | Nhóm các cột thành một cấu trúc phân cấp bản ghi. Tham số này được sử dụng cho mã nguồn COBOL và giữ nguyên ở mức 0 đối với cấu trúc phẳng. |
| Cổng đầu vào | Bộ chuẩn hóa đường ống tạo ra một cổng đầu vào cho mỗi lần xuất hiện, vì vậy giá trị Occurs là 4 sẽ tạo ra bốn cổng đầu vào. |
| cổng ra | Cột xuất hiện nhiều lần có một cổng đầu ra duy nhất, trả về một hàng cho mỗi lần xuất hiện. |
| GK_ | Khóa được tạo tự động. Dịch vụ tích hợp sẽ tăng số thứ tự này mỗi khi xử lý một hàng dữ liệu nguồn. |
| GCID_ | ID cột được tạo tự động. Đây là chỉ số của lần xuất hiện, vì vậy một cột xuất hiện bốn lần sẽ trả về 1, 2, 3 hoặc 4. |
Sự khác biệt giữa hai cổng được tạo ra rất đáng nhớ, vì cả hai đều trông giống như bộ đếm. GCID khởi động lại từ 1 cho mỗi hàng nguồn, trong khi GK tiếp tục tăng dần trong suốt phiên. Trong bản đồ bán hàngpingGK_sales là cổng được liên kết với mục tiêu, do đó mỗi trong tám hàng đầu ra đều mang một khóa riêng biệt.
Hai thiết lập trên tab Thuộc tính kiểm soát cách phím đó hoạt động giữa các lần chạy. Xóa và làm lại Hàm này trả về giá trị khóa được tạo ra khi kết thúc phiên về giá trị mà nó nắm giữ trước khi phiên bắt đầu. Khởi động lại Mỗi khi phiên chạy, chuỗi khóa được tạo sẽ bắt đầu từ 1, ghi đè lên giá trị chuỗi hiển thị trên tab Cổng. Toàn bộ định nghĩa thuộc tính được công bố trong [tài liệu]. Hướng dẫn chuyển đổi PowerCenter.
Bộ chuẩn hóa VSAM so với Bộ chuẩn hóa đường ống
PowerCenter cung cấp hai phiên bản của cùng một phép biến đổi, và ví dụ trên sử dụng phiên bản thứ hai. Việc lựa chọn giữa hai phiên bản hoàn toàn phụ thuộc vào nguồn dữ liệu.
| Yếu tố | Bộ chuẩn hóa VSAM | Bộ chuẩn hóa đường ống |
| Vai trò trên bản đồping | Hoạt động như một công cụ xác thực nguồn cho định nghĩa nguồn COBOL. | Nằm ở bất kỳ vị trí nào trong quy trình, phía sau bộ lọc nguồn thông thường. |
| Nó được tạo ra như thế nào | Được tạo tự động khi mã nguồn COBOL được kéo vào bản đồ.ping | Được tạo từ menu Chuyển đổi, như trong Bước 3 ở trên |
| Các cổng đầu vào cho cột lặp lại | Một cổng đầu vào cho toàn bộ cột xuất hiện nhiều lần. | Mỗi cột có một cổng đầu vào riêng biệt. |
| Chỉnh sửa các cột | Thay đổi mã nguồn COBOL và tạo lại phép biến đổi. | Bạn có thể chỉnh sửa các cột trên tab Chuẩn hóa bất cứ lúc nào. |
| Dữ liệu điển hình | Các tập tin máy tính lớn sử dụng mệnh đề OCCURS và REDEFINES | Các cột lặp lại trong bảng quan hệ và tệp phẳng |
Một tập tin COBOL cũng có thể chứa nhiều loại bản ghi khác nhau trong cùng một tập tin vật lý, đó là lý do tại sao phiên bản VSAM đọc một copybook thay vì một danh sách cột. Đối với các thao tác hàng ngày, ETL Nếu bạn làm việc với cơ sở dữ liệu và các tệp phân tách bằng dấu phẩy, thì pipeline Normalizer là lựa chọn phù hợp.
Các lỗi thường gặp trong quá trình chuyển đổi chuẩn hóa và cách khắc phục chúng.
Hầu hết các vấn đề về bộ chuẩn hóa tracQuay lại với hai hoặc ba thiết lập. Danh sách dưới đây bao gồm những thiết lập thường xuất hiện nhất trong quá trình phát triển.
- Danh sách cổng không khớp với nguồn. Số lượng cổng đầu vào quá ít hoặc quá nhiều hầu như luôn có nghĩa là giá trị Occurs bị sai. Hãy mở lại tab Normalizer và đặt Occurs thành đúng số cột lặp lại, sau đó liên kết lại bản đồ.pingVì việc thay đổi sẽ xây dựng lại các cổng.
- Sự kiện xảy ra được thiết lập trên một cột chỉ xuất hiện một lần. Việc gán giá trị Occurs lớn hơn 0 cho tên cửa hàng sẽ nhân lên các hàng vốn không được dự định lặp lại. Các cột chỉ xuất hiện một lần sẽ giữ nguyên giá trị là 0.
- Không thể định nghĩa cột ngày tháng. Tab Normalizer chỉ chấp nhận các cột kiểu String, Nstring và Number, vì vậy ngày tháng phải được truyền dưới dạng chuỗi và chuyển đổi trong phép biến đổi Expression trước khi đến đích.
- Số lượng hàng hiển thị trong nhật ký phiên có vẻ không chính xác. Việc đọc hai hàng nguồn và ghi tám hàng đích là hành vi chính xác đối với giá trị Occurs là 4, chứ không phải là lỗi. Bộ chuẩn hóa được kích hoạt chính xác là vì số lượng đó khác nhau.
- Các khóa được tạo ra lặp lại hoặc nhảy giữa các lần chạy. Đây là cặp tùy chọn Đặt lại và Khởi động lại trên tab Thuộc tính. Khởi động lại buộc chuỗi trở về 1 cho mỗi phiên, điều này hiếm khi mong muốn khi khóa nằm trong bảng kho dữ liệu.
- Các chỉnh sửa trên tab Cổng sẽ không được lưu lại. Các cổng được tạo ra, không phải do người dùng tạo. Mọi thay đổi cột đều thuộc về tab Normalizer, và đối với VSAM Normalizer, thay đổi đó thuộc về chính mã nguồn COBOL.
Khi cần tách nhiều nhóm lặp lại cùng một lúc, thường thì việc sử dụng một Normalizer cho mỗi nhóm và kết hợp kết quả ở các bước tiếp theo sẽ hiệu quả hơn là sử dụng quá tải cho một phép biến đổi duy nhất. Trong trường hợp yêu cầu ngược lại, gộp nhiều hàng thành một hàng duy nhất, thì một Normalizer sẽ hiệu quả hơn. Biến đổi tổng hợp Đây mới là công cụ phù hợp.






