Menyalin data dari database SQL Server ke penyimpanan Blob Azure

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Di tutorial ini, Anda Azure PowerShell untuk membuat alur pabrik data yang menyalin data dari database SQL Server ke penyimpanan Blob Azure. Anda membuat dan menggunakan runtime integrasi yang dihosting sendiri, yang memindahkan data antara penyimpanan data lokal dan cloud.

Catatan

Artikel ini tidak memberikan pengenalan mendetail tentang layanan Data Factory. Untuk informasi selengkapnya, lihat Pengantar Azure Data Factory.

Di tutorial ini, Anda melakukan langkah-langkah berikuti:

  • Membuat pabrik data.
  • Membuat runtime integrasi yang dihost sendiri.
  • Buat layanan tertaut SQL Server dan Azure Storage.
  • Buat himpunan data SQL Server dan Blob Azure.
  • Buat alur dengan aktivitas salin untuk memindahkan data.
  • Memulai eksekusi alur.
  • Pantau eksekusi alur.

Prasyarat

Langganan Azure

Sebelum memulai, jika Anda belum memiliki langganan Azure, buat akun gratis.

Peran Azure

Untuk membuat instans data factory, akun pengguna yang Anda gunakan untuk masuk ke Azure harus ditetapkan peran Kontributor atau Pemilik atau admin langganan Azure.

Untuk menampilkan izin yang Anda miliki di langganan, masuk ke portal Microsoft Azure, pilih nama pengguna Anda di sudut kanan atas, lalu pilih Izin. Jika Anda memiliki akses ke beberapa langganan, pilih langganan yang sesuai. Untuk contoh instruksi tentang cara menambahkan pengguna ke peran, lihat Tetapkan peran Azure menggunakan portal Microsoft Azure.

SQL Server 2014, 2016, dan 2017

Dalam tutorial ini, Anda menggunakan database Microsoft SQL Server sebagai penyimpanan data sumber. Alur di pabrik data yang Anda buat Di tutorial ini menyalin data dari database Microsoft SQL Server ini (sumber) ke penyimpanan Blob Azure (sink). Anda kemudian membuat tabel bernama emp di database SQL Server Anda, dan menyisipkan beberapa entri sampel ke dalam tabel.

  1. Mulailah SQL Server Management Studio. Jika belum terpasang di komputer Anda, buka Unduh SQL Server Management Studio.

  2. Sambungkan ke instans SQL Server Anda dengan menggunakan kredensial Anda.

  3. Buat sampel database. Dalam tampilan pohon, klik kanan Database, lalu pilih Database Baru.

  4. Di jendela Database Baru, masukkan nama untuk database, lalu pilih OK.

  5. Untuk membuat tabel emp dan menyisipkan beberapa sampel data ke dalamnya, jalankan skrip kueri berikut ini terhadap database. Dalam tampilan pohon, klik kanan database yang Anda buat, lalu pilih Kueri Baru.

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe')
    INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe')
    GO
    

Akun Azure Storage

Di tutorial ini, Anda menggunakan akun penyimpanan Azure tujuan umum (khususnya, penyimpanan Blob Azure) sebagai penyimpanan data tujuan/sink. Jika Anda tidak memiliki akun penyimpanan Azure, lihat Membuat akun penyimpanan. Alur di pabrik data yang Anda buat Di tutorial ini menyalin data dari database SQL Server (sumber) ke penyimpanan Blob Azure (sink).

Dapatkan nama akun penyimpanan dan kunci akun

Anda dapat menggunakan nama dan kunci akun penyimpanan Azure Anda Di tutorial ini. Dapatkan nama dan kunci akun penyimpanan Anda dengan mengikuti langkah berikut:

  1. Masuk ke portal Microsoft Azure dengan nama pengguna dan kata sandi Azure Anda.

  2. Di filter panel kiri, pilih Layanan lainnya, dengan menggunakan kata kunci Penyimpanan, lalu pilih Akun penyimpanan.

    Cari akun penyimpanan

  3. Dalam daftar akun penyimpanan, filter untuk akun penyimpanan Anda (jika diperlukan), lalu pilih akun penyimpanan Anda.

  4. Di jendela Akun penyimpanan, pilih Tombol akses.

  5. Dalam kotak Nama akun penyimpanan dan kotak kunci1, lalu tempelkan nilai, lalu tempelkan ke Notepad atau editor lain untuk digunakan nanti dalam tutorial.

