Ngay cả trên hệ điều hành Windows, có rất nhiều thủ thuật Command Prompt và PowerShell mà ít người dùng biết đến. Trong đó, tiện ích PowerShell mang đến rất nhiều những tính năng, hỗ trợ người dùng trên nhiều nền tảng bao gồm cả MySQL khi bạn cũng có thể tạo SSIS Catalog bằng PowerShell qua vài câu lệnh đơn giản.
Khi triển khai máy chủ SQL và khi cần thực hiện Business Intelligence (viết tắt là BI, tạm dịch là kinh doanh thông minh hay trí tuệ doanh nghiệp), bạn sẽ cần đến SQL Server Integration Services (SSIS) Catalog.
Trước khi bắt đầu tạo SSIS Catalog bằng PowerShell , nếu chưa có, trước tiên bạn sẽ phải cài đặt SQL Server Management Studio để có các thư viện cần thiết giao tiếp với máy chủ SQL.
Sau khi cài đặt SQL Server Management Studio, cần đảm bảo rằng bạn đã cài đặt phiên bản PowerShell v4 trở lên. Khi đã đáp ứng các điều kiện tiên quyết này, bạn có thể bắt đầu viết code.
Bước đầu tiên là cần đảm bảo rằng các đối tượng .NET sẽ làm việc với phiên PowerShell có sẵn. Điều này để tải Microsoft.SqlServer.Management.IntegrationServices.NET.
# Add-Type -Path $assemblyPath
Sau khi thực hiện xong, bước tiếp theo là thiết lập một số biến. Việc xác định các biến là không bắt buộc nhưng bạn có thể dễ dàng thay đổi các biến nếu script cần chỉnh sửa bất cứ lúc nào.
Ở bước này bạn sẽ tạo 3 biến, bao gồm: 1 là tên danh mục máy chủ SQL sẽ được tạo, 1 là mật khẩu cho danh mục và tên danh mục.
$sqlServerName = 'SQLSRV'
$secPassword = ConvertTo-SecureString -String 'p@$$w0rd' -AsPlainText -
Force $catalogName = 'SSISDB'
Tiếp theo là thiết lập kết nối với máy chủ SQL. Trong phần dưới đây là xác định chuỗi kết nối SQL và truyền chuỗi kết nối đó như một đối số tới object SqlConnection. Chuỗi kết nối của bạn có thể khác so với ví dụ dưới đây.
$sqlConnectionString = "Data Source=$sqlServerName;Initial
Catalog=master;Integrat ed Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnectionStri ng
Sau khi đã có object System.Data.SqlClient.SqlConnection, bạn sẽ chuyển object này thành đối số cho object Microsoft.SqlServer.Management.IntegrationServices.IntegrationServices.
Về cơ bản là để nói với script rằng bạn đang chuẩn bị làm điều gì đó với SSIS.
$integrationServices = New-Object 'Microsoft.SqlServer.Management.IntegrationServi ces.IntegrationServices' $sqlConnection
Cuối cùng tạo một object danh mục sử dụng các biến mà bạn đã tạo trước đó. Object Microsoft.SqlServer.Management.IntegrationServices.Catalog có một hàm yêu cầu object Microsoft.SqlServer.Management.IntegrationServices.IntegrationServices mà bạn đã tạo trước đó trỏ đến máy chủ SQL yêu cầu. Bạn cũng có thể xác định tên danh mục tại đây và cuối cùng là chuyển mật khẩu sang định dạng securestring.
$catalog = New-Object 'Microsoft.SqlServer.Management.IntegrationServices.Catalog'
($integrationServices, $catalogName, $secPassword)
Tuy nhiên các bước trên không phải là tạo ra danh mục mà chỉ là thiết lập các yêu cầu cần thiết để tạo ra danh mục. Cuối cùng bạn cần làm là tạo yêu cầu với máy chủ SQL và tạo danh mục, chỉ cần gọi phương thức Create () không có đối số để hoàn tất quá trình:
$catalog.Create()
Nếu nhìn vào máy chủ SQL, bây giờ bạn sẽ nhìn thấy một danh mục SSDB được tạo. Bây giờ bạn có thể tạo một kết nối khác trong PowerShell và xem danh mục vừa tạo bằng cách sử dụng thuộc tính Catalogs trên object IntegrationServices.
$integrationServices = New-Object 'Microsoft.SqlServer.Management.IntegrationServi
ces.IntegrationServices' $sqlConnection
$catalog = $integrationServices.Catalogs
Ngoài ra bạn có thể tạo một cặp thư mục khác. Vì vừa kéo danh mục từ máy chủ SQL vào đúng loại đối tượng, bạn có thể tạo một loại CatalogFolder và gọi phương thức Create () trên nó để tạo ra nhiều thư mục khác mà bạn muốn:
$folderName = 'FOO'
$description = 'descriptionhere'
$folder = New-Object
'Microsoft.SqlServer.Management.IntegrationServices.CatalogFo lder' ($catalog, $folderName, $description) $folder.Create()
Trên đây là cách tạo SSIS Catalog bằng PowerShell. Nếu có thắc mắc hoặc ý kiến nào cần giải đáp bạn có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết, Taimienphi.vn sẽ giải đáp các thắc mắc của bạn sớm nhất có thể.