Bagikan melalui


Invoke-SqlNotebook

Menjalankan file SQL Notebook (.ipynb) dan menghasilkan notebook materialisasi.

Sintaks

Invoke-SqlNotebook
      [-ServerInstance <Object>]
      [-Database <Object>]
      [-Username <Object>]
      [-Password <Object>]
      [-Credential <PSCredential>]
      [-InputFile <Object>]
      [-InputObject <Object>]
      [-OutputFile <Object>]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-Encrypt <String>]
      [-HostNameInCertificate <String>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      [-ConnectionString <Object>]
      [-InputFile <Object>]
      [-InputObject <Object>]
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputFile <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputObject <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]

Deskripsi

Cmdlet Invoke-SqlNotebook menjalankan file SQL Notebook (.ipynb) dan menghasilkan notebook materialisasi.

Notebook akan dijalankan pada ServerInstance dan Database yang disediakan.

Saat cmdlet dijalankan, file Notebook yang dihasilkan akan berada di lokasi yang ditentukan pengguna atau di direktori file buku catatan input yang sama.

Outfile cmdlet dapat dihilangkan: jika demikian, itu akan dibuat dengan nama file input dan _out ditambahkan ke file.

Contoh

Contoh 1: Jalankan Notebook terhadap server lokal (instans default)

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     4656   notebook_out.ipynb

Perintah ini menjalankan notebook terhadap instans default SQL Server yang berjalan pada komputer tempat cmdlet dijalankan. Secara default, karena tidak ada -OutputFile yang diteruskan, notebook materialisasi disimpan di disk dengan nama yang sama dengan InputFile dengan _out sebagai akhiran ke nama file (notebook.ipynb - notebook_out.ipynb)

Contoh 2: Jalankan Notebook di server lokal (instans defaut) dan simpan Notebook materialisasi ke file tertentu

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb -OutputFile C:\new_notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  new_notebook.ipynb

Perintah ini menjalankan notebook terhadap instans default SQL Server yang berjalan pada komputer tempat cmdlet dijalankan. Notebook yang dijalankan kemudian disimpan ke file yang ditentukan dengan parameter -OutputFile.

Contoh 3: Jalankan Notebook menggunakan parameter -ConnectionString

PS C:\> Invoke-Sqlnotebook -ConnectionString 'Server=Localhost;Database=TestNotebook;Trusted_Connection=True;' -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  notebook_out.ipynb

Ini sama dengan Contoh 1, hanya koneksi ke server yang ditentukan melalui parameter -ConnectionString.

Contoh 4: Jalankan Notebook Terhadap Semua Server Terdaftar

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' |
WHERE { $_.Mode -ne 'd'} |            
foreach {
    $datetime = Get-Date -Format yyyyMMddhhmm;
    Get-SqlInstance -ServerInstance $_.Name |
    foreach {
            Invoke-SqlNotebook -ServerInstance $_.Name -Database master -InputFile '$home\Documents\SQL Server Management Studio\BPCheck.ipynb' `
            -OutputFile "BPCheck_output_$($_.NetName)_$($datetime).ipynb";
            }
        }

Gunakan Server Terdaftar atau Server Manajemen Pusat untuk menjalankan Invoke-SqlNotebook terhadap beberapa server. Dalam contoh ini, properti NetName instans SQL Server akan disertakan dalam nama file output; notebook materialisasi akan diberi stempel waktu dengan menit jam sebulan-hari.

Contoh 5: Jalankan Notebook, Buka Hasil di Azure Data Studio

Instal ekstensi PowerShell dari marketplace Azure Data Studio. Gunakan Konsol Terintegrasi PowerShell di Azure Data Studio untuk menjalankan Invoke-SqlNotebook dan menggunakan Open-EditorFile untuk membuka hasil SQL Notebook langsung di Azure Data Studio.

Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile

Catatan: Perintah Open-EditorFile hanya tersedia di Konsol Terintegrasi PowerShell.

Contoh 6: Jalankan Notebook, Sambungkan ke Azure SQL Databases (atau Instans Terkelola) menggunakan Perwakilan Layanan

Import-Module SQLServer
Import-Module Az.Accounts -MinimumVersion 2.2.0

### Obtain the Access Token interactively.
### Note: help for Invoke-Sqlcmd has examples on other ways to acquire the token.
Connect-AzAccount
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token

# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-SqlNotebook -ServerInstance myserver.database.windows.net -Database master -AccessToken $access_token`
                   -InputFile MyNotebook.ipynb

Parameter

-AccessToken

Token akses yang digunakan untuk mengautentikasi ke SQL Server, sebagai alternatif untuk pengguna/kata sandi atau Autentikasi Windows.

Ini dapat digunakan, misalnya, untuk menyambungkan ke SQL Azure DB dan SQL Azure Managed Instance menggunakan Service Principal atau Managed Identity (lihat referensi di bagian bawah halaman ini)

Dalam skenario umum, parameter ini diperoleh dengan sesuatu seperti (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (memerlukan modul Az.Account)

Jangan tentukan UserName, Kata Sandi , atau Kredensial saat menggunakan parameter ini.

Jenis:PSObject
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ConnectionString

Menentukan string koneksi untuk menyambungkan ke server.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Credential

Objek PSCredential yang bidang Nama Pengguna dan Kata Sandinya akan digunakan untuk menyambungkan ke instans SQL.

Jenis:PSCredential
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Database

Cmdlet ini tersambung ke database ini dalam instans yang ditentukan dalam parameter ServerInstance.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Encrypt

Jenis enkripsi yang akan digunakan saat menyambungkan ke SQL Server.

Nilai ini memetakan ke properti EncryptSqlConnectionEncryptOption pada objek SqlConnection driver Microsoft.Data.SqlClient.

Dalam v22 modul, defaultnya adalah Optional (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah 'Wajib', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.

Parameter ini baru dalam v22 modul.

Jenis:String
Nilai yang diterima:Mandatory, Optional, Strict
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Force

Secara default, ketika cmdlet menulis buku catatan materialisasi ke file, pemeriksaan dilakukan untuk mencegah pengguna menimpa file yang ada secara tidak sengaja. Gunakan -Force untuk melewati pemeriksaan ini dan izinkan cmdlet menimpa file yang ada.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-HostNameInCertificate

Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL.

Parameter ini baru dalam v22 modul.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-InputFile

Menentukan File Notebook (.ipynb) yang akan dijalankan melalui cmdlet.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-InputObject

Menentukan Notebook sebagai string Json yang akan digunakan sebagai buku catatan input.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-OutputFile

Menentukan file Notebook output yang diinginkan tempat Notebook yang dijalankan akan disimpan.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Password

Menentukan kata sandi untuk ID masuk Autentikasi SQL Server yang ditentukan dalam parameter Nama Pengguna.

Kata sandi peka huruf besar/kecil. Jika memungkinkan, gunakan Autentikasi Windows, atau pertimbangkan untuk menggunakan parameter -Credential.

Jika Anda menentukan parameter Kata Sandi diikuti oleh kata sandi Anda, kata sandi akan terlihat oleh siapa pun yang dapat melihat monitor Anda.

Jika Anda membuat kode Kata Sandi diikuti dengan kata sandi Anda dalam skrip .ps1, siapa pun yang membaca file skrip akan melihat kata sandi Anda.

Tetapkan izin NTFS yang sesuai ke file untuk mencegah pengguna lain dapat membaca file.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ProgressAction

Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.

Jenis:ActionPreference
Alias:proga
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ServerInstance

Menentukan string karakter atau objek SQL Server Management Objects (SMO) yang menentukan nama instans Mesin Database.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-TrustServerCertificate

Menunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan.

Dalam v22 modul, defaultnya adalah $true (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah '$false', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.

Parameter ini baru dalam v22 modul.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Username

Menentukan ID masuk untuk membuat koneksi Autentikasi SQL Server ke instans Mesin Database.

Kata sandi harus ditentukan melalui parameter Kata Sandi.

Jika Nama Pengguna dan Kata Sandi tidak ditentukan, cmdlet ini mencoba koneksi Autentikasi Windows menggunakan akun Windows yang menjalankan sesi Windows PowerShell. Jika memungkinkan, gunakan Autentikasi Windows.

Jenis:Object
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

System.Object

System.Management.Automation.PSCredential

Output

System.Object

Catatan

Cara yang baik untuk memvisualisasikan Notebook materialisasi adalah dengan menggunakan Azure Data Studio.