Membuat kontainer adftutorial

Di bagian ini, Anda membuat kontainer blob bernama adftutorial di penyimpanan Blob Azure Anda.

  1. Di jendela Akun penyimpanan, beralih ke Gambaran Umum, lalu pilih Blob.

    Pilih opsi Blob

  2. Di jendela Blob service, pilih Kontainer.

  3. Di jendela Kontainer baru, dalam kotak Nama, masukkan adftutorial, lalu pilih OK.

    Masukkan nama kontainer

  4. Dalam daftar kontainer, pilih adftutorial.

  5. Pastikan jendela kontainer untuk adftutorial tetap terbuka. Anda menggunakannya untuk memverifikasi output di akhir tutorial. Data Factory secara otomatis membuat folder output dalam kontainer ini, sehingga Anda tidak perlu membuatnya.

Windows PowerShell

Menginstal Azure PowerShell

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Pasang versi terbaru Azure PowerShell jika Anda belum memilikinya di mesin Anda. Untuk informasi selengkapnya, lihat Cara memasang dan mengonfigurasi Azure PowerShell.

Masuk ke PowerShell

  1. Mulai PowerShell di mesin Anda, dan tetap buka melalui penyelesaian tutorial mulai cepat ini. Jika menutup dan membuka kembali, Anda perlu menjalankan perintah ini lagi.

  2. Jalankan perintah berikut dan masukkan nama pengguna serta kata sandi Azure yang Anda gunakan untuk masuk ke portal Microsoft Azure:

    Connect-AzAccount
    
  3. Jika Anda memiliki beberapa langganan Azure, jalankan perintah berikut ini untuk memilih langganan yang ingin Anda kerjakan. Ganti SubscriptionId dengan ID langganan Azure Anda:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

Membuat pabrik data

  1. Tentukan variabel untuk nama grup sumber daya yang akan Anda gunakan di perintah PowerShell nanti. Salin perintah berikut ke PowerShell, tentukan nama untuk grup sumber daya Azure (diapit tanda kutip ganda; misalnya, "adfrg"), lalu jalankan perintah.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Untuk membuat grup sumber daya Azure, jalankan perintah berikut:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Jika grup sumber daya sudah ada, Anda mungkin tidak ingin menimpanya. Tetapkan nilai yang berbeda ke variabel $resourceGroupName dan jalankan perintah lagi.

  3. Tentukan variabel untuk nama pabrik data yang dapat Anda gunakan di perintah PowerShell nanti. Nama kontainer harus diawali dengan huruf atau angka, dan hanya dapat berisi huruf, angka, dan karakter tanda hubung (-).

    Penting

    Perbarui nama pabrik data dengan nama yang unik secara global. Misalnya, ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Tentukan variabel untuk lokasi pabrik data:

    $location = "East US"
    
  5. Untuk membuat pabrik data, jalankan Set-AzDataFactoryV2 cmdlet berikut:

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
    

Catatan

  • Nama pabrik data harus unik secara global. Jika Anda menerima kesalahan berikut, ubah nama dan coba lagi.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Untuk membuat instans pabrk data, akun pengguna yang Anda gunakan untuk masuk ke Azure harus ditetapkan peran kontributor atau pemilik atau admin langganan Azure.
  • Untuk daftar wilayah Azure tempat Data Factory saat ini tersedia, pilih wilayah yang menarik minat Anda pada halaman berikut, lalu perluas Analitik untuk menemukan Data Factory: Produk yang tersedia menurut wilayah. Penyimpanan data (Azure Storage, Azure SQL Database, dll.) dan komputasi (Azure HDInsight, dll.) yang digunakan oleh pabrik data dapat berada di wilayah lain.

Membuat runtime integrasi yang dihost sendiri

Di bagian ini, Anda membuat runtime integrasi yang dihost sendiri dan mengaitkannya dengan mesin lokal dengan database Microsoft SQL Server. Runtime integrasi yang dihost sendiri adalah komponen yang menyalin data dari database SQL Server di mesin Anda ke penyimpanan Blob Azure.

  1. Buat variabel untuk nama runtime integrasi. Gunakan nama unik, dan catat namanya. Anda menggunakannya nanti dalam tutorial ini.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Membuat runtime integrasi yang dihost sendiri.

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    Berikut adalah output sampel:

    Name              : ADFTutorialIR
    Type              : SelfHosted
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Description       : selfhosted IR description
    Id                : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  3. Untuk mengambil status runtime integrasi yang dibuat, jalankan perintah berikut:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    Berikut adalah output sampel:

    State                     : NeedRegistration
    Version                   :
    CreateTime                : 9/10/2019 3:24:09 AM
    AutoUpdate                : On
    ScheduledUpdateDate       :
    UpdateDelayOffset         :
    LocalTimeZoneOffset       :
    InternalChannelEncryption :
    Capabilities              : {}
    ServiceUrls               : {eu.frontend.clouddatahub.net}
    Nodes                     : {}
    Links                     : {}
    Name                      : <Integration Runtime name>
    Type                      : SelfHosted
    ResourceGroupName         : <resourceGroup name>
    DataFactoryName           : <dataFactory name>
    Description               : selfhosted IR description
    Id                        : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  4. Untuk mengambil kunci autentikasi guna mendaftarkan runtime integrasi yang dihost sendiri dengan layanan Data Factory di cloud, jalankan perintah berikut. Salin salah satu kunci (tidak termasuk tanda kutip) untuk mendaftarkan runtime integrasi yang dihost sendiri yang Anda instal di komputer Anda pada langkah berikutnya.

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    Berikut adalah output sampel:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

Menginstal runtime integrasi

  1. Unduh Integration Runtime Azure Data Factory pada komputer Windows lokal, lalu jalankan instalasi.

  2. Di wizard Selamat Datang di Penyiapan Microsoft Integration Runtime, pilih Berikutnya.

  3. Di jendela Perjanjian Lisensi Pengguna Akhir, terima persyaratan dan perjanjian lisensi, lalu pilih Berikutnya.

  4. Di jendela Folder Tujuan, pilih Berikutnya.

  5. Di jendela Siap menginstal Microsoft Integration Runtime, pilih Instal.

  6. Di wizard Penyiapan Microsoft Integration Runtime yang Telah Selesai, pilih Selesai.

  7. Di jendela Daftarkan Integration Runtime (Dihost sendiri), tempelkan kunci yang Anda simpan di bagian sebelumnya, lalu pilih Daftarkan.

    Daftarkan runtime integrasi

  8. Di jendela Simpul Integration Runtime baru (Dihost sendiri), pilih Selesai.

    Jendela Simpul Integration Runtime baru

  9. Ketika runtime integrasi yang dihost sendiri berhasil didaftarkan, pesan berikut akan ditampilkan:

    Berhasil didaftarkan

  10. Di jendela Daftarkan Integration Runtime (Dihost sendiri), pilih Luncurkan Configuration Manager.

  11. Saat simpul terhubung ke layanan cloud, pesan berikut ditampilkan:

    Node tersambung

  12. Uji konektivitas ke database SQL Server Anda dengan melakukan hal berikut:

    a. Di jendela Configuration Manager, beralihlah ke tab Diagnostik.

    b. Di kotak Jenis sumber data, pilih SqlServer.

    c. Masukkan nama server.

    d. Masukkan nama database.

    e. Pilih mode autentikasi.

    f. Masukkan nama pengguna.

    g. Masukkan kata sandi yang dikaitkan dengan nama pengguna.

    h. Untuk mengonfirmasi bahwa runtime integrasi dapat terhubung ke SQL Server, pilih Uji.
    Konektivitas berhasil

    Jika koneksi berhasil, ikon tanda centang hijau akan ditampilkan. Jika tidak, Anda akan menerima pesan kesalahan terkait kegagalan tersebut. Perbaiki masalah apa pun, dan pastikan bahwa runtime integrasi dapat terhubung ke instans SQL Server Anda.

    Perhatikan semua nilai sebelumnya untuk digunakan nanti Di tutorial ini.

Membuat layanan tertaut

Untuk menautkan penyimpanan data dan layanan komputasi ke pabrik data, buat layanan tertaut di pabrik data. Di tutorial ini, Anda menautkan akun penyimpanan Azure dan instans SQL Server ke penyimpanan data. Layanan tertaut memiliki informasi koneksi yang digunakan layanan Data Factory saat runtime untuk menghubungkannya.

Buat layanan tertaut Azure Storage (tujuan/sink)

Pada langkah ini, Anda menautkan akun penyimpanan Azure ke pabrik data.

  1. Buat file JSON bernama AzureStorageLinkedService.json di folder C:\ADFv2Tutorial dengan kode berikut. Jika folder ADFv2Tutorial masih belum ada, buatlah.

    Penting

    Sebelum Anda menyimpan file, ganti <accountName> dan <accountKey> dengan nama dan kunci akun penyimpanan Azure Anda. Anda mencatat semuanya di bagian Prasyarat.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. Di PowerShell, beralihlah ke folder C:\ADFv2Tutorial.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. Untuk membuat layanan tertaut, AzureStorageLinkedService, jalankan cmdlet Set-AzDataFactoryV2LinkedService berikut:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    Berikut adalah hasil sampelnya:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    Jika Anda menerima kesalahan "file tidak ditemukan", konfirmasikan bahwa file tersebut sudah ada dengan menjalankan perintah dir. Jika nama file memiliki ekstensi .txt (misalnya, AzureStorageLinkedService.json.txt), hapus file tersebut, lalu jalankan perintah PowerShell lagi.

Buat dan enkripsi layanan tertaut SQL Server (sumber)

Di langkah ini, Anda menautkan instans SQL Server Anda ke pabrik data.

  1. Buat file JSON bernama AzureStorageLinkedService.json di folder C:\ADFv2Tutorial dengan menggunakan kode berikut:

    Penting

    Pilih bagian yang didasarkan pada autentikasi yang Anda gunakan untuk menghubungkan ke SQL Server.

    Menggunakan autentikasi SQL (sa):

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>"
            },
            "connectVia":{  
                "referenceName":"<integration runtime name> ",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Menggunakan autentikasi Windows:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>",
                "userName":"<username> or <domain>\\<username>",
                "password":{  
                    "type":"SecureString",
                    "value":"<password>"
                }
            },
            "connectVia":{  
                "referenceName":"<integration runtime name>",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Penting

    • Pilih bagian yang didasarkan pada autentikasi yang Anda gunakan untuk menghubungkan ke instans SQL Server.
    • Ganti <nama runtime integrasi> dengan nama runtime integrasi Anda.
    • Sebelum Anda menyimpan file, ganti <servername>, <databasename>, <username>, dan <kata sandi> dengan nilai instans SQL Server Anda.
    • Jika Anda perlu menggunakan garis miring terbalik (\) di akun pengguna atau nama server Anda, awali dengan karakter escape (\). Misalnya, gunakan domainsaya\\penggunasaya.
  2. Untuk mengenkripsi data sensitif (nama pengguna, kata sandi, dan sebagainya), jalankan cmdlet New-AzDataFactoryV2LinkedServiceEncryptedCredential.
    Enkripsi ini memastikan bahwa kredensial telah dienkripsi menggunakan Antarmuka Pemrograman Aplikasi Perlindungan Data (DPAPI). Kredensial terenkripsi disimpan secara lokal pada simpul runtime integrasi yang dihost sendiri (komputer lokal). Payload output dapat dialihkan ke file JSON lain (dalam kasus ini, encryptedLinkedService.json) yang berisi kredensial terenkripsi.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. Jalankan perintah berikut, yang akan membuat EncryptedSqlServerLinkedService:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

Membuat himpunan data

Dalam langkah ini, Anda membuat himpunan data input dan output. Keduanya mewakili data input dan output untuk operasi penyalinan, yang menyalin data dari database SQL Server ke Azure Blob Storage.

Buat himpunan data untuk database SQL Server sumber

Pada langkah ini, Anda menentukan himpunan data yang mewakili data di instans DB SQL Server. Himpunan data adalah salah satu jenis dari SqlServerTable. Hal ini mengacu pada layanan tertaut SQL Server yang Anda buat di langkah sebelumnya. Layanan tertaut memiliki informasi koneksi yang digunakan layanan Data Factory untuk menghubungkan ke instans SQL Server Anda saat runtime. Himpunan data ini menentukan tabel SQL dalam database yang berisi data. Di tutorial ini, tabel emp berisi data sumber.

  1. Buat file JSON bernama SqlServerDataset.json di folder C:\ADFv2Tutorial, dengan kode berikut:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. Untuk membuat himpunan data SqlServerDataset, jalankan cmdlet Set-AzDataFactoryV2Dataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    Berikut adalah output sampel:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

Membuat himpunan data untuk Azure Blob Storage (sink)

Pada langkah ini, Anda menentukan himpunan data yang mewakili data yang akan disalin ke Azure Blob Storage. Himpunan data adalah salah satu jenis dari AzureBlob. Hal ini mengacu pada layanan tertaut Azure Storage yang Anda buat sebelumnya Di tutorial ini.

Layanan tertaut memiliki informasi koneksi yang digunakan pabrik data saat runtime untuk menghubungkan ke akun penyimpanan Azure Anda. Himpunan data ini menentukan folder di penyimpanan Azure tempat data disalin dari database SQL Server. Di tutorial ini, foldernya adalah adftutorial/fromonprem, di mana adftutorial adalah kontainer blobnya dan fromonprem adalah foldernya.

  1. Buat file JSON bernama AzureBlobDataset.json di folder C:\ADFv2Tutorial, dengan kode berikut:

    {  
        "name":"AzureBlobDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"AzureStorageLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"DelimitedText",
            "typeProperties":{  
                "location":{  
                    "type":"AzureBlobStorageLocation",
                    "folderPath":"fromonprem",
                    "container":"adftutorial"
                },
                "columnDelimiter":",",
                "escapeChar":"\\",
                "quoteChar":"\""
            },
            "schema":[  
    
            ]
        },
        "type":"Microsoft.DataFactory/factories/datasets"
    }
    
  2. Untuk membuat himpunan data AzureBlobDataset, jalankan cmdlet Set-AzDataFactoryV2Dataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    Berikut adalah output sampel:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

Buat alur

Di tutorial ini, Anda membuat alur dengan aktivitas penyalinan. Aktivitas penyalinan menggunakan SqlServerDataset sebagai himpunan data input dan AzureBlobDataset sebagai himpunan data output. Jenis sumber diatur ke SqlSource dan jenis sink diatur ke BlobSink.

  1. Buat file JSON bernama SqlServerToBlobPipeline.json di folder C:\ADFv2Tutorial, dengan kode berikut:

    {  
        "name":"SqlServerToBlobPipeline",
        "properties":{  
            "activities":[  
                {  
                    "name":"CopySqlServerToAzureBlobActivity",
                    "type":"Copy",
                    "dependsOn":[  
    
                    ],
                    "policy":{  
                        "timeout":"7.00:00:00",
                        "retry":0,
                        "retryIntervalInSeconds":30,
                        "secureOutput":false,
                        "secureInput":false
                    },
                    "userProperties":[  
    
                    ],
                    "typeProperties":{  
                        "source":{  
                            "type":"SqlServerSource"
                        },
                        "sink":{  
                            "type":"DelimitedTextSink",
                            "storeSettings":{  
                                "type":"AzureBlobStorageWriteSettings"
                            },
                            "formatSettings":{  
                                "type":"DelimitedTextWriteSettings",
                                "quoteAllText":true,
                                "fileExtension":".txt"
                            }
                        },
                        "enableStaging":false
                    },
                    "inputs":[  
                        {  
                            "referenceName":"SqlServerDataset",
                            "type":"DatasetReference"
                        }
                    ],
                    "outputs":[  
                        {  
                            "referenceName":"AzureBlobDataset",
                            "type":"DatasetReference"
                        }
                    ]
                }
            ],
            "annotations":[  
    
            ]
        }
    }
    
  2. Untuk membuat alur SQLServerToBlobPipeline, jalankan cmdlet Set-AzDataFactoryV2Pipeline.

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    Berikut adalah output sampel:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

Membuat eksekusi alur

Mulai eksekusi alur untuk alur SQLServerToBlobPipeline, dan ambil ID eksekusi alur untuk pemantauan di masa mendatang.

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

Memantau eksekusi alur

  1. Untuk terus memeriksa status eksekusi alur SQLServerToBlobPipeline, jalankan skrip berikut ini di PowerShell, dan cetak hasil akhirnya:

    while ($True) {
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    
        if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) {
            Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow"
            Start-Sleep -Seconds 30
        }
        else {
            Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow"
            $result
            break
        }
    }
    

    Berikut adalah output dari eksekusi sampel:

    ResourceGroupName    : <resourceGroupName>
    DataFactoryName      : <dataFactoryName>
    ActivityRunId        : 24af7cf6-efca-4a95-931d-067c5c921c25
    ActivityName         : CopySqlServerToAzureBlobActivity
    ActivityType         : Copy
    PipelineRunId        : 7b538846-fd4e-409c-99ef-2475329f5729
    PipelineName         : SQLServerToBlobPipeline
    Input                : {source, sink, enableStaging}
    Output               : {dataRead, dataWritten, filesWritten, sourcePeakConnections...}
    LinkedServiceName    :
    ActivityRunStart     : 9/11/2019 7:10:37 AM
    ActivityRunEnd       : 9/11/2019 7:10:58 AM
    DurationInMs         : 21094
    Status               : Succeeded
    Error                : {errorCode, message, failureType, target}
    AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}
    
  2. Anda bisa mendapatkan ID eksekusi alur SQLServerToBlobPipeline dan memeriksa hasil eksekusi aktivitas secara mendetail dengan menjalankan perintah berikut:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    Berikut adalah output dari eksekusi sampel:

    {  
        "dataRead":36,
        "dataWritten":32,
        "filesWritten":1,
        "sourcePeakConnections":1,
        "sinkPeakConnections":1,
        "rowsRead":2,
        "rowsCopied":2,
        "copyDuration":18,
        "throughput":0.01,
        "errors":[  
    
        ],
        "effectiveIntegrationRuntime":"ADFTutorialIR",
        "usedParallelCopies":1,
        "executionDetails":[  
            {  
                "source":{  
                    "type":"SqlServer"
                },
                "sink":{  
                    "type":"AzureBlobStorage",
                    "region":"CentralUS"
                },
                "status":"Succeeded",
                "start":"2019-09-11T07:10:38.2342905Z",
                "duration":18,
                "usedParallelCopies":1,
                "detailedDurations":{  
                    "queuingDuration":6,
                    "timeToFirstByte":0,
                    "transferDuration":5
                }
            }
        ]
    }
    

Verifikasi output

Alur secara otomatis membuat folder output bernama fromonprem di adftutorialkontainer blob. Konfirmasikan bahwa Anda melihat file dbo.emp.txt di dalam folder output.

  1. Di portal Microsoft Azure, di jendela kontainer adftutorial, pilih Refresh untuk melihat folder output.

  2. Pilih fromonprem dalam daftar folder.

  3. Konfirmasikan bahwa Anda melihat file bernama dbo.emp.txt.

    File output

Alur dalam sampel ini menyalin data dari satu lokasi ke lokasi lain dalam Azure Blob Storage. Anda mempelajari cara untuk:

  • Membuat pabrik data.
  • Membuat runtime integrasi yang dihost sendiri.
  • Buat layanan tertaut SQL Server dan Azure Storage.
  • Buat himpunan data SQL Server dan Blob Azure.
  • Buat alur dengan aktivitas salin untuk memindahkan data.
  • Memulai eksekusi alur.
  • Pantau eksekusi alur.

Untuk mengetahui daftar penyimpanan data yang didukung oleh Data Factory, lihat penyimpanan data yang didukung.

Untuk mempelajari cara menyalin data secara massal dari sumber ke tujuan, lanjutkan ke tutorial berikut: