Bagikan melalui


Cara mengonfigurasi Amazon RDS untuk SQL Server dalam aktivitas salin

Artikel ini menguraikan cara menggunakan aktivitas salin dalam alur data untuk menyalin data dari Amazon RDS untuk SQL Server.

Konfigurasi yang didukung

Untuk konfigurasi setiap tab di bawah aktivitas salin, buka bagian berikut.

Umum

Lihat panduan Pengaturan umum untuk mengonfigurasi tab Pengaturan umum.

Sumber

Properti berikut ini didukung untuk Amazon RDS untuk SQL Server di bawah tab Sumber aktivitas salin.

Cuplikan layar memperlihatkan tab sumber dan daftar properti.

Properti berikut diperlukan:

  • Jenis penyimpanan data: Pilih Eksternal.

  • Koneksi ion: Pilih koneksi Amazon RDS for SQL Server dari daftar koneksi. Jika koneksi tidak ada, buat koneksi Amazon RDS untuk SQL Server baru dengan memilih Baru.

  • jenis Koneksi ion: Pilih Amazon RDS untuk SQL Server.

  • Gunakan kueri: Tentukan cara membaca data. Anda bisa memilih Tabel, Kueri, atau Prosedur tersimpan. Daftar berikut menjelaskan konfigurasi setiap pengaturan:

    • Tabel: Membaca data dari tabel yang ditentukan. Pilih tabel sumber Anda dari daftar drop-down atau pilih Edit untuk memasukkannya secara manual.

    • Kueri: Tentukan kueri SQL kustom untuk membaca data. Contohnya select * from MyTable. Atau pilih ikon pensil untuk diedit di editor kode.

      Cuplikan layar memperlihatkan pengaturan Kueri.

    • Prosedur tersimpan: Gunakan prosedur tersimpan yang membaca data dari tabel sumber. Pernyataan SQL terakhir harus merupakan pernyataan SELECT dalam prosedur tersimpan.

      • Nama prosedur tersimpan: Pilih prosedur tersimpan atau tentukan nama prosedur tersimpan secara manual saat memilih Edit untuk membaca data dari tabel sumber.

      • Parameter prosedur tersimpan: Tentukan nilai untuk parameter prosedur tersimpan. Nilai yang diizinkan adalah pasangan nama atau nilai. Nama dan kapitalisasi parameter harus sesuai dengan nama dan kapitalisasi parameter prosedur tersimpan. Anda dapat memilih Impor parameter untuk mendapatkan parameter prosedur tersimpan.

        Cuplikan layar memperlihatkan pengaturan prosedur tersimpan.

Di bawah Tingkat Lanjut, Anda bisa menentukan bidang berikut ini:

  • Batas waktu kueri (menit): Tentukan batas waktu untuk eksekusi perintah kueri, defaultnya adalah 120 menit. Jika parameter diatur untuk properti ini, nilai yang diizinkan adalah rentang waktu, seperti "02:00:00" (120 menit).

  • Tingkat isolasi: Menentukan perilaku penguncian transaksi untuk sumber SQL. Nilai yang diizinkan adalah: Baca diterapkan, Baca tidak dikomit, Baca berulang, Dapat diserialisasikan, Rekam Jepret. Jika tidak ditentukan, tingkat isolasi default database digunakan. Lihat IsolationLevel Enum untuk detail selengkapnya.

    Cuplikan layar memperlihatkan pengaturan tingkat Isolasi.

  • Opsi partisi: Tentukan opsi partisi data yang digunakan untuk memuat data dari Amazon RDS untuk SQL Server. Nilai yang diizinkan adalah: Tidak ada (default), Partisi fisik tabel, dan Rentang dinamis. Ketika opsi partisi diaktifkan (yaitu, bukan Tidak Ada), tingkat paralelisme untuk memuat data secara bersamaan dari Amazon RDS untuk SQL Server dikendalikan oleh Tingkat paralelisme salin di tab pengaturan aktivitas salin.

    • Tidak Ada: Pilih pengaturan ini untuk tidak menggunakan partisi.

    • Partisi fisik tabel: Saat menggunakan partisi fisik, kolom dan mekanisme partisi secara otomatis ditentukan berdasarkan definisi tabel fisik Anda.

    • Rentang dinamis: Saat menggunakan kueri dengan paralel diaktifkan, parameter partisi rentang(?DfDynamicRangePartitionCondition) diperlukan. Kueri sampel: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Nama kolom partisi: Tentukan nama kolom sumber dalam tipe bilangan bulat atau tanggal/tanggalwaktu (int, , datesmalldatetimebigintdatetimesmallint, datetime2, atau datetimeoffset) yang digunakan oleh pemartisian rentang untuk salinan paralel. Jika tidak ditentukan, indeks atau kunci primer tabel terdeteksi secara otomatis dan digunakan sebagai kolom partisi.

        Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?DfDynamicRangePartitionCondition di klausul WHERE. Misalnya, lihat bagian Penyalinan paralel dari database SQL.

      • Batas atas partisi: Tentukan 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. Misalnya, lihat bagian Penyalinan paralel dari database SQL.

      • Batas bawah partisi: Tentukan nilai minimum 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. Misalnya, lihat bagian Penyalinan paralel dari database SQL.

  • Kolom tambahan: Tambahkan kolom data tambahan untuk menyimpan jalur relatif file sumber atau nilai statis. Ekspresi didukung untuk yang terakhir.

Perhatikan poin berikut:

  • Jika Kueri ditentukan untuk sumber, aktivitas salin menjalankan kueri ini terhadap sumber Amazon RDS for SQL Server untuk mendapatkan data. Anda juga dapat menentukan prosedur tersimpan dengan menentukan Nama prosedur tersimpan dan Parameter prosedur tersimpan jika prosedur tersimpan 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.

Pemetaan

Untuk Konfigurasi tab Pemetaan , buka Mengonfigurasi pemetaan Anda di bawah tab pemetaan.

Pengaturan

Untuk konfigurasi tab Pengaturan, buka Mengonfigurasi pengaturan Anda yang lain di bawah tab pengaturan.

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.

Saat Anda mengaktifkan penyalinan yang dipartisi, aktivitas penyalinan menjalankan kueri paralel terhadap sumber Amazon RDS untuk SQL Server Anda guna memuat data menurut partisi. Tingkat paralel dikontrol oleh Tingkat paralelisme salin di tab pengaturan aktivitas salin. Misalnya, jika Anda mengatur Tingkat paralelisme salin ke empat, layanan secara bersamaan menghasilkan dan menjalankan empat kueri berdasarkan opsi dan pengaturan partisi yang Ditentukan, 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
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, sedangkan dengan bilangan bulat atau kolom tanggalwaktu untuk pemartisian data. Opsi partisi: Partisi rentang 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, salin aktivitas otomatis mendeteksi nilai dan dapat 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: Partisi rentang 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:
• Kueri seluruh tabel:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Kueri dari tabel dengan pemilihan kolom dan filter where-clause tambahan:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Kueri dengan subkueri:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• 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.

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

Ringkasan tabel

Lihat tabel berikut untuk ringkasan dan informasi selengkapnya untuk aktivitas penyalinan Amazon RDS for SQL Server.

Informasi sumber

Nama Deskripsi Nilai Wajib Properti skrip JSON
Jenis penyimpanan data Jenis penyimpanan data Anda. Eksternal Ya /
Koneksi Koneksi Anda ke penyimpanan data sumber. < koneksi Anda > Ya koneksi
Tipe sambungan Jenis koneksi Anda. Pilih Amazon RDS untuk SQL Server. Amazon RDS untuk SQL Server Ya /
Menggunakan kueri Kueri SQL kustom untuk membaca data. •Meja
•Query
• Prosedur tersimpan
Ya /
Table Tabel data sumber Anda. < nama tabel tujuan Anda> No Skema
tabel
Kueri Kueri SQL kustom untuk membaca data. < kueri Anda > No sqlReaderQuery
Nama prosedur tersimpan Properti ini adalah nama prosedur tersimpan yang membaca data dari tabel sumber. Pernyataan SQL terakhir harus merupakan pernyataan SELECT dalam prosedur tersimpan. < nama prosedur tersimpan > No sqlReaderStoredProcedureName
Parameter prosedur tersimpan Parameter ini untuk prosedur tersimpan. Nilai yang diizinkan adalah pasangan nama atau nilai. Nama dan kapitalisasi parameter harus sesuai dengan nama dan kapitalisasi parameter prosedur tersimpan. < pasangan nama atau nilai > No storedProcedureParameters
Batas waktu kueri Batas waktu untuk eksekusi perintah kueri. timespan
(defaultnya adalah 120 menit)
No queryTimeout
Tingkat isolasi Menentukan perilaku penguncian transaksi untuk sumber SQL. • Baca berkomitmen
• Baca tidak dikomit
• Bacaan yang dapat diulang
• Dapat diserialisasikan
•Snapshot
No isolationLevel:
• ReadCommitted
• ReadUncommitted
• RepeatableRead
• Dapat diserialisasikan
•Snapshot
Opsi partisi Opsi pemartisian data yang digunakan untuk memuat data dari Amazon RDS untuk SQL Server. • Tidak ada (default)
• Partisi fisik tabel
• Rentang dinamis
No partitionOption:
• Tidak ada (default)
• PhysicalPartitionsOfTable
• DynamicRange
Nama kolom partisi Nama kolom sumber dalam tipe bilangan bulat atau tanggal/tanggalwaktu (int, , bigintdatesmalldatetimesmallint, datetime, datetime2, atau datetimeoffset) yang digunakan oleh pemartisian rentang untuk salinan paralel. Jika tidak ditentukan, indeks atau kunci primer tabel terdeteksi secara otomatis dan digunakan sebagai kolom partisi. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?DfDynamicRangePartitionCondition di klausul WHERE. < nama kolom partisi Anda > No partitionColumnName
Batas atas partisi 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. < batas atas partisi Anda > No partitionUpperBound
Batas bawah partisi Nilai minimum 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. < partisi Anda terikat lebih rendah > No partitionLowerBound
Kolom tambahan Tambahkan kolom data tambahan untuk menyimpan jalur relatif file sumber atau nilai statis. Ekspresi didukung untuk yang terakhir. •Nama
•Nilai
No additionalColumns:
•Nama
•Nilai