Bagikan melalui


Menyalin data dari Amazon RDS for SQL Server menggunakan Azure Data Factory atau Azure Synapse Analytics

Artikel ini menguraikan cara menggunakan aktivitas salin di Azure Data Factory dan saluran Azure Synapse untuk menyalin data dari Amazon RDS untuk database SQL Server. Untuk mempelajari lebih lanjut, baca artikel pengantar untuk Azure Data Factory atau Azure Synapse Analytics.

Kemampuan yang didukung

Konektor Amazon RDS untuk SQL Server ini didukung untuk kemampuan berikut:

Kemampuan yang didukung IR
Salin aktivitas (sumber/-) (1) (2)
Aktivitas pencarian (1) (2)
Aktivitas GetMetadata (1) (2)
Aktivitas prosedur tersimpan (1) (2)

① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri

Untuk daftar penyimpanan data yang didukung sebagai sumber atau sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.

Secara khusus, konektor Amazon RDS untuk SQL Server ini mendukung:

  • SQL Server versi 2005 ke atas.
  • Menyalin data dengan menggunakan otentikasi SQL atau Windows.
  • Sebagai sumber, mengambil data dengan menggunakan kueri SQL atau prosedur tersimpan. Anda juga dapat memilih untuk menyalin paralel dari Amazon RDS untuk sumber SQL Server, lihat bagian Salinan paralel dari database SQL untuk detailnya.

SQL Server Express LocalDB tidak didukung.

Prasyarat

Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda harus mengonfigurasi runtime integrasi yang dihosting sendiri untuk menghubungkannya.

Jika penyimpanan data Anda adalah layanan data cloud terkelola, Anda dapat menggunakan Azure Integration Runtime. Jika akses dibatasi untuk IP yang disetujui dalam aturan firewall, Anda dapat menambahkan IP Azure Integration Runtime ke daftar izinkan.

Anda juga dapat menggunakan fitur runtime integrasi jaringan virtual terkelola di Azure Data Factory untuk mengakses jaringan lokal tanpa menginstal dan mengonfigurasi runtime integrasi yang dihosting sendiri.

Untuk informasi selengkapnya tentang mekanisme dan opsi keamanan jaringan yang didukung oleh Data Factory, lihat Strategi akses data.

Mulai sekarang

Untuk melakukan aktivitas salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Buat layanan tertaut Amazon RDS untuk SQL Server menggunakan Antarmuka pengguna

Gunakan langkah-langkah berikut untuk membuat layanan tertaut Amazon RDS untuk SQL Server di Antarmuka pengguna portal Microsoft Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:

  2. Cari Amazon RDS untuk server SQL dan pilih konektor Amazon RDS untuk SQL Server.

    Cuplikan layar konektor Amazon RDS untuk SQL Server.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Cuplikan layar konfigurasi untuk layanan tertaut Amazon RDS untuk SQL Server.

Detail konfigurasi konektor

Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas saluran Data Factory dan Synapse khusus untuk konektor database Amazon RDS untuk SQL Server.

Properti layanan terhubung

Versi Konektor Amazon RDS untuk SQL Server yang Direkomendasikan mendukung TLS 1.3. Lihat bagian ini untuk meningkatkan versi konektor Amazon RDS for SQL Server Anda dari versi Lama. Untuk detail properti, lihat bagian yang sesuai.

Catatan

Amazon RDS untuk SQL Server Always Encrypted tidak didukung dalam aliran data.

Petunjuk

Jika Anda menemui kesalahan dengan kode kesalahan "UserErrorFailedToConnectToSqlServer" dan pesan seperti "Batas sesi untuk database adalah XXX dan telah tercapai," tambahkan Pooling=false ke string koneksi Anda dan coba lagi.

Properti generik ini didukung untuk layanan tertaut Amazon RDS untuk SQL Server saat Anda menerapkan versi yang Direkomendasikan :

Properti Deskripsi Wajib
jenis Jenis properti harus disetel ke AmazonRdsForSqlServer. Ya
server Nama atau alamat jaringan instans server SQL yang ingin Anda sambungkan. Ya
database Nama database. Ya
jenisOtentikasi Jenis yang digunakan untuk autentikasi. Nilai yang diizinkan adalah SQL (default), Windows. Buka bagian autentikasi yang relevan pada properti dan prasyarat tertentu. Ya
pengaturanSelaluTerenkripsi Tetapkan informasi alwaysencryptedsettings yang diperlukan untuk mengaktifkan Always Encrypted guna melindungi data sensitif yang disimpan di Amazon RDS untuk SQL Server dengan menggunakan identitas terkelola atau principal layanan. Untuk informasi selengkapnya, lihat contoh JSON mengikuti tabel dan bagian Menggunakan Always Encrypted. Jika tidak ditentukan, pengaturan default selalu dienkripsi akan dinonaktifkan. Tidak
enkripsi Menunjukkan apakah enkripsi TLS diperlukan untuk semua data yang dikirim antara klien dan server. Opsi: wajib (untuk true, default)/opsional (untuk false)/ketat. Tidak
trustServerCertificate Tunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan. Tidak
NamaHostDalamSertifikat Nama host yang digunakan saat memvalidasi sertifikat server untuk koneksi. Ketika tidak ditentukan, nama server digunakan untuk validasi sertifikat. Tidak
connectVia Runtime integrasi ini digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, runtime integrasi Azure default digunakan. Tidak

Untuk properti koneksi tambahan, lihat tabel di bawah ini:

Properti Deskripsi Wajib
applicationIntent Jenis beban kerja aplikasi saat menyambungkan ke server. Nilai yang diizinkan adalah ReadOnly dan ReadWrite. Tidak
connectTimeout Lamanya waktu (dalam detik) untuk menunggu koneksi ke server sebelum mengakhiri upaya dan menghasilkan kesalahan. Tidak
connectRetryCount Jumlah percobaan koneksi ulang setelah mengidentifikasi kegagalan koneksi tidak aktif. Nilai harus berupa bilangan bulat antara 0 dan 255. Tidak
connectRetryInterval Jumlah waktu (dalam detik) antara setiap upaya koneksi ulang setelah mengidentifikasi kegagalan koneksi diam. Nilai harus berupa bilangan bulat antara 1 dan 60. Tidak
batas waktu keseimbangan beban Waktu minimum (dalam detik) agar koneksi hidup di kumpulan koneksi sebelum koneksi dihancurkan. Tidak
commandTimeout Waktu tunggu default (dalam detik) sebelum mengakhiri upaya untuk menjalankan perintah dan menghasilkan kesalahan. Tidak
keamananTertanam Nilai yang diizinkan adalah true atau false. Saat menentukan false, tunjukkan apakah userName dan kata sandi ditentukan dalam koneksi. Saat menentukan true, menunjukkan apakah kredensial akun Windows saat ini digunakan untuk autentikasi. Tidak
failoverPartner Nama atau alamat server mitra yang akan disambungkan jika server utama tidak berfungsi. Tidak
maxPoolSize Jumlah maksimum koneksi yang diizinkan dalam kumpulan koneksi untuk koneksi tertentu. Tidak
minPoolSize Jumlah minimum koneksi yang diizinkan dalam kumpulan koneksi untuk koneksi tertentu. Tidak
multipleActiveResultSets Nilai yang diizinkan adalah true atau false. Saat Anda menentukan true, aplikasi dapat mempertahankan beberapa kumpulan hasil aktif (MARS). Ketika Anda menentukan false, aplikasi harus memproses atau membatalkan semua kumpulan hasil dari satu batch sebelum dapat menjalankan batch lain pada koneksi tersebut. Tidak
multiSubnetFailover Nilai yang diizinkan adalah true atau false. Jika aplikasi Anda tersambung ke grup ketersediaan AlwaysOn (AG) pada subnet yang berbeda, atur properti ini untuk true memberikan deteksi dan koneksi yang lebih cepat ke server yang saat ini aktif. Tidak
ukuran paket Ukuran dalam byte paket jaringan yang digunakan untuk berkomunikasi dengan instans server. Tidak
Penggabungan Nilai yang diizinkan adalah true atau false. Saat Anda menentukan true, koneksi akan dikumpulkan. Ketika Anda menentukan false, koneksi akan dibuka secara eksplisit setiap kali koneksi diminta. Tidak

Autentikasi SQL

Untuk menggunakan autentikasi SQL, selain properti generik yang dijelaskan di bagian sebelumnya, tentukan properti berikut:

Properti Deskripsi Wajib
userName Nama pengguna yang digunakan untuk menyambungkan ke server. Ya
kata sandi Kata sandi untuk nama pengguna. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mereferensikan rahasia yang disimpan di Azure Key Vault. Ya

Contoh: Menggunakan autentikasi SQL

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh: Menggunakan autentikasi SQL dengan kata sandi di Azure Key Vault

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh: Gunakan Always Encrypted

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "alwaysEncryptedSettings": {
                "alwaysEncryptedAkvAuthType": "ServicePrincipal",
                "servicePrincipalId": "<service principal id>",
                "servicePrincipalKey": {
                    "type": "SecureString",
                    "value": "<service principal key>"
                }
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Autentikasi Windows

Untuk menggunakan autentikasi Windows, selain properti generik yang dijelaskan di bagian sebelumnya, tentukan properti berikut:

Properti Deskripsi Wajib
userName Tentukan nama pengguna. Contohnya adalah domainname\username. Ya
kata sandi Tentukan kata sandi untuk akun pengguna yang Anda tentukan untuk nama pengguna. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mereferensikan rahasia yang disimpan di Azure Key Vault. Ya

Contoh: Menggunakan autentikasi Windows

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "Windows",
            "userName": "<domain\\username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Versi lama

Properti generik ini didukung untuk layanan tertaut Amazon RDS for SQL Server ketika Anda menerapkan Legacy version:

Properti Deskripsi Wajib
jenis Jenis properti harus disetel ke AmazonRdsForSqlServer. Ya
pengaturanSelaluTerenkripsi Tetapkan informasi alwaysencryptedsettings yang diperlukan untuk mengaktifkan Always Encrypted guna melindungi data sensitif yang disimpan di Amazon RDS untuk SQL Server dengan menggunakan identitas terkelola atau principal layanan. Untuk informasi selengkapnya, lihat bagian Menggunakan Always Encrypted. Jika tidak ditentukan, pengaturan default selalu dienkripsi akan dinonaktifkan. Tidak
connectVia Runtime integrasi ini digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, runtime integrasi Azure default digunakan. Tidak

Konektor Amazon RDS for SQL Server ini mendukung jenis autentikasi berikut. Lihat bagian terkait untuk detailnya.

Autentikasi SQL untuk versi warisan

Untuk menggunakan autentikasi SQL, selain properti generik yang dijelaskan di bagian sebelumnya, tentukan properti berikut:

Properti Deskripsi Wajib
String Koneksi Tentukan informasi connectionString yang diperlukan untuk menyambungkan ke database Amazon RDS for SQL Server. Tentukan nama login sebagai nama pengguna Anda, dan pastikan database yang ingin Anda sambungkan dipetakan ke login ini. Ya
kata sandi Jika Anda ingin memasukkan kata sandi di Azure Key Vault, tarik konfigurasi password dari string koneksi. Untuk informasi selengkapnya, lihat Menyimpan kredensial di Azure Key Vault. Tidak

Autentikasi Windows untuk versi warisan

Untuk menggunakan autentikasi Windows, selain properti generik yang dijelaskan di bagian sebelumnya, tentukan properti berikut:

Properti Deskripsi Wajib
String Koneksi Tentukan informasi connectionString yang diperlukan untuk menyambungkan ke database Amazon RDS for SQL Server. Ya
userName Tentukan nama pengguna. Contohnya adalah domainname\username. Ya
kata sandi Tentukan kata sandi untuk akun pengguna yang Anda tentukan untuk nama pengguna. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mereferensikan rahasia yang disimpan di Azure Key Vault. Ya

Properti himpunan data

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel himpunan data. Bagian ini menyediakan daftar properti yang didukung oleh kumpulan data Amazon RDS untuk SQL Server.

Untuk menyalin data dari database Amazon RDS untuk SQL Server, properti berikut telah didukung:

Properti Deskripsi Wajib
jenis Jenis properti dari kumpulan data harus disetel ke AmazonRdsForSqlServerTable. Ya
skema Nama skema. Tidak
tabel Nama tabel/tampilan. Tidak
tableName Nama tabel/tampilan dengan skema. Properti ini didukung untuk kompatibilitas ke belakang. Untuk beban kerja baru, gunakan schema dan table. Tidak

Contoh

{
    "name": "AmazonRdsForSQLServerDataset",
    "properties":
    {
        "type": "AmazonRdsForSqlServerTable",
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for SQL Server linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Properti aktivitas menyalin

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Pipelines. Bagian ini menyediakan daftar properti yang didukung oleh Amazon RDS untuk sumber SQL Server.

Amazon RDS untuk SQL Server sebagai sumber

Petunjuk

Untuk memuat data dari Amazon RDS untuk SQL Server secara efisien dengan menggunakan partisi data, pelajari lebih lanjut dari Salinan paralel dari database SQL.

Untuk menyalin data dari Amazon RDS untuk SQL Server, setel jenis sumber dalam aktivitas penyalinan ke AmazonRdsForSqlServerSource. Berikut ini properti yang didukung di bagian sumber aktivitas salin:

Properti Deskripsi Wajib
jenis Jenis properti dari sumber aktivitas penyalinan harus disetel ke AmazonRdsForSqlServerSource. Ya
sqlReaderQuery Gunakan kueri SQL kustom untuk membaca data. Contohnya select * from MyTable. Tidak
sqlReaderStoredProcedureName Properti ini adalah nama prosedur tersimpan yang membaca data dari tabel sumber. Pernyataan SQL terakhir harus merupakan pernyataan SELECT dalam prosedur tersimpan. Tidak
parameterProsedurTersimpan Parameter ini untuk prosedur tersimpan dalam basis data.
Nilai yang diizinkan adalah pasangan nama atau nilai. Nama dan kapitalisasi parameter harus sesuai dengan nama dan kapitalisasi parameter prosedur tersimpan.
Tidak
tingkat isolasi Menentukan perilaku penguncian transaksi untuk sumber SQL. Nilai yang diperbolehkan adalah: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Rekam jepret. Jika tidak ditentukan, tingkat isolasi default database digunakan. Lihat ke dokumen ini untuk detail selengkapnya. Tidak
partitionOptions Menentukan opsi partisi data yang digunakan untuk memuat data dari Amazon RDS untuk SQL Server.
Nilai yang diizinkan adalah: Tidak ada (default), PhysicalPartitionsOfTable, dan DynamicRange.
Bila opsi partisi diaktifkan (yaitu, bukan None), tingkat paralelisme untuk memuat data secara bersamaan dari Amazon RDS untuk SQL Server dikontrol oleh pengaturan parallelCopies pada aktivitas penyalinan.
Tidak
pengaturan partisi Tentukan grup pengaturan untuk pemartisian data.
Terapkan saat opsi partisi bukan None.
Tidak
Di bawah partitionSettings:
partitionColumnName Tentukan nama kolom sumber dalam bilangan bulat atau jenis tanggal/waktu (int, smallint, bigint, date, smalldatetime, datetime, datetime2, atau datetimeoffset) yang akan digunakan oleh partisi rentang untuk salinan paralel. Jika tidak ditentukan, indeks atau kunci primer tabel terdeteksi secara otomatis dan digunakan sebagai kolom partisi.
Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?DfDynamicRangePartitionCondition di klausul WHERE. Misalnya, lihat bagian Penyalinan paralel dari database SQL.
Tidak
partitionUpperBound Nilai maksimum kolom partisi untuk pemisahan rentang partisi. Nilai ini digunakan untuk menentukan langkah partisi, bukan untuk memfilter baris dalam tabel. Semua baris dalam tabel atau hasil kueri akan dipartisi dan disalin. Jika tidak ditentukan, aktivitas salin secara otomatis mendeteksi nilai.
Terapkan saat opsi partisi adalah DynamicRange. Misalnya, lihat bagian Penyalinan paralel dari database SQL.
Tidak
partitionLowerBound Nilai minimum kolom partisi untuk membagi rentang partisi. Nilai ini digunakan untuk menentukan langkah partisi, bukan untuk memfilter baris dalam tabel. Semua baris dalam tabel atau hasil kueri akan dipartisi dan disalin. Jika tidak ditentukan, aktivitas salin secara otomatis mendeteksi nilai.
Terapkan saat opsi partisi adalah DynamicRange. Misalnya, lihat bagian Penyalinan paralel dari database SQL.
Tidak

Perhatikan poin-poin berikut:

  • Jika sqlReaderQuery ditetapkan untuk AmazonRdsForSqlServerSource, aktivitas penyalinan menjalankan kueri ini terhadap sumber Amazon RDS untuk SQL Server guna mendapatkan data. Anda juga dapat menentukan prosedur tersimpan dengan menentukan sqlReaderStoredProcedureName dan storedProcedureParameters jika prosedur yang disimpan mengambil parameter.
  • Saat menggunakan prosedur tersimpan di sumber untuk mengambil data, perhatikan apakah prosedur tersimpan dirancang sebagai mengembalikan skema yang berbeda ketika nilai parameter yang berbeda diteruskan, Anda mungkin mengalami kegagalan atau melihat hasil yang tidak terduga saat mengimpor skema dari antarmuka pengguna atau saat menyalin data ke database SQL dengan pembuatan tabel otomatis.

Contoh: Gunakan kueri SQL

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Contoh: Gunakan prosedur tersimpan

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Definisi prosedur yang disimpan

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Salin paralel dari database SQL

Konektor Amazon RDS untuk SQL Server dalam aktivitas penyalinan menyediakan partisi data bawaan untuk menyalin data secara paralel. Anda dapat menemukan opsi pemartisian data pada tab Sumber aktivitas salin.

Cuplikan layar opsi partisi

Saat Anda mengaktifkan penyalinan yang dipartisi, aktivitas penyalinan menjalankan kueri paralel terhadap sumber Amazon RDS untuk SQL Server Anda guna memuat data menurut partisi. Derajat paralel dikendalikan oleh pengaturan parallelCopies pada aktivitas salin. Misalnya, jika Anda menyetel parallelCopies ​​ke empat, layanan tersebut secara bersamaan membuat dan menjalankan empat kueri berdasarkan opsi dan pengaturan partisi yang Anda tentukan, dan setiap kueri mengambil sebagian data dari Amazon RDS untuk SQL Server Anda.

Anda disarankan untuk mengaktifkan salinan paralel dengan partisi data terutama saat Anda memuat data dalam jumlah besar dari Amazon RDS untuk SQL Server. Berikut ini adalah konfigurasi yang disarankan untuk skenario yang berbeda. Saat menyalin data ke penyimpanan data berbasis file, disarankan untuk menulis ke folder sebagai beberapa file (hanya tentukan nama folder), dalam hal ini performanya lebih baik daripada menulis ke satu file.

Skenario Pengaturan yang disarankan
Proses pemuatan penuh dari tabel besar, dengan partisi fisik. Opsi partisi: Partisi fisik tabel.

Selama eksekusi, layanan secara otomatis mendeteksi partisi fisik, dan menyalin data berdasarkan partisi.

Untuk memeriksa apakah tabel Anda memiliki partisi fisik atau tidak, Anda dapat merujuk ke kueri ini.
Pemuatan penuh dari tabel besar, tanpa partisi fisik, tetapi dengan kolom bilangan bulat atau datetime untuk pemartisian data. Opsi partisi: Pembagian rentang yang dinamis.
Kolom partisi (opsional): Menentukan kolom yang digunakan untuk mempartisi data. Jika belum ditentukan, kolom kunci primer digunakan.
Batas atas partisi dan batas bawah partisi (opsional): Menentukan apakah Anda ingin menentukan langkah partisi. Ini bukan untuk memfilter baris dalam tabel, semua baris dalam tabel akan dipartisi dan disalin. Jika tidak ditentukan, aktivitas penyalinan secara otomatis mendeteksi nilai dan mungkin memakan waktu lama tergantung pada nilai MIN dan MAX. Dianjurkan untuk memberikan batas atas dan batas bawah.

Misalnya, jika kolom partisi "ID" Anda memiliki rentang nilai dari 1 hingga 100, dan Anda menetapkan batas bawah sebagai 20 dan batas atas sebagai 80, dengan salinan paralel sebagai 4, layanan mengambil data dengan 4 partisi - ID dalam rentang <=20, [21, 50], [51, 80], dan >=81, masing-masing.
Memuat sejumlah besar data dengan menggunakan kueri kustom, tanpa partisi fisik, sedangkan dengan kolom bilangan bulat atau tanggal/tanggalwaktu untuk pemartisian data. Opsi partisi: Pembagian rentang yang dinamis.
Kueri: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Kolom partisi: Menentukan kolom yang digunakan untuk mempartisi data.
Batas atas partisi dan batas bawah partisi (opsional): Menentukan apakah Anda ingin menentukan langkah partisi. Ini bukan untuk memfilter baris dalam tabel, semua baris dalam hasil kueri akan dipartisi dan disalin. Jika tidak ditentukan, aktivitas salin secara otomatis mendeteksi nilai.

Misalnya, jika kolom partisi "ID" Anda memiliki rentang nilai dari 1 hingga 100, dan Anda menetapkan batas bawah sebagai 20 dan batas atas sebagai 80, dengan salinan paralel sebagai 4, layanan mengambil data dengan 4 partisi- ID dalam rentang <=20, [21, 50], [51, 80], dan >=81, secara berurutan.

Berikut adalah sampel kueri lainnya untuk skenario yang berbeda:
1. Kueri seluruh tabel:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Kueri dari tabel dengan pemilihan kolom dan menggunakan filter klausa where tambahan:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Kueri dengan subkueri:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Kueri dengan partisi dalam subkueri:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Praktik terbaik untuk memuat data dengan opsi partisi:

  1. Pilih kolom yang khas sebagai kolom partisi (seperti kunci primer atau kunci unik) untuk menghindari penyimpangan data.
  2. Jika tabel memiliki partisi bawaan, gunakan opsi partisi "Partisi fisik tabel" untuk mendapatkan performa yang lebih baik.
  3. Jika Anda menggunakan Azure Integration Runtime untuk menyalin data, Anda dapat mengatur "Unit Integrasi Data (DIU)" yang lebih besar (>4) untuk menggunakan lebih banyak sumber daya komputasi. Periksa skenario yang berlaku di sana.
  4. "Tingkat paralelisme penyalinan mengontrol jumlah partisi. Mengatur angka ini terlalu besar kadang dapat menurunkan kinerja. Dianjurkan mengatur angka ini sebagai (DIU atau jumlah node IR yang di-host sendiri) * (2 hingga 4)."

Contoh: pemuatan penuh dari tabel besar dengan partisi fisik

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Contoh: kueri dengan partisi rentang dinamis

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Sampel kueri untuk memeriksa partisi fisik

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id 
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id 
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id 
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Jika tabel memiliki partisi fisik, Anda akan melihat "HasPartition" sebagai "ya" seperti berikut ini.

Hasil kueri Sql

Pemetaan jenis data untuk Amazon RDS untuk SQL Server

Saat menyalin data dari Amazon RDS untuk SQL Server, pemetaan berikut digunakan dari jenis data Amazon RDS for SQL Server ke jenis data sementara yang digunakan oleh layanan secara internal. Lihat Pemetaan skema dan jenis data untuk mempelajari bagaimana aktivitas penyalinan memetakan skema sumber dan jenis data ke sink.

Amazon RDS untuk jenis data SQL Server Jenis data layanan sementara
bigint Int64
biner Byte[]
sedikit Boolean
char String, Char[]
date DateTime
Tanggalwaktu DateTime
datetime2 DateTime
Datetimeoffset DateTimeOffset
Decimal Decimal
Atribut FILESTREAM (varbinary(max)) Byte[]
Mengapung Double
citra Byte[]
int Int32
uang Decimal
nchar String, Char[]
ntext String, Char[]
Numerik Decimal
nvarchar String, Char[]
nyata / asli Single
rowversion Byte[]
smalldatetime DateTime
smallint Int16
smallmoney Decimal
sql_variant Objek
kirim pesan teks String, Char[]
time TimeSpan
stempel waktu Byte[]
tinyint Int16
uniqueidentifier Panduan
varbinary Byte[]
varchar String, Char[]
xml String

Catatan

Untuk tipe data yang dipetakan ke tipe Desimal sementara, Copy Activity mendukung presisi hingga 28 saat ini. Jika Anda memiliki data yang memerlukan presisi lebih besar dari 28, pertimbangkan untuk mengonversi ke string dalam kueri SQL.

Saat menyalin data dari Amazon RDS untuk SQL Server menggunakan Azure Data Factory, jenis data bit dipetakan ke jenis data sementara Boolean. Jika Anda memiliki data yang perlu disimpan sebagai tipe data bit, gunakan kueri dengan T-SQL CAST atau CONVERT.

Properti aktivitas pencarian Lookup

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Properti aktivitas GetMetadata

Untuk mempelajari rincian tentang properti ini, periksa Aktivitas GetMetadata

Menggunakan Always Encrypted

Saat Anda menyalin data dari/ke Amazon RDS untuk SQL Server dengan Always Encrypted, ikuti langkah-langkah di bawah ini:

  1. Simpan Kunci Master Kolom (CMK) di Azure Key Vault. Pelajari selengkapnya tentang cara mengonfigurasi Always Encrypted menggunakan Azure Key Vault

  2. Pastikan untuk memberikan akses ke brankas kunci tempat Column Master Key (CMK) disimpan. Lihat artikel ini untuk izin yang diperlukan.

  3. Buat layanan tertaut untuk terhubung ke database SQL Anda dan aktifkan fungsi 'Always Encrypted' menggunakan identitas terkelola atau perwakilan layanan.

Pemecahan masalah koneksi

  1. Konfigurasikan instans Amazon RDS untuk SQL Server Anda untuk menerima koneksi jarak jauh. Mulai Amazon RDS untuk SQL Server Management Studio, klik kanan server, dan pilih Properti. Pilih Koneksi dari daftar, dan pilih kotak centang Perbolehkan koneksi jarak jauh ke server.

    Fungsikan sambungan jarak jauh

    Untuk langkah-langkah yang detail, lihat Mengonfigurasi opsi konfigurasi server akses jarak jauh.

  2. Mulai Amazon RDS for SQL Server Configuration Manager. Luaskan Konfigurasi Jaringan Amazon RDS for SQL Server untuk instance yang Anda inginkan, dan pilih Protokol untuk MSSQLSERVER. Protokol muncul di panel kanan. Aktifkan TCP/IP dengan mengklik kanan TCP/IP dan memilih Aktifkan.

    Mengaktifkan TCP/IP

    Untuk informasi selengkapnya dan cara alternatif mengaktifkan protokol TCP/IP, lihat Mengaktifkan atau menonaktifkan protokol jaringan server.

  3. Di jendela yang sama, klik ganda TCP/IP untuk meluncurkan jendela Properti TCP/IP.

  4. Beralih ke tab Alamat IP. Gulir ke bawah untuk melihat bagian IPAll. Tuliskan Port TCP. Defaultnya adalah 1433.

  5. Buat aturan untuk Windows Firewall pada mesin untuk mengizinkan lalu lintas masuk melalui port ini.

  6. Verifikasi koneksi: Untuk terhubung ke Amazon RDS untuk SQL Server dengan menggunakan nama yang sepenuhnya memenuhi syarat, gunakan Amazon RDS untuk SQL Server Management Studio dari mesin yang berbeda. Contohnya "<machine>.<domain>.corp.<company>.com,1433".

Meningkatkan versi Amazon RDS untuk SQL Server

Untuk meningkatkan versi Amazon RDS for SQL Server, di halaman Edit layanan tertaut, pilih Direkomendasikan di bawah Versi dan konfigurasikan layanan tertaut dengan merujuk ke Properti layanan tertaut untuk versi yang direkomendasikan.

Tabel di bawah ini menunjukkan perbedaan antara Amazon RDS untuk SQL Server menggunakan versi yang direkomendasikan dan warisan.

Versi yang direkomendasikan Versi lama
Dukung TLS 1.3 melalui encrypt sebagai strict. TLS 1.3 tidak didukung.

Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.