1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Chủ đề tìm hiểu về ssis execute sql task, data flow task (excel, data conversion, derivered column)

64 48 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 2,69 MB

Cấu trúc

  • I. Execute SQL Task (6)
    • 1. General Page - Execute SQL Task Editor (7)
    • 2. Parameter Mapping Page - Execute SQL Task Editor (11)
    • 3. Result Set Page - Execute SQL Task Editor (14)
    • 4. Expressions Page - Execute SQL Task Editor (25)
  • II. Data Flow Task (26)
    • 1. Data Flow Task (26)
    • 2. Một số tính năng quan trọng nhất của Data Flow (luồng dữ liệu) trong SSIS :.22 3. Các thành phần của Data Flow (26)
    • 4. Các bước tạo Data Flow Task (35)
  • III. Data Conversion (38)
    • 1. Thành phần (38)
    • 2. Cách chuyển đổi dữ liệu sang một kiểu dữ liệu khác (38)
  • IV. Derived Column Transformation (43)
    • 1. Các bước biến đổi Derived Column (43)
    • 2. Lợi ích của Derived Column Transformation (47)
    • 6. Ưu điểm (60)
    • 7. Nhược điểm (61)
    • 8. Lưu ý (61)
  • TÀI LIỆU THAM KHẢO (64)

Nội dung

Có thể sử dụng Execute SQL task cho các mục đích sau: - Cắt bớt table hoặc view để chuẩn bị chèn dữ liệu.- Tạo, thay đổi và loại bỏ các đối tượng cơ sở dữ liệu như tables and views.- Tạo

Execute SQL Task

General Page - Execute SQL Task Editor

Tab này được sử dụng để định cấu hình các thuộc tính SSIS Execute SQL Task.

Hình I.2: Định cấu hình các thuộc tính ở SSIS Execute SQL Task

- Name: Cung cấp tên duy nhất cho Execute SQL task trong quy trình làm việc Tên được cung cấp sẽ được hiển thị trong SSIS Designer.

- Description: Mô tả ngắn gọn chức năng nhiệm vụ Việc cung cấp mô tả hợp lệ luôn là một phương pháp hay.

+ Trong thời gian thực, vui lòng thay đổi tên SSIS Execute SQL Task thành tên thích hợp và viết mô tả để giải thích chức năng của tác vụ Mô tả giúp các nhà phát triển khác hiểu rõ hơn về nhiệm vụ SSIS.

- Type Conversion Mode: Khi đặt thuộc tính này thành Allowed, Execute SQL Task sẽ cố gắng chuyển đổi tham số đầu ra và kết quả truy vấn thành kiểu dữ liệu của biến mà kết quả được gán cho Điều này áp dụng cho loại tập hợp kết quả Single row

Thuộc tính SSIS Execute SQL Task này giúp chúng ta định cấu hình đầu ra Nó có bốn thuộc tính:

- None: Nếu không muốn trả lại bất cứ thứ gì, hãy chọn tùy chọn này Ví dụ: ta sử dụng Execute SQL Task để cắt bớt bảng Sau đó, không có ích gì khi trả lại bất kỳ giá trị nào.

- Single Row Result Set: Nếu muốn trả về tập kết quả một hàng thì ta có thể sử dụng tùy chọn này - ví dụ: tổng số bản ghi trong một bảng, cột, v.v.

- Full Result Set: Nếu muốn trả về nhiều hàng dưới dạng tập kết quả, bạn có thể sử dụng tùy chọn này.

- XML: Nếu muốn trả về tệp XML dưới dạng tập kết quả, ta có thể sử dụng tùy chọn này.

- ConnectionType: Execute SQL task có thể sử dụng các loại connection manager khác nhau để kết nối với nguồn dữ liệu nơi nó chạy câu lệnh SQL hoặc thủ tục được lưu trữ. Tác vụ có thể sử dụng các loại kết nối được liệt kê trong bảng sau :

OLE DB OLE DB Connection Manager

- SQLSourceType: Chọn loại nguồn của câu lệnh SQL mà tác vụ chạy.

Tùy thuộc vào connection manager mà Execute SQL task sử dụng, ta phải sử dụng các dấu tham số cụ thể trong các câu lệnh SQL được tham số hóa.

Thuộc tính này có các tùy chọn được liệt kê trong bảng sau :

Direct input Đặt nguồn thành câu lệnh Transact-SQL Việc chọn giá trị này sẽ hiển thị tùy chọn động, SQL Statement.

Chọn một tệp có chứa câu lệnh Transact-SQL Việc đặt tùy chọn này sẽ hiển thị tùy chọn động, FileConnection.

Variable Đặt nguồn thành biến xác định câu lệnh Transact-SQL Việc chọn giá trị này sẽ hiển thị tùy chọn động, Source Variable.

Cho biết liệu câu lệnh SQL được chỉ định sẽ chạy là một thủ tục được lưu trữ Thuộc tính này chỉ đọc/ghi nếu tác vụ sử dụng ADO connection manager Nếu không thì thuộc tính chỉ đọc và giá trị của nó là False.

Cho biết liệu câu lệnh SQL đã được chuẩn bị chưa true bỏ qua việc chuẩn bị; false chuẩn bị câu lệnh SQL trước khi chạy nó Tùy chọn này chỉ khả dụng với các kết nối OLE DB hỗ trợ chuẩn bị.

Xác định vị trí tệp chứa câu lệnh SQL bằng cách sử dụng hộp thoại Open Chọn một tệp để sao chép nội dung của tệp dưới dạng câu lệnh SQL vào thuộc tính

Parameter Mapping Page - Execute SQL Task Editor

Sử dụng trang Parameter Mapping của hộp thoại Execute SQL Task Editor để ánh xạ các biến thành các tham số trong câu lệnh SQL.

Sau khi đã thêm parameter mapping bằng cách nhấp vào Add, hãy chọn biến hệ thống hoặc biến do người dùng xác định từ danh sách hoặc nhấp vào để thêm biến mới bằng cách sử dụng hộp thoại Add Variable.

Chọn hướng của tham số Ánh xạ từng biến tới tham số đầu vào, tham số đầu ra hoặc mã trả về.

Chọn kiểu dữ liệu của tham số Danh sách các loại dữ liệu có sẵn dành riêng cho nhà cung cấp được chọn trong connection manager được tác vụ sử dụng.

Cung cấp tên tham số.

Tùy thuộc vào loại connection manager mà tác vụ sử dụng, ta phải sử dụng số hoặc tên tham số Một số loại connection manager yêu cầu ký tự đầu tiên của tên tham số là @ sign, các tên cụ thể như @Param1, hoặc tên cột làm tên tham số.

Cung cấp kích thước của các tham số có độ dài thay đổi, chẳng hạn như chuỗi và trường nhị phân.

Cài đặt này đảm bảo rằng nhà cung cấp phân bổ đủ không gian cho các giá trị tham số có độ dài thay đổi.

Hình I.5: Thêm các thuộc tính vào các cột ở Parameter Mapping

Result Set Page - Execute SQL Task Editor

Sử dụng trang Result Set của hộp thoại Execute SQL Task Editor để ánh xạ kết quả của câu lệnh SQL tới các biến mới hoặc biến hiện có Các tùy chọn trong hộp thoại này bị tắt nếu ResultSet trên trang General được đặt thành None.

Sau khi đã thêm tập ánh xạ tập kết quả bằng cách bấm vào Add, hãy đặt tên cho kết quả Tùy thuộc vào loại tập kết quả, phải sử dụng tên kết quả cụ thể.

Nếu loại tập kết quả là Single row, có thể sử dụng tên của cột được truy vấn trả về hoặc số đại diện cho vị trí của cột trong danh sách cột của cột được truy vấn trả về.

Nếu loại tập kết quả là Full result set hoặc XML thì phải sử dụng 0 làm tên tập hợp kết quả.

Variable Name Ánh xạ tập kết quả tới một biến bằng cách chọn một biến hoặc nhấp vào để thêm biến mới bằng cách sử dụng hộp thoại Add Variable.

Nhấp để thêm result set mapping

Chọn ánh xạ tập kết quả trong danh sách rồi bấm Remove. a None

Hình I.8: Nhập câu lệnh truy vấn ở SQLStatement

Hình I.9: Kết quả nhận được ở SQL b Single Row

Hình I.10: Chọn Single Row ở Result Set

Hình I.11: Nhập Result Name và Variable Name ở Result Set

Hình I.12: Chọn các biến đã được thiết lập ở thuộc tính ReadOnlyVariables trong

Hình I.13: Nhập Code vào Edit Script

Hình I.14: Chạy thành công c Full result set

Hình I.15: Chọn Full result set ở ResultSet

Hình I.16: Nhập Result Name và Variabe Name ở Result Set

Sau đó nhấn OK Sau đó Start và kết quả chạy thành công d XML

Hình I.19: Nhập Result Name và Variables Name ở Result Set

Hình I.20: Nhập Code ở Edit Script

Hình I.21: Kết quả chạy thành công

Expressions Page - Execute SQL Task Editor

Trong Execute SQL Task Editor, có nhiều Expression mà ta có thể sử dụng để đặt động các thuộc tính dựa trên các giá trị tại thời điểm chạy Expression được sử dụng để đặt giá trị cho các thuộc tính khác nhau của Execute SQL Task Dưới đây là một số Expression chính có thể sử dụng:

- Thuộc tính này được sử dụng để chỉ định câu lệnh SQL hoặc thủ tục lưu trữ mà bạn muốn thực thi.

- Ta có thể sử dụng một biểu thức để đặt động câu lệnh SQL dựa trên biến hoặc các giá trị động khác.

- Thuộc tính kết nối được sử dụng để chỉ định quản lý kết nối sẽ được sử dụng bởi tác vụ.

- Ta có thể sử dụng một biểu thức để đặt động quản lý kết nối dựa trên điều kiện

- Chỉ định loại kết quả cho câu lệnh SQL.

- Biểu thức có thể được sử dụng để đặt động thuộc tính này.

- Chỉ định tên kết quả của bộ kết quả.

- Ta có thể sử dụng biểu thức để đặt động thuộc tính này. Để đặt một Expression cho một thuộc tính trong Execute SQL Task Editor:

B1: Mở Execute SQL Task Editor.

B3: Chọn thuộc tính bạn muốn đặt biểu thức trong danh sách "Property".

B4: Nhấp vào cột "Expression" và đặt biểu thức.

Ví dụ: Đặt động câu lệnh SQL dựa trên một biến, ta sẽ đặt biểu thức cho thuộc tính SqlStatementSource.

Data Flow Task

Data Flow Task

Data Flow Task (tác vụ Luồng dữ liệu) là một trong những thành phần quan trọng của SQL Server Integration Services (SSIS) Nó được sử dụng để di chuyển luồng dữ liệu từ Source (nguồn) đến Destination (đích), đồng thời cho phép người dùng chuyển đổi dữ liệu như dọn dẹp, sửa đổi và mở rộng dữ liệu khi dữ liệu được di chuyển Việc thêm Data Flow Task vào trong Control Flow giúp package có thể trích xuất, chuyển đổi và tải dữ liệu Data Flow Task là nơi mà hầu hết các công việc của quá trình trích xuất, chuyển đổi và tải (ETL) được thực hiện.

Một số tính năng quan trọng nhất của Data Flow (luồng dữ liệu) trong SSIS :.22 3 Các thành phần của Data Flow

- Chuyển đổi dữ liệu: cung cấp các thành phần chuyển đổi dữ liệu cho phép thực hiện các thao tác như chuẩn hóa dữ liệu, chuyển đổi kiểu dữ liệu, tính toán mới, ghép nối dữ liệu, lọc, sắp xếp và làm sạch dữ liệu trước khi nó được tải vào cơ sở dữ liệu đích.

- Xử lý dữ liệu hàng loạt: xử lý dữ liệu hàng loạt thông qua việc xử lý các tập hợp dữ liệu theo các nhóm hoặc cỡ lớn mà không gặp vấn đề hiệu suất.

- Đồ thị thực hiện: thiết kế và xây dựng các đồ thị thực hiện phức tạp Ta có thể tạo ra các quy trình luồng dữ liệu phức tạp bằng cách kết hợp các thành phần trích xuất, chuyển đổi và tải vào các quy trình xử lý dữ liệu.

- Tiếp tục thực hiện: Data Flow cho phép tiếp tục công việc từ nơi đã dừng lại trong quá trình xử lý dữ liệu nhất là xử lý dữ liệu lớn và cần thực hiện các công việc phức tạp trên dữ liệu trong quá trình xử lý.

3 Các thành phần của Data Flow a Sơ đồ của một Data Flow : b Các thành phần của Data Flow

Một data flow trong SSIS cần phải có đủ :

Một số tác vụ phổ biến :

Hình II.23: Các tác vụ phổ biến trong Data Flow

Sources (Nguồn) : Source được sử dụng để trích xuất dữ liệu từ các nguồn, kho dữ liệu như table (bảng) và dạng view trong cơ sở dữ liệu quan hệ (relational databases), các tệp tin và cơ sở dữ liệu Analysis Services Cho đến nay, nguồn OLE DB là tùy

ADO.NET Sử dụng dữ liệu từ nhà cung cấp NET và làm cho dữ liệu xuất hiện trong luồng dữ liệu.

Excel Trích xuất dữ liệu từ các trang tính hoặc một phạm vi trong workbook Microsoft Excel.

Trích xuất dữ liệu từ nhiều cơ sở dữ liệu nào có sẵn nhà cung cấp OLE DB bằng cách sử dụng bảng (table) cơ sở dữ liệu, view hoặc lệnh SQL.

Raw File Đọc dữ liệu thô từ một tệp.

XML Đọc tệp dữ liệu XML và điền dữ liệu vào các cột trong đầu ra nguồn.

Flat File Đọc dữ liệu từ tệp văn bản.

Các chuyển đổi phổ biến :

Conditional Split Tách các luồng dữ liệu dựa trên một hoặc nhiều điều kiện , phân phối vào nhiều đầu ra khác nhau.

Derived Column Cho phép thao tác với các cột hiện có hoặc tạo các cột mới bằng cách sử dụng biểu thức

Xác định các hàng/cột dữ liệu có khả năng trùng lặp và chọn một hàng/cột dữ liệu chuẩn để sử dụng trong việc chuẩn hóa dữ liệu.

Tương tự như hàm VLOOKUP trong Excel Tra cứu các giá trị trong bảng tham chiếu bằng cách sử dụng kết quả khớp chính xác.

OLE DB Command Chạy câu lệnh SQL cho mỗi hàng trong luồng dữ liệu.

Percentage Sampling Tạo tập dữ liệu mẫu bằng cách sử dụng tỷ lệ phần trăm để chỉ định cỡ mẫu.

Làm cho một tập dữ liệu chuẩn hóa thành một phiên bản ít chuẩn hóa hơn, nhưng nhỏ gọn hơn bằng cách xoay

(pivoting) dữ liệu đầu vào trên một giá trị cột.

Row Sampling Tạo ra một tập dữ liệu mẫu bằng cách chỉ định số hàng trong mẫu. phối cho nhiều đầu ra

Aggregate Thực hiện các phép tổng hợp như AVERAGE, SUM và

Data Conversion Cho phép chuyển đổi các cột từ kiểu dữ liệu này sang kiểu dữ liệu khác Merge Hợp nhất hai luồng dữ liệu được sắp xếp với nhau

Merge Join Kết hợp hai tập dữ liệu bằng cách sử dụng kết nối FULL,

Script Component Lưu trữ một tập lệnh để trích xuất, chuyển đổi hoặc tải dữ liệu.

Hình II.25: Các tác vụ Transform khác trong Data Flow

ADO.NET Tải dữ liệu vào nhiều ADO khác nhau Cơ sở dữ liệu từ nhà cung cấp NET sử dụng table hoặc view cơ sở dữ liệu.

Excel Tải dữ liệu vào trang tính hoặc một phạm vi trong workbook Microsoft Excel.

Tải dữ liệu vào nhiều cơ sở dữ liệu nào có sẵn nhà cung cấp OLE DB bằng cách sử dụng bảng (table) cơ sở dữ liệu, view hoặc lệnh SQL.

Raw File Ghi dữ liệu thô vào một tệp.

Compact Edition Ghi dữ liệu vào cơ sở dữ liệu SQL Server Compact.

SQL Server Kết nối với cơ sở dữ liệu SQL Server cục bộ và tải các dữ liệu vào tables và view của SQL Server.

Flat File Ghi dữ liệu vào tệp văn bản

Hình II.26: Các tác vụ Destination khác trong Data Flow

Tất cả các thành phần này cần có để xây dựng một Data Flow hoàn chỉnh trong SSIS.

Một package trong SSIS có thể chứa nhiều Data Flow Task, mỗi task có thể chứa một Data Flow riêng của nó Mỗi Data Flow Task lại có thể có nhiều nguồn, chuyển đổi và đích dữ liệu, số lượng của chúng phụ thuộc vào yêu cầu của người dùng và thiết kế của package Tuy nhiên, công cụ có thể sẽ xác định thứ tự thực thi khi có nhiều Data Flow trong một Data Flow Task Ví dụ, nếu một package yêu cầu các Data Flow được thực hiện theo một thứ tự nhất định, hoặc có các tác vụ phải thực hiện giữa các Data Flow, ta phải sử dụng một Data Flow Task riêng cho mỗi Data Flow Do đó, package nên sử dụng nhiều Data Flow Task, mỗi task chứa một Data Flow Khi đó, ta có thể áp dụng các ràng buộc ưu tiên để kiểm soát thứ tự thực hiện của các task c Các định nghĩa liên quan đến Data Flow

Input ( Đầu vào ) hoặc cập nhật tên cho Input Trong SSIS Designer, Input được cấu hình bằng cách sử dụng hộp thoại Advanced Editor (Trình chỉnh sửa nâng cao).

Các đích và chuyển đổi đều có Output Một Output chứa một hoặc nhiều cột đầu ra và có thể tham chiếu đến các cột bên ngoài mà thành phần luồng dữ liệu đã được cấu hình để sử dụng Output có thể được cấu hình để cung cấp thông tin hữu ích cho quá trình xử lý dữ liệu tiếp theo Ví dụ: ta có thể cho biết Output có được sắp xếp hay không Ta cũng có thể gán mô tả hoặc cập nhật tên cho Output Trong SSIS Designer, Output được đặt cấu hình bằng cách sử dụng hộp thoại Advanced Editor (Trình chỉnh sửa nâng cao).

Error Output ( Đầu ra lỗi ) Được dùng để xử lý các lỗi xảy ra trong Data Flow, cho phép chúng ta kiểm soát và xử lý các dòng dữ liệu gây ra lỗi Nguồn, đích và chuyển đổi có thể bao gồm Error

Output Ta có thể chỉ định cách thành phần luồng dữ liệu phản hồi với các lỗi trong mỗi Input hoặc cột bằng cách sử dụng hộp thoại Configure Error Output (Định cấu hình đầu ra lỗi) Nếu trong thời gian chạy xảy ra lỗi hoặc thiếu hụt dữ liệu, các hàng dữ liệu có lỗi sẽ được gửi đến Error Output Error Output có thể được kết nối với các chuyển đổi áp dụng các phép chuyển đổi bổ sung hoặc hướng dữ liệu đến một đích khác

Theo mặc định, Error Output chứa các cột đầu ra và hai cột lỗi: ErrorCode và

ErrorColumn Các cột đầu ra chứa dữ liệu từ hàng bị lỗi, ErrorCode cung cấp mã lỗi và ErrorColumn xác định cột bị lỗi.

Connection Managers ( Trình quản lý kết nối)

SSIS sử dụng kết nối để thực hiện các tác vụ khác nhau và triển khai các tính năng khác nhau như kết nối với các kho dữ liệu nguồn và đích như văn bản, XML, Excel,

SSIS cung cấp các loại Connection Managers khác nhau cho phép các package kết nối với nhiều nguồn dữ liệu và máy chủ, có Connection Managers tích hợp sẵn khi cài đặt và có các Connection Managers có thể tải xuống từ Microsoft

Các bước tạo Data Flow Task

Trong package muốn thêm Data Flow , chọn tab Control Flow :

1 Trong ngăn SSIS Toolbox, mở rộng mục Favorites và nhấn chọn Data Flow

Task kéo vào đặt trong bề mặt thiết kế (design surface) của tab Control Flow.

Hình II.27: Kéo Data Flow vào Control Flow

2 Trên bề mặt thiết kế Control Flow, bấm chuột phải vào Data Flow Task mới , chọn Rename và đổi tên theo yêu cầu công việc.

Hình II.28: Chọn Rename đổi tên Data Flow Task

Các thành phần trên bề mặt thiết kế của Control Flow đều phải là duy nhất để dễ sử dụng và bảo trì, các tên nên mô tả chức năng của từng thành phần Việc tuân thủ các nguyên tắc đặt tên này cho phép Integration Services packages tự ghi lại Một cách khác để ghi lại các package là sử dụng chú thích.

3 Bấm chuột phải vào Data Flow Task, chọn Properties và trong cửa sổ Properties có thể chỉnh sửa các thuộc tính của Data Flow.

Hình II.29: Chọn Properties để đổi các thuộc tính của Data Flow Task

Data Conversion

Thành phần

Data Conversion không quá phức tạp, gồm hai phần chính:

- Các cột đầu vào (Input columns): Phần này dùng để chọn các cột mà chúng ta muốn chuyển đổi kiểu dữ liệu của chúng

- Cấu hình chuyển đổi dữ liệu (Data conversion configuration): Phần này là nơi chúng ta chỉ định các kiểu dữ liệu SSIS của các cột đầu ra, và các thuộc tính liên quan khác như:

+ Output Alias: Xác định tên cột đầu ra.

+ Length: Thiết lập độ dài cột đầu ra cho kiểu dữ liệu chuỗi.

+ Precision: Thiết lập độ chính xác của cột đối với kiểu dữ liệu số.

+ Scale: Thiết lập số thập phân của cột đối với kiểu dữ liệu số.

+ Code Page: Chọn trang mã cho các cột có kiểu DT_STR.

Cách chuyển đổi dữ liệu sang một kiểu dữ liệu khác

1 Trong SQL Server Data Tools (SSDT), mở dự án Integration Services chứa gói bạn muốn.

2 Trong Solution Explorer, nhấp đúp vào gói để mở nó.

3 Nhấp vào tab Data Flow, sau đó kéo thành phần Data Conversion từ Toolbox vào bề mặt thiết kế.

Hình III.30: Tạo Data Conversion bằng cách kéo từ Toolbox vào vùng thiết kế

4 Kết nối thành phần Data Conversion với luồng dữ liệu bằng cách kéo một kết nối từ nguồn hoặc thành phần chuyển đổi trước đó đến thành phần Data

Hình III.31: Kết nối Data Conversion với nguồn dữ liệu

5 Nhấp đúp vào thành phần Data Conversion.

6 Trong hộp thoại Data Conversion Transformation Editor, trong bảng Available

Hình III.32: Chọn các cột cần chuyển đổi dữ liệu trong bảng Available Input Columns ở hộp thoại Data Conversion Transformation Editor

7 Tùy chọn, chỉnh sửa các giá trị mặc định trong cột Output Alias.

Hình III.33: Điều chỉnh các giá trị mặc định trong cột Output Alias

8 Trong danh sách Data Type, chọn kiểu dữ liệu mới cho cột Kiểu dữ liệu mặc định là kiểu dữ liệu của cột đầu vào.

Hình III.34: Chọn kiểu dữ liệu trong cột Data Type

9 Tùy chọn, tùy thuộc vào kiểu dữ liệu được chọn, cập nhật các giá trị trong các cột Length, Precision, Scale và Code Page.

Hình III.35: Cập nhật các giá trị trong các cột Length, Precision, Scale và Code Page

10 Để cấu hình đầu ra lỗi, nhấp vào Configure Error Output Để biết thêm thông tin, xem Debugging Data Flow.

Hình III.36: Cấu hình lỗi đầu ra trong Configure Error Output

12 Để lưu gói đã cập nhật, nhấp vào Save Selected Items trên menu File.

Kết quả nhận được sau khi chạy thành công:

Derived Column Transformation

Các bước biến đổi Derived Column

1 Đầu tiên, kéo Data Flow Task trong Toolbar và thả nó vào vùng Control Flow.

Hình IV.38: Kéo thả Data Flow Task vào tab Control Flow

2 Nháy đúp vào Data Flow Task để cấu hình tác vụ này và chuyển sang tab Data

Flow Chọn loại tệp sắp thao tác ở phần Other Sources và kéo thả vào tab Data Flow VD: OLE DB Source

Hình IV.40: Kết nối source đầu vào với Derived Column

4 Kết nối các cột đầu vào với đầu vào của bước biến đổi bằng cách nhấp đúp vào

Derived Column Transformation và cấu hình tab Input Columns.

5 Nháy đúp chuột để cấu hình Derived Column SSIS Derived Column editor bao gồm 4 phần như thể hiện trong hình ảnh dưới đây:

Variables and parameters tree: Một cây chứa tất cả biến và tham số được tạo trong package (khi xây dựng biểu thức trong một Data Flow Task, bao gồm các cột Pipeline)

Expression built in function: chứa tất cả các hàm và toán tử được cung cấp bởi ngôn ngữ biểu thức SSIS Các hàm này được phân loại như sau:

+ Mathematical Functions:: Như giá trị tuyệt đối (ABS), căn bậc hai (SQRT)

+ String Functions: Sử dụng để xử lý chuỗi như các hàm SUBSTRING và REPLACE. + Date/Time Functions: Sử dụng để xử lý giá trị ngày/thời gian như hàm DATEPART. + NULL Functions: Sử dụng cho xử lý giá trị NULL.

+ Type Casts: Chuyển Đổi Kiểu

+ Operators: Như điều kiện (? :), so sánh (==)

Derived Columns Grid chứa các cấu hình sau:

+ Derived Column Name: Xác định tên của Derived Column.

+ Derived Column: Chọn giữa các tùy chọn và

+ Expression: Viết biểu thức SSIS tạo ra Derived Column.

+ Data Type: Cột này chỉ đọc và hiển thị loại dữ liệu của kết quả biểu thức

+ Length: Cột này chỉ đọc và hiển thị độ dài của cột dựa trên kết quả biểu thức

+ Scale: Cột này chỉ đọc và tự động đặt scale cho dữ liệu số dựa trên loại dữ liệu.

+ Precision: Cột này chỉ đọc và tự động đặt độ chính xác cho dữ liệu số dựa trên loại dữ liệu.

+ Code Page: Cột này có thể được chỉnh sửa và tự động đặt trang mã cho loại dữ liệu DT_STR (chuỗi).

Cấu hình đầu ra lỗi là một tùy chọn được bao gồm trong hầu hết các thành phần Data Flow Task Trong cấu hình này, có thể chọn cách thành phần này hoạt động khi một lỗi đánh giá hoặc một cắt bớt xảy ra:

+ Redirect Row (Error output Flow)

Hình IV.42: Error output configuration

Chúng ta có thể tùy chọn xử lý các lỗi xảy ra trong quá trình đánh giá biểu thức Điều này có thể được thực hiện bằng cách cấu hình tab Error Output trong Derived Column

Hình IV.43: Luồng dữ liệu hoàn chỉnh

Các biểu thức trong bước Derived Column Transformation rất mạnh mẽ và linh hoạt Chúng ta có thể sử dụng một loạt các hàm và toán tử để tạo ra các biểu thức phức tạp Một số hàm thường được sử dụng bao gồm các hàm chuỗi (ví dụ: CONCAT,

SUBSTRING), các hàm toán học (ví dụ: ABS, ROUND), các hàm ngày (ví dụ: DATEADD, DATEDIFF), và các hàm chuyển đổi kiểu (ví dụ: (DT_STR),

Lợi ích của Derived Column Transformation

Derived Column Transformation có ích trong nhiều trường hợp, chẳng hạn như:

- Tạo ra các cột mới dựa trên các cột hiện có: Ta có thể nối chuỗi, tách chuỗi, thực hiện các phép tính toán học, hoặc suy ra các giá trị mới dựa trên các cột hiện có.

VD: Ghép tên và họ thành một cột: [FirstName] - " " - [LastName]

Hình IV.44: Ví dụ minh họa VD: Chuyển đổi ngày thành số nguyên theo định dạng yyyyMMdd:

(DT_I4)((DT_WSTR,4)YEAR([DateColumn])-RIGHT("00"-

(DT_WSTR,2)MONTH([DateColumn]),2) -RIGHT("00" -

- Sửa đổi các cột hiện có: Ta có thể chuyển đổi kiểu dữ liệu, định dạng ngày, cắt khoảng trắng, hoặc thực hiện các biến đổi khác trên các cột hiện có.

VD: Loại bỏ khoảng trắng đầu và cuối từ chuỗi:

V Nhập xuất dữ liệu cho Excel với SSIS

1 Tạo kết nối tới Excel

Trong SSIS, tạo Excel Connection Manager để kết nối với tệp nguồn hoặc đích Excel

Có một số cách để tạo trình quản lý kết nối:

- Trong khu vực Connection Manager, nhấp chuột phải và chọn New Connection Trong hộp thoại Add SSIS Connection Manager , chọn Excel rồi Add

- Trên menu SSIS , chọn New Conection Trong hộp thoại Add SSIS Connection Manager , chọn Excel rồi Thêm

- Tạo trình quản lý kết nối cùng lúc với việc bạn đặt cấu hình Excel Source hoặc Excel Destination trên trang Connection Manager của Excel Source Editor hoặc của Excel Destination Editor (Microsoft, Microsoft, 2023)

Phần thông tin thứ hai cần cung cấp là phiên bản của tệp Excel Bạn cung cấp thông tin này trong Excel Connection Manager Editor trong gói SSIS hoặc trên trang Choose a Data Source hoặc Choose a Destination của Trình hướng dẫn nhập và xuất.

Chọn phiên bản Microsoft Excel đã được sử dụng để tạo tệp hoặc phiên bản tương thích khác Ví dụ: nếu bạn gặp sự cố khi cài đặt các thành phần kết nối 2016, bạn có thể cài đặt các thành phần 2010 và chọn Microsoft Excel 2007-2010 trong danh sách này.

Bạn có thể không chọn được phiên bản Excel mới hơn trong danh sách nếu bạn chỉ cài đặt phiên bản cũ hơn của thành phần kết nối Danh sách phiên bản Excel bao gồm tất cả các phiên bản Excel được SSIS hỗ trợ Sự hiện diện của các mục trong danh sách này không có nghĩa là các thành phần kết nối cần thiết đã được cài đặt Ví dụ:

Microsoft Excel 2016 xuất hiện trong danh sách ngay cả khi bạn chưa cài đặt các thành phần kết nối 2016 (Microsoft, Microsoft, 2023)

- Nếu bạn tắt tùy chọn này vì dữ liệu nguồn không chứa tên cột thì trình hướng dẫn sẽ sử dụng F1, F2, v.v làm tiêu đề cột.

- Nếu dữ liệu chứa tên cột nhưng bạn tắt tùy chọn này thì trình hướng dẫn sẽ nhập tên cột làm hàng dữ liệu đầu tiên.

- Nếu dữ liệu không chứa tên cột nhưng bạn bật tùy chọn này thì trình hướng dẫn sẽ sử dụng hàng dữ liệu nguồn đầu tiên làm tên cột Trong trường hợp này, hàng dữ liệu nguồn đầu tiên không còn được bao gồm trong dữ liệu đó nữa.

Nếu bạn đang xuất dữ liệu từ Excel và bật tùy chọn này thì hàng dữ liệu được xuất đầu tiên sẽ bao gồm tên cột (Microsoft, Microsoft, 2023) (Microsoft, Microsoft, 2023)

4 Bảng tính và phạm vi

Có ba loại đối tượng Excel mà bạn có thể sử dụng làm nguồn hoặc đích cho dữ liệu của mình: trang tính, phạm vi được đặt tên hoặc phạm vi ô chưa được đặt tên mà bạn chỉ định bằng địa chỉ của nó.

- Bảng tính: Để chỉ định một trang tính, hãy thêm $ ký tự vào cuối tên trang tính và thêm dấu phân cách xung quanh chuỗi - ví dụ: [Sheet1$] Hoặc tìm tên kết thúc bằng

$ ký tự trong danh sách các bảng và dạng xem hiện có.

- Phạm vi được đặt tên: Để chỉ định một phạm vi được đặt tên, hãy cung cấp tên phạm vi - ví dụ: MyDataRange Hoặc tìm kiếm tên không kết thúc bằng $ký tự trong danh sách các bảng và dạng xem hiện có.

- Phạm vi không tên: Để chỉ định một phạm vi ô mà bạn chưa đặt tên, hãy thêm ký tự

$ vào cuối tên trang tính, thêm đặc tả phạm vi và thêm dấu phân cách xung quanh chuỗi - ví dụ: [Sheet1$A1:B4] Để chọn hoặc chỉ định loại đối tượng Excel mà bạn muốn sử dụng làm nguồn hoặc đích cho dữ liệu của mình, hãy thực hiện một trong những thao tác sau:

- Để sử dụng một dải ô chưa được đặt tên mà bạn chỉ định bằng địa chỉ của nó, hãy chọn lệnh SQL làm Chế độ truy cập dữ liệu Sau đó, trong trường SQL command text, hãy nhập truy vấn như ví dụ sau:

1 Kéo và thả tác vụ luồng dữ liệu từ hộp công cụ vào luồng điều khiển Tiếp theo, đổi tên thành Định cấu hình nguồn Excel trong SSIS.

Hình V.45: Tạo Data Flow trong Control Flow

2 Nhấp đúp vào nó sẽ mở tab luồng dữ liệu Bây giờ, Kéo và thả Nguồn Excel từ hộp công cụ SSIS vào vùng luồng dữ liệu

Hình V.47: Tạo Conection Manager mới

Khi bạn nhấp vào tùy chọn Mới, cửa sổ Thêm Connection Manager SSIS sẽ mở ra Sử dụng điều này để chọn một từ danh sách.

Chọn trình quản lý kết nối SSIS Excel từ danh sách Sau khi thiết lập điều này, một cửa sổ khác của Trình quản lý kết nối Excel sẽ mở để định cấu hình đường dẫn tệp.

Hình V.49: Chọn đường dẫn tới tệp Excel

Nhấp vào nút Browse để mở một cửa sổ mới để duyệt ổ đĩa.

Nếu bạn quan sát dữ liệu trong tệp COPY PRODUCT.xls, hàng đầu tiên của nó có các tên cột như màu sắc, Tên sản phẩm và Giá Vì vậy, vui lòng đánh dấu vào hàng đầu tiên có tùy chọn tên cột.

Hình V.51: Chọn đường dẫn tới file Excel

Nhấp vào nút OK để hoàn tất việc định cấu hình Excel Connection Manager.

Hình V.53: Trình quản lí kết nối

5 Chọn chế độ truy cập dữ liệu: Thuộc tính này cung cấp bốn tùy chọn

Ưu điểm

Dễ dàng thu thập và nhập liệu: Excel có interface quen thuộc, dễ sử dụng để nhập và lưu trữ dữ liệu

Tổ chức và quản lý dữ liệu hiệu quả: Có thể sắp xếp dữ liệu dễ dàng bằng cách nhóm cột, lọc và sắp xếp dữ liệu trong Excel

Có thể kết nối, tích hợp với nhiều ứng dụng khác: Excel có thể tích hợp mạnh mẽ với các ứng dụng Office khác và cả các ứng dụng bên thứ ba Đồng bộ hóa dữ liệu dễ dàng: Có thể đồng bộ hóa dữ liệu Excel qua OneDrive,

Nhược điểm

Giới hạn về số lượng bản ghi: Excel chỉ có thể lưu trữ tối đa khoảng 1 triệu ô, nên không thích hợp lưu trữ lượng dữ liệu lớn

Không phù hợp với dữ liệu có cấu trúc phức tạp: Excel khó quản lý các mối quan hệ giữa các bảng như trong cơ sở dữ liệu quan hệ

Dễ xảy ra lỗi dữ liệu: Việc nhập liệu thủ công trong Excel dễ bị sai sót, nhầm lẫn

Khó kiểm soát dữ liệu: Quyền truy cập dữ liệu Excel khó kiểm soát tốt bằng các cơ sở dữ liệu, dễ xảy ra mất mát hay làm hỏng dữ liệu

Có nguy cơ gặp lỗi khi số lượng người dùng truy cập đồng thời nhiều

Tốc độ xử lý có thể chậm khi lượng dữ liệu lớn

Khó khăn trong việc sao lưu và phục hồi dữ liệu

Lưu ý

a Vấn đề với kiểu dữ liệu

Trình điều khiển Excel chỉ nhận dạng một nhóm loại dữ liệu giới hạn Ví dụ: tất cả các cột số được hiểu là chuỗi kép (DT_R8) và tất cả các cột chuỗi (trừ cột ghi nhớ) được hiểu là chuỗi Unicode 255 ký tự (DT_WSTR) SSIS ánh xạ các kiểu dữ liệu Excel như sau:

- Số - float có độ chính xác kép (DT_R8)

Chuyển đổi loại dữ liệu và độ dài

SSIS không ngầm chuyển đổi các loại dữ liệu Do đó, bạn có thể phải sử dụng các phép biến đổi Cột có nguồn gốc hoặc Chuyển đổi dữ liệu để chuyển đổi dữ liệu Excel một cách rõ ràng trước khi tải dữ liệu đó vào đích không phải Excel hoặc để chuyển đổi dữ liệu từ một nguồn không phải Excel trước khi tải dữ liệu đó vào đích Excel. Dưới đây là một số ví dụ về chuyển đổi có thể được yêu cầu:

- Chuyển đổi giữa các cột chuỗi Unicode Excel và các cột chuỗi không Unicode với bảng mã cụ thể.

- Chuyển đổi giữa các cột chuỗi Excel 255 ký tự và các cột chuỗi có độ dài khác nhau.

- Chuyển đổi giữa các cột số Excel có độ chính xác kép và các cột số thuộc loại khác (Microsoft, Microsoft, 2023) b Các vấn đề về đầu vào

Khi bạn chỉ định một trang tính hoặc một dải ô được đặt tên làm nguồn, trình điều khiển sẽ đọc khối ô liền kề bắt đầu bằng ô không trống đầu tiên ở góc trên bên trái của trang tính hoặc dải ô Do đó, dữ liệu của bạn không nhất thiết phải bắt đầu ở hàng 1 nhưng bạn không thể có các hàng trống trong dữ liệu nguồn Ví dụ: bạn không thể có hàng trống giữa tiêu đề cột và hàng dữ liệu hoặc tiêu đề theo sau là hàng trống ở đầu trang tính.

Nếu có hàng trống phía trên dữ liệu của bạn thì bạn không thể truy vấn dữ liệu dưới dạng trang tính Trong Excel, bạn phải chọn phạm vi dữ liệu của mình và gán tên cho phạm vi đó, sau đó truy vấn phạm vi đã đặt tên thay vì trang tính (Microsoft,

Bạn có thể sửa đổi hành vi này của trình điều khiển Excel bằng cách chỉ định Chế độ nhập để nhập tất cả các giá trị dưới dạng văn bản Để chỉ định Chế độ nhập, hãy thêm IMEX=1 vào giá trị của Thuộc tính mở rộng trong chuỗi kết nối của Excel Connection Manager trong cửa sổ Thuộc tính (Microsoft, Microsoft, 2023)

Văn bản bị cắt ngắn

Khi trình điều khiển xác định rằng một cột Excel chứa dữ liệu văn bản, trình điều khiển sẽ chọn loại dữ liệu (chuỗi hoặc bản ghi nhớ) dựa trên giá trị dài nhất mà nó lấy mẫu Nếu trình điều khiển không phát hiện bất kỳ giá trị nào dài hơn 255 ký tự trong các hàng mà nó lấy mẫu, nó sẽ xử lý cột đó dưới dạng cột chuỗi 255 ký tự thay vì cột ghi nhớ Do đó, các giá trị dài hơn 255 ký tự có thể bị cắt bớt (Microsoft, Microsoft, 2023) c Các vấn đề về đầu ra

Tạo một tập tin đích mới

Tạo Excel Connection Manager với đường dẫn và tên tệp của tệp Excel mới mà bạn muốn tạo Sau đó, trong Trình chỉnh sửa đích Excel , đối với Tên trang tính Excel , hãy chọn Mới để tạo trang tính đích Tại thời điểm này, SSIS tạo tệp Excel mới với bảng tính được chỉ định (Microsoft, Microsoft, 2023)

Xuất sang phạm vi đủ lớn

Khi bạn chỉ định một phạm vi làm đích, sẽ xảy ra lỗi nếu phạm vi đó có ít cột hơn dữ liệu nguồn Tuy nhiên, nếu phạm vi mà bạn chỉ định có ít hàng hơn dữ liệu nguồn thì trình hướng dẫn sẽ tiếp tục ghi các hàng mà không gặp lỗi và mở rộng định nghĩa phạm vi để khớp với số hàng mới (Microsoft, Microsoft, 2023)

Xuất giá trị văn bản dài

Trước khi bạn có thể lưu thành công các chuỗi dài hơn 255 ký tự vào một cột Excel, trình điều khiển phải nhận dạng kiểu dữ liệu của cột đích là bản ghi nhớ chứ không

Ngày đăng: 14/03/2024, 06:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w