Salin massal dari database dengan tabel kontrol
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!
Untuk menyalin data dari gudang data di Oracle Server, Netezza, Teradata, atau SQL Server ke Azure Synapse Analytics, Anda harus memuat sejumlah besar data dari beberapa tabel. Biasanya, data harus dipartisi di setiap tabel sehingga Anda dapat memuat baris dengan beberapa alur secara paralel dari satu tabel. Artikel ini menjelaskan templat untuk digunakan dalam skenario ini.
Catatan
Jika Anda ingin menyalin data dari sejumlah kecil tabel dengan volume data yang relatif kecil ke Azure Synapse Analytics, menggunakan alat Azure Data Factory Copy Data lebih efisien. Templat yang dijelaskan dalam artikel ini mencakup lebih dari apa yang Anda butuhkan untuk skenario tersebut.
Tentang templat solusi ini
Templat ini mengambil daftar partisi database sumber untuk disalin dari tabel kontrol eksternal. Kemudian templat melakukan iterasi di setiap partisi dalam database sumber dan menyalin data ke tujuan.
Templat tersebut berisi tiga aktivitas:
- Lookup mengambil daftar partisi database pasti dari tabel kontrol eksternal.
- ForEach mendapatkan daftar partisi dari aktivitas Lookup dan melakukan iterasi pada setiap partisi ke aktivitas Copy.
- Copy menyalin setiap partisi dari penyimpanan database sumber ke penyimpanan tujuan.
Templat menentukan parameter berikut:
- Control_Table_Name adalah tabel kontrol eksternal Anda, yang menyimpan daftar partisi untuk database sumber.
- Control_Table_Schema_PartitionID adalah nama kolom di tabel kontrol eksternal Anda yang menyimpan setiap ID partisi. Pastikan bahwa ID partisi unik untuk tiap partisi dalam database sumber.
- Control_Table_Schema_SourceTableName adalah tabel kontrol eksternal Anda yang menyimpan setiap nama tabel dari database sumber.
- Control_Table_Schema_FilterQuery adalah nama kolom dalam tabel kontrol eksternal Anda yang menyimpan kueri filter untuk mendapatkan data dari setiap partisi dalam database sumber. Misalnya, jika Anda mempartisi data berdasarkan tahun, kueri yang disimpan di setiap baris mungkin mirip dengan select * from datasource where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''.
- Data_Destination_Folder_Path adalah jalur tempat data disalin di penyimpanan tujuan Anda (berlaku saat tujuan yang Anda pilih adalah "File System" atau "Azure Data Lake Storage Gen1").
- Data_Destination_Container adalah jalur folder akar tempat data disalin di penyimpanan tujuan Anda.
- Data_Destination_Directory adalah jalur direktori di bawah akar tempat data disalin di penyimpanan tujuan Anda.
Tiga parameter terakhir, yang menentukan jalur di penyimpanan tujuan Anda hanya terlihat jika tujuan yang Anda pilih adalah penyimpanan berbasis file. Jika Anda memilih "Azure Synapse Analytics" sebagai penyimpanan tujuan, parameter ini tidak diperlukan. Namun, nama tabel dan skema di Azure Synapse Analytics harus sama dengan yang ada di database sumber.
Cara menggunakan templat solusi ini
Buat tabel kontrol di SQL Server atau Azure SQL Database untuk menyimpan daftar partisi database sumber untuk salinan massal. Dalam contoh berikut, ada lima partisi dalam database sumber. Tiga partisi adalah untuk datasource_table, dan dua untuk project_table. Kolom LastModifytime digunakan untuk mempartisi data dalam tabel datasource_table dari database sumber. Kueri yang digunakan untuk membaca partisi pertama adalah 'select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''. Anda bisa menggunakan kueri serupa untuk membaca data dari partisi lain.
Create table ControlTableForTemplate ( PartitionID int, SourceTableName varchar(255), FilterQuery varchar(255) ); INSERT INTO ControlTableForTemplate (PartitionID, SourceTableName, FilterQuery) VALUES (1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''), (2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''), (3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''), (4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'), (5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');
Masuk ke templat Salin Massal dari Database. Buat koneksi Baru ke tabel kontrol eksternal yang Anda buat di langkah 1.
Buat koneksi Baru ke database sumber yang ingin Anda salin datanya.
Buat koneksi Baru ke penyimpanan data tujuan tempat Anda ingin menyalin data.
Pilih Gunakan templat ini.
Anda melihat alur yang tersedia, seperti yang diperlihatkan dalam contoh berikut:
Pilih Debug, masukkan Parameter, lalu pilih Selesai.
Anda melihat hasil yang mirip dengan contoh berikut:
(Opsional) Jika Anda memilih "Azure Synapse Analytics" sebagai tujuan data, Anda harus memasukkan koneksi ke penyimpanan Azure Blob untuk penahapan, seperti yang diwajibkan oleh Azure Synapse Analytics Polybase. Templat akan secara otomatis menghasilkan jalur kontainer untuk penyimpanan Blob Anda. Periksa apakah kontainer telah dibuat setelah alur berjalan.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk