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.

  • 🔁 Số hàng trên số cột: Bốn cột doanh số bán hàng hàng quý trong một hàng nguồn sẽ trở thành bốn hàng đích, mỗi hàng tương ứng với một quý.
  • 🔢 Sự việc xảy ra là động lực thúc đẩy mọi thứ: Giá trị Occurs trên tab Normalizer quyết định số lượng cổng đầu vào và số lượng hàng đầu ra được tạo ra.
  • 🧪 Ví dụ thực tế: Bản đồ sáuping Các bước thiết kế chuyển đổi tệp dữ liệu phẳng sales_source thành bảng sales_target thông qua phép biến đổi nrm_sales.
  • 🔑 Các cổng được tạo: GK_ trả về một khóa tăng dần cho mỗi hàng nguồn, trong khi GCID_ trả về chỉ số xuất hiện từ 1 đến N.
  • 🗂️ Hai hương vị: Bộ chuẩn hóa VSAM đọc mã nguồn COBOL, trong khi bộ chuẩn hóa đường ống xử lý dữ liệu dạng quan hệ và dạng tệp phẳng.
  • ⚠️ Bẫy phổ biến: Việc thiết lập giá trị cho cột chỉ xuất hiện một lần, hoặc để giá trị bằng không cho cột xuất hiện nhiều lần, sẽ làm hỏng danh sách cổng.

Chuyển đổi chuẩn hóa trong Informatica

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ản đồping Khung thiết kế với định nghĩa sales_source, Source Qualifier và bảng sales_target.

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:

  1. Chọn Normalizer làm phép biến đổi
  2. Nhập tên, “nrm_sale”
  3. 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.

Tạo cửa sổ Chuyển đổi với tùy chọn Chuẩn hóa được chọn và nhập tên nrm_sales.

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ản đồping Canvas hiển thị phép biến đổi Normalizer nrm_sales mới được tạo, hiện chưa có cột nào.

Bước 5) Double Nhấp chuột vào phép biến đổi Normalizer, sau đó:

  1. Chọn tab Normalizer
  2. Nhấp vào biểu tượng để tạo hai cột.
  3. Nhập tên cột
  4. Đặ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
  5. 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.

Chọn tab Normalizer trong cửa sổ Chỉnh sửa Chuyển đổi, với cột doanh số được đặt thành bốn lần xuất hiện và tên cửa hàng được đặt thành không.

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.

Danh sách cổng được tạo của nrm_sales hiển thị bốn cổng đầu vào bán hàng cộng với các cổng GK và GCID.

Bước 6) Sau đó trong bản đồping:

  1. 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.
  2. Liên kết cột tên cửa hàng với cột chuẩn hóa
  3. 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
  4. 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.

Bản đồ hoàn chỉnhping với bốn cổng phần tư và tên cửa hàng được liên kết với nrm_sales và các cổng store_name, sales và GK_sales được liên kết với sales_target

Lưu bản đồping và thực thi nó sau khi tạo Phiênquy 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.

Câu Hỏi Thường Gặp

Không. Phép biến đổi chỉ chia một hàng thành nhiều hàng. Việc gộp nhiều hàng thành một hàng được thực hiện bằng Aggregator, hoặc bằng Expression xoay trục các giá trị bằng cách sử dụng các cổng biến đổi, tùy thuộc vào hình dạng của các cột đầu ra.

Chỉ hỗ trợ String, Nstring và Number. Không có tùy chọn Datetime trên tab Normalizer, vì vậy các giá trị ngày tháng phải được chuyển đổi dưới dạng chuỗi và được chuyển đổi trong phép biến đổi Expression ở hai đầu.

Vâng. Bản đồ tích hợp dữ liệu đám mâyping Công cụ thiết kế cung cấp phép biến đổi Normalizer với cùng mục đích, được cấu hình thông qua giá trị xuất hiện trên mỗi trường. Bố cục tab khác với PowerCenter, vì vậy hãy xem bản đồ.pingCác tệp được xây dựng lại chứ không phải sao chép nguyên trạng.

Bộ trộn Union hợp nhất các hàng đến từ nhiều đường dẫn xử lý dữ liệu thành một luồng duy nhất với danh sách cổng được chia sẻ. Bộ trộn Normalizer hoạt động trên một đường dẫn xử lý dữ liệu và nhân các hàng từ các cột lặp lại bên trong mỗi bản ghi đến.

Bộ chuẩn hóa đường ống (Placement Normalizer) có thể được xây dựng trong Trình phát triển chuyển đổi (Transformation Developer) hoặc được chuyển đổi từ một bản đồ (map).pingvà sau đó được chia sẻ. Bộ chuẩn hóa VSAM thì không thể, vì nó gắn liền với định nghĩa nguồn COBOL đã tạo ra nó.

Bản thân quá trình chuyển đổi này không tốn kém vì nó không lưu trữ dữ liệu trong bộ nhớ đệm. Chi phí phát sinh ở các bước tiếp theo: giá trị Occurs bằng bốn sẽ làm tăng gấp bốn lần dung lượng hàng trong mỗi lần chuyển đổi tiếp theo và trình ghi đích phải xử lý.

Các mô hình phân tích hiệu năng quét các cột nguồn và gắn cờ các nhóm lặp lại như QUARTER1 đến QUARTER4, những nhóm này thuộc về hàng chứ không phải cột. Đề xuất này chỉ là điểm khởi đầu — việc xử lý giá trị và khóa vẫn cần nhà phát triển xác nhận.

Nó hữu ích trên toàn bản đồ.ping Thay vì chỉnh sửa bên trong nó — viết mã SQL để chuyển đổi bảng nhằm so sánh, tạo dữ liệu thử nghiệm hoặc soạn thảo các tệp tham số. Bản thân khung thiết kế không phải là thứ mà Copilot có thể chỉnh sửa.

Tóm tắt bài viết này với: