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

Lập bản đồ và tạo mặt nạ dữ liệu gia tăng:Phát hiện các thay đổi và cập nhật…

Các hoạt động sao chép dữ liệu gia tăng, tạo mặt nạ, tích hợp (ETL) và các hoạt động làm mới dữ liệu khác thường gặp trong các môi trường cơ sở dữ liệu cập nhật thường xuyên. Các công việc này yêu cầu phát hiện các bổ sung và cập nhật cho các bảng. Các hoạt động động như vậy dễ dàng tự động hóa trong quy trình làm việc IRI Voracity được thiết kế và chạy trong IRI Workbench (WB).

Bài viết này chứa một ví dụ về quy trình làm việc mà người dùng phiên bản DBMS Voracity, FieldShield, CoSort hoặc NextForm có thể triển khai để thường xuyên kiểm tra các thay đổi trong bảng nguồn (trong trường hợp này là Oracle) để quyết định thời điểm di chuyển dữ liệu vào một mục tiêu mới (MySQL). Nó cũng chỉ ra cách dữ liệu có thể được che đi có điều kiện như một phần của quá trình này. Lưu ý rằng IRI cũng đang làm việc trên phương pháp tiếp cận dựa trên nhật ký để tăng dữ liệu trong thời gian thực mà không cần giá trị cột delta.

Các thay đổi có thể được tải vào các cơ sở dữ liệu hoặc tệp khác nhau bằng cách sử dụng tệp lô hoặc tập lệnh shell được lập lịch tác vụ. Điều này có thể được thực hiện bằng cách sử dụng dấu thời gian và các trường cụ thể trong bảng nguồn. Kiểm tra lỗi cũng được bao gồm và cũng có thể được thực hiện.

Ví dụ này đã được tạo và chạy trên máy Windows. Nó có thể dễ dàng sửa đổi để hoạt động trên nền tảng Linux hoặc Unix.

Dễ dàng tạo tệp lô bằng cách sử dụng sơ đồ Luồng độ chính xác trong WB. Trong ví dụ này, bảng nguồn chứa các cột có tên CREATED_DATE UPDATED_DATE điều quan trọng trong công việc này.

Hình ảnh dưới đây cho thấy các bước có trong tệp loạt. Tóm lại:

  • công việc được chạy trong một thư mục cụ thể
  • một biến môi trường được đặt bằng cách sử dụng dấu thời gian của lần chạy công việc cuối cùng
  • dấu thời gian hiện tại được ghi lại
  • các thay đổi hiện tại đã được ghi lại
  • mức độ lỗi được kiểm tra và xử lý nếu thành công hay không
  • dấu thời gian hiện tại sẽ ghi đè lên dấu thời gian chạy lần cuối cùng
  • quy tắc sắp xếp lại các email kết thúc bằng “edu” được sử dụng trong mục tiêu
  • quy tắc để biên tập lại một phần trường SSN được sử dụng trong mục tiêu
  • dữ liệu đã thay đổi được tải vào MySQL
  • mức độ lỗi được kiểm tra, tệp dấu thời gian tạm thời được đổi tên

Mỗi khối tác vụ trong quy trình làm việc được giải thích bên dưới. Hai khối màu hoa cà là các khối ánh xạ biến đổi và đại diện cho các tập lệnh công việc CoSort SortCL. Sơ đồ ánh xạ và kịch bản công việc được đại diện bởi từng khối được hiển thị bên dưới cho rõ ràng. Để biết cách xây dựng quy trình làm việc Voracity từ bảng màu, hãy xem bài viết này.

Thay đổi Thư mục

Khối này thay đổi thư mục làm việc hiện tại thành thư mục được chỉ định.

Đặt LASTTIME

Khối dòng lệnh này đặt một biến môi trường có tên là LASTTIME . Giá trị được đặt cho biến là nội dung của tệp LastTime.txt . Dấu thời gian trong tệp này là dấu thời gian đã được ghi lại trong lần chạy cuối cùng của công việc này. Nếu đây là lần chạy đầu tiên, tệp này sẽ phải được tạo theo cách thủ công với dấu thời gian tùy ý được ghi ngày trước khi lệnh này được chạy.

Tệp này chứa một dòng:“2008-09-10 09:39:23.5”

Timestamp.scl

Tác vụ này sử dụng chương trình SortCL để truy vấn cơ sở dữ liệu nguồn cho thời điểm hiện tại. Dấu thời gian đó được lưu vào một tệp có tên là LastTimeTemp.txt . Lý do nó được lưu trữ trong một tệp tạm thời là để cả tem hiện tại và dấu thời gian gần đây nhất có thể được lưu giữ cho đến khi việc kiểm tra lỗi xảy ra.

Điều quan trọng là dấu thời gian đến từ cơ sở dữ liệu chứ không phải từ máy cục bộ. Điều này tránh các sự cố trong đó cơ sở dữ liệu và môi trường thực thi không được đồng bộ hóa.

Sơ đồ ánh xạ và tập lệnh tuần tự cho công việc này như sau:

Changes.scl

Công việc này thực hiện trích xuất chính, chuyển đổi, tải. Đầu vào là bảng nguồn trong Oracle và đầu ra là một bảng có định dạng tương tự trong MySQL:

Trong phần đầu vào , một truy vấn được gửi tới bảng nguồn cho tất cả các bản ghi có CREATED_DATE hoặc UPDATED_DATE lớn hơn biến môi trường LASTTIME . Truy vấn là “SELECT * FROM SCOTT.CLIENT WHERE ĐƯỢC TẠO> TO_TIMESTAMP (\ '$ LASTTIME \', \ 'YYYY-MM-DD HH24:MI:SS.FF1 \') HOẶC (CẬP NHẬT> TO_TIMESTAMP (\ '$ LASTTIME \ ', \' YYYY-MM-DD HH24:MI:SS.FF1 \ ')) ”.

Ngoài ra, một điều kiện được thêm vào để kiểm tra EMAIL cột cho dữ liệu kết thúc bằng "edu". Điều này sẽ được sử dụng trong một chức năng che dữ liệu có điều kiện ở đầu ra. Trong đầu ra, một If-Then-Else tuyên bố được thêm vào EMAIL cột. Nó sử dụng điều kiện đã tạo trước đó để kiểm tra dữ liệu. Nếu dữ liệu kết thúc bằng “edu”, thì địa chỉ email đã được biên tập lại. Nếu không, địa chỉ email sẽ được sao chép từ đầu vào.

Chức năng redaction thứ hai được sử dụng trong SSN cột. Nó sắp xếp lại ba ký tự đầu tiên, bỏ dấu gạch ngang, xóa hai ký tự tiếp theo, bỏ dấu gạch ngang và để lại bốn ký tự cuối cùng. Ví dụ:*** - ** - 6789.

Dưới đây là tập lệnh công việc SortCL tuần tự được mô tả ở trên để bạn có thể kiểm tra truy vấn và cú pháp có điều kiện liên quan đến các delta tăng dần:

Sắp xếp lỗi

Khối quyết định kiểm tra biến ERRORLEVEL để đảm bảo nó trả về 0 (để thành công) sau khi chạy công việc SortCL ở trên. Nếu không, công việc tiếp tục đến KẾT THÚC chặn nơi công việc bị chấm dứt. Nếu nó trả về true, công việc sẽ tiếp tục đến khối tiếp theo.

Đổi tên LastTimeTemp

Khối lệnh này sao chép nội dung của LastTimeTemp.txt tới LastTime.txt . Điều này ghi lại dấu thời gian hiện tại đã được chụp trước đó trong tệp để được sử dụng cho lần chạy công việc tiếp theo.

Tệp hàng loạt

Tệp lô và tập lệnh chuyển đổi được tạo khi xuất sơ đồ Luồng (hiển thị ở trên). Dưới đây là một bản sao của tệp loạt. Mỗi khối thêm các dòng thực thi vào tệp lô.

Trình lập lịch tác vụ

Bằng cách sử dụng Bộ lập lịch tác vụ của Windows, tệp hàng loạt này có thể được thực thi lặp đi lặp lại để nắm bắt các thay đổi trong cơ sở dữ liệu nguồn.

Kết luận

Với một chút lập kế hoạch và sử dụng các khối lệnh, các thay đổi đối với bảng cơ sở dữ liệu có thể được phát hiện tự động bằng cách sử dụng một tệp hàng loạt, sau đó được lập lịch để chạy trong các khoảng thời gian đã chọn để bạn có thể di chuyển, lập bản đồ, mặt nạ và xử lý dữ liệu đã thay đổi trên một cơ sở gia tăng.

Liên hệ với [email protected] hoặc đại diện IRI của bạn để biết thêm thông tin hoặc trợ giúp về trường hợp sử dụng của bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo và triển khai nhiều phiên bản cơ sở dữ liệu thông qua ảnh chụp nhanh lược đồ

  2. Truy vấn Cơ sở dữ liệu:Làm thế nào để Tìm một kim trong Haystack?

  3. Chế độ xem SQL

  4. Điều chỉnh hiệu suất đầu gối:Sử dụng sai bảng tạm thời

  5. Giới thiệu về auto_explain:Cách tự động ghi nhật ký các kế hoạch truy vấn Postgres chậm