Metode migrasi untuk kumpulan SQL khusus Azure Synapse Analytics ke Fabric Data Warehouse

Berlaku untuk: ✅ Gudang di Microsoft Fabric

Artikel ini menjelaskan metode migrasi data warehousing di Azure Synapse Analytics pool SQL khusus ke Microsoft Fabric Data Warehouse.

Petunjuk / Saran

Untuk informasi lebih lanjut tentang strategi dan rencana migrasi Anda, lihat Perencanaan Migrasi: SQL pool khusus Azure Synapse Analytics ke Gudang Data Fabric.

Pengalaman otomatisasi untuk migrasi dari kumpulan SQL khusus Azure Synapse Analytics tersedia menggunakan Fabric Migration Assistant untuk Gudang Data. Sisa artikel ini berisi lebih banyak langkah migrasi manual.

Tabel ini meringkas informasi untuk skema data (DDL), kode database (DML), dan metode migrasi data. Kami akan membahas lebih lanjut setiap skenario nanti dalam artikel ini, yang ditautkan pada kolom Opsi.

Nomor Opsi Opsi Apa fungsinya Keterampilan/Preferensi Skenario
1 Pabrik Data Konversi skema (DDL)
Ekstrak data
Penyerapan data
ADF/Pipeline Penyederhanaan skema terpadu (DDL) dan migrasi data. Direkomendasikan untuk tabel dimensi.
2 Pabrik Data dengan partisi Konversi skema (DDL)
Ekstrak data
Penyerapan data
ADF/Pipeline Menggunakan opsi partisi, direkomendasikan untuk tabel fakta, dengan menyediakan throughput sepuluh kali lebih banyak dibanding opsi 1 untuk meningkatkan paralelisme baca/tulis.
3 Pabrik Data dengan kode yang dipercepat Konversi skema (DDL) ADF/Pipeline Konversi dan migrasikan skema (DDL) terlebih dahulu, lalu gunakan CETAS untuk mengekstrak dan COPY/Data Factory untuk menyerap data untuk performa penyerapan keseluruhan yang optimal.
4 Prosedur tersimpan yang mempercepat kode Konversi skema (DDL)
Ekstrak data
Penilaian kode
T-SQL Pengguna SQL menggunakan IDE dengan kontrol yang lebih terperinci atas tugas mana yang ingin mereka kerjakan. Gunakan COPY/Data Factory untuk menyerap data.
5 Ekstensi Proyek SQL Database untuk Visual Studio Code Konversi skema (DDL)
Ekstrak data
Penilaian kode
Proyek SQL Proyek Basis Data SQL untuk penyebaran dengan integrasi opsi 4. Gunakan COPY atau Data Factory untuk menyerap data.
6 BUAT TABEL EKSTERNAL SEBAGAI HASIL DARI PILIHAN (CETAS) Ekstrak data T-SQL Ekstrak data hemat biaya dan berkinerja tinggi ke Azure Data Lake Storage (ADLS) Gen2. Gunakan COPY/Data Factory untuk menyerap data.
7 Migrasi menggunakan dbt Konversi skema (DDL)
kode basis data (DML) konversi
dbt Pengguna dbt yang ada dapat menggunakan adaptor dbt Fabric untuk mengonversi DDL dan DML mereka. Anda kemudian harus memigrasikan data menggunakan opsi lain dalam tabel ini.

Pilih beban kerja untuk migrasi awal

Saat memutuskan dari mana memulai pool SQL khusus Synapse untuk proyek migrasi Fabric Data Warehouse, pilih area beban kerja di mana Anda dapat:

  • Buktikan kelayakan migrasi ke Fabric Data Warehouse dengan cepat memberikan manfaat dari lingkungan baru. Mulailah dari yang kecil dan sederhana, lalu bersiaplah untuk beberapa migrasi kecil.
  • Izinkan waktu staf teknis internal Anda untuk mendapatkan pengalaman yang relevan dengan proses dan alat yang mereka gunakan saat bermigrasi ke area lain.
  • Buat templat khusus untuk migrasi lebih lanjut yang sesuai dengan lingkungan Synapse sumber, serta alat dan proses yang tersedia untuk membantu memfasilitasi migrasi.

Petunjuk / Saran

Buat inventaris objek yang perlu dimigrasikan, dan dokumentasikan proses migrasi dari awal hingga akhir, sehingga dapat diulang untuk kumpulan atau beban kerja SQL khusus lainnya.

Volume data yang dimigrasikan dalam migrasi awal harus cukup besar untuk menunjukkan kemampuan dan manfaat lingkungan Fabric Data Warehouse, tetapi tidak terlalu besar untuk menunjukkan nilai dengan cepat. Ukuran dalam rentang 1-10 terabyte merupakan ukuran umum.

Migrasi dengan Fabric Data Factory

Di bagian ini, kita membahas opsi menggunakan Data Factory untuk persona kode rendah/tanpa kode yang terbiasa dengan Azure Data Factory dan Alur Synapse. Opsi antarmuka 'tarik dan jatuhkan' ini menyediakan langkah sederhana untuk mengonversi DDL dan memigrasikan data.

Fabric Data Factory dapat melakukan tugas-tugas berikut:

  • Konversi skema (DDL) ke sintaks Fabric Data Warehouse.
  • Buat skema (DDL) di Fabric Data Warehouse.
  • Migrasikan data ke Fabric Data Warehouse.

Opsi 1. Skema/Migrasi Data - Panduan Salin dan Aktivitas Salin ForEach

Metode ini menggunakan Data Factory Copy assistant untuk terhubung ke pool SQL khusus sumber, mengonversi sintaks DDL pool SQL dedicated ke Fabric, dan menyalin data ke Fabric Data Warehouse. Anda dapat memilih satu atau beberapa tabel target (untuk himpunan data TPC-DS ada 22 tabel). Ini menghasilkan ForEach untuk melakukan iterasi pada daftar tabel yang dipilih di UI dan memulai 22 utas Aktivitas Salin secara paralel.

  • 22 kueri SELECT (satu untuk setiap tabel yang dipilih) dihasilkan dan dijalankan di kumpulan SQL khusus.
  • Pastikan Anda memiliki DWU dan kelas sumber daya yang sesuai untuk memungkinkan kueri yang dihasilkan dijalankan. Untuk kasus ini, Anda memerlukan minimal DWU1000 dengan staticrc10 untuk memungkinkan maksimal 32 kueri menangani 22 kueri yang dikirimkan.
  • Data Factory menyalin data secara langsung dari pool SQL khusus ke Fabric Data Warehouse memerlukan staging. Proses konsumsi terdiri dari dua tahap.
    • Fase pertama terdiri dari mengekstrak data dari kumpulan SQL khusus ke ADLS dan disebut sebagai penahapan.
    • Fase kedua menyerap data dari staging ke Fabric Data Warehouse. Sebagian besar waktu yang dibutuhkan untuk penyerapan data terjadi dalam fase penahapan. Singkatnya, proses tahap memiliki dampak yang besar pada performa penyerapan.

Menggunakan Copy Wizard untuk menghasilkan ForEach menyediakan UI sederhana untuk mengonversi DDL dan mengingest tabel yang dipilih dari pool SQL khusus ke Fabric Data Warehouse dalam satu langkah.

Namun, itu tidak optimal terhadap throughput keseluruhan. Persyaratan untuk menggunakan penahapan, kebutuhan untuk memparalelkan baca dan tulis untuk langkah "Sumber ke Tahap" adalah faktor utama untuk keterlambatan kinerja. Disarankan untuk menggunakan opsi ini hanya untuk tabel dimensi.

Opsi 2. Migrasi DDL/Data - Pipeline menggunakan opsi partisi

Untuk meningkatkan throughput untuk memuat tabel fakta yang lebih besar menggunakan alur proses Fabric, disarankan untuk menggunakan Aktivitas Salin untuk setiap tabel fakta dengan opsi partisi. Ini memberikan performa terbaik dengan aktivitas salin.

Anda memiliki opsi untuk menggunakan partisi fisik tabel sumber, jika tersedia. Jika tabel tidak memiliki partisi fisik, Anda harus menentukan kolom partisi dan menyediakan nilai min/maks untuk menggunakan partisi dinamis. Dalam cuplikan layar berikut, opsi alur Sumber menentukan rentang partisi yang dinamis berdasarkan kolom ws_sold_date_sk.

Cuplikan layar alur, menggambarkan opsi untuk menentukan kunci utama, atau tanggal untuk kolom partisi dinamis.

Meskipun menggunakan partisi dapat meningkatkan throughput selama fase penahapan, perlu pertimbangan untuk melakukan penyesuaian yang tepat.

  • Tergantung pada rentang partisi Anda, mungkin berpotensi menggunakan semua slot konkurensi karena dapat menghasilkan lebih dari 128 kueri pada kumpulan SQL khusus.
  • Anda diharuskan mengeskalasi hingga minimal DWU6000 untuk memungkinkan semua kueri dijalankan.
  • Sebagai contoh, untuk tabel TPC-DS web_sales , 163 kueri dikirimkan ke kumpulan SQL khusus. Pada DWU6000, 128 kueri dieksekusi sementara 35 kueri diantrikan.
  • Partisi dinamis secara otomatis menetapkan partisi rentang. Dalam hal ini, rentang 11 hari untuk setiap kueri SELECT yang dikirimkan ke kumpulan SQL khusus. Misalnya:
    WHERE [ws_sold_date_sk] > '2451069' AND [ws_sold_date_sk] <= '2451080')
    ...
    WHERE [ws_sold_date_sk] > '2451333' AND [ws_sold_date_sk] <= '2451344')
    

Untuk tabel fakta, sebaiknya gunakan Data Factory dengan opsi partisi untuk meningkatkan throughput.

Namun, peningkatan pembacaan paralel memerlukan pool SQL khusus untuk diskalakan ke DWU yang lebih tinggi agar kueri ekstrak dapat dieksekusi. Dengan memanfaatkan partisi, laju meningkat sepuluh kali lipat dibandingkan opsi tanpa partisi. Anda dapat meningkatkan DWU untuk mendapatkan throughput tambahan melalui sumber daya komputasi, tetapi pool SQL khusus memiliki maksimal 128 kueri aktif yang diizinkan.

Untuk informasi selengkapnya tentang pemetaan Synapse DWU ke Fabric, lihat Blog: Memetakan kumpulan SQL khusus Azure Synapse ke komputasi Fabric Data Warehouse.

Opsi 3. Migrasi DDL - Wizard Penyalinan UntukSetiap Aktivitas Penyalinan

Dua opsi sebelumnya adalah opsi migrasi data yang bagus untuk database yang lebih kecil. Tetapi jika Anda memerlukan throughput yang lebih tinggi, kami merekomendasikan opsi alternatif:

  1. Ekstrak data dari kumpulan SQL khusus ke ADLS untuk mengurangi beban kinerja pada tahap pemrosesan.
  2. Gunakan Data Factory atau perintah COPY untuk menginput data ke gudang Anda.

Anda dapat terus menggunakan Data Factory untuk mengonversi skema (DDL) Anda. Menggunakan Wizard Salin, Anda bisa memilih tabel tertentu atau Semua tabel. Secara desain, ini memigrasikan skema dan data dalam satu langkah, mengekstrak skema tanpa baris apa pun, menggunakan kondisi palsu, TOP 0 dalam pernyataan kueri.

Sampel kode berikut mencakup migrasi skema (DDL) dengan Data Factory.

Contoh kode: Migrasi Skema (DDL) dengan Data Factory

Anda dapat menggunakan Fabric Pipelines untuk dengan mudah memigrasikan DDL (skema) objek tabel dari sumber mana pun Azure SQL Database atau pool SQL khusus. Pipeline ini memigrasikan skema (DDL) untuk tabel pool SQL khusus sumber ke Fabric Data Warehouse.

Cuplikan layar dari Fabric Data Factory memperlihatkan objek Pencarian yang mengarah ke Untuk Setiap Objek. Di dalam Untuk Setiap Objek, ada Aktivitas untuk Memigrasikan DDL.

Desain saluran: parameter

Alur ini menerima parameter SchemaName, yang memungkinkan Anda menentukan skema mana yang akan dimigrasikan. dbo Skema adalah default.

Di bidang Nilai default, masukkan daftar skema tabel yang dibatasi koma yang menunjukkan skema mana yang akan dimigrasikan: 'dbo','tpch' untuk menyediakan dua skema, dbo dan tpch.

Cuplikan layar dari Data Factory memperlihatkan tab Parameter dari Alur. Di bidang Nama, 'SchemaName'. Di bidang Nilai default, 'dbo','tpch', menunjukkan kedua skema ini harus dimigrasikan.

Desain jalur pemrosesan: Aktivitas pencarian data

Buat Aktivitas Pencarian dan atur Koneksi untuk menunjuk ke database sumber Anda.

Di tab Pengaturan:

  • Atur Jenis penyimpanan data ke Eksternal.

  • Koneksi adalah kumpulan SQL khusus Azure Synapse Anda. Jenis koneksi adalah Azure Synapse Analytics.

  • Penggunaan kueri diatur ke Kueri.

  • Bidang Query perlu dibangun menggunakan ekspresi dinamis, sehingga parameter SchemaName dapat digunakan dalam query yang mengembalikan daftar tabel sumber target. Pilih Kueri lalu pilih Tambahkan konten dinamis.

    Ekspresi dalam Aktivitas Pencarian ini menghasilkan pernyataan SQL untuk mengkueri tampilan sistem untuk mengambil daftar skema dan tabel. Parameter ini merujuk SchemaName untuk memungkinkan penyaringan pada skema SQL. Keluaran dari ini adalah array berisi skema SQL dan tabel yang akan digunakan sebagai input oleh Aktivitas ForEach.

    Gunakan kode berikut untuk mengembalikan daftar semua tabel pengguna dengan nama skema mereka.

    @concat('
    SELECT s.name AS SchemaName,
    t.name  AS TableName
    FROM sys.tables AS t
    INNER JOIN sys.schemas AS s
    ON t.type = ''U''
    AND s.schema_id = t.schema_id
    AND s.name in (',coalesce(pipeline().parameters.SchemaName, 'dbo'),')
    ')
    

Cuplikan layar dari Data Factory memperlihatkan tab Pengaturan dari Pipeline. Tombol 'Kueri' telah dipilih, dan kode ditempelkan ke dalam bidang 'Kueri'.

Desain alur: ForEach Loop

Untuk Loop ForEach, konfigurasikan opsi berikut di tab Pengaturan :

  • Nonaktifkan Berurutan untuk memungkinkan beberapa perulangan berjalan secara bersamaan.
  • Atur Batch count ke 50, membatasi jumlah maksimum iterasi bersamaan.
  • Bidang Item perlu menggunakan konten dinamis untuk mereferensikan output Aktivitas Pencarian. Gunakan cuplikan kode berikut: @activity('Get List of Source Objects').output.value

Cuplikan layar yang menunjukkan tab pengaturan Aktivitas Perulangan ForEach.

Desain pipa: Aktivitas Salin di dalam Perulangan ForEach

Di dalam Aktivitas ForEach, tambahkan Aktivitas Salin. Metode ini menggunakan Dynamic Expression Language dalam pipeline untuk membangun SELECT TOP 0 * FROM <TABLE> migrasi hanya skema tanpa data ke dalam gudang.

Di tab Sumber :

  • Atur Jenis penyimpanan data ke Eksternal.
  • Koneksi adalah kumpulan SQL khusus Azure Synapse Anda. Jenis koneksi adalah Azure Synapse Analytics.
  • Atur Gunakan Kueri ke Kueri.
  • Di bidang Kueri, tempelkan kueri konten dinamis dan gunakan ekspresi ini yang akan mengembalikan baris nol, hanya skema tabel:@concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName)

Cuplikan layar dari Data Factory yang menunjukkan tab Sumber pada Aktivitas Salin di dalam Loop ForEach.

Di tab Tujuan :

  • Atur Jenis penyimpanan-data menjadi Ruang Kerja.
  • Tipe penyimpanan data Workspace adalah Data Warehouse dan Data Warehouse diatur ke gudang.
  • Skema Tabel tujuan dan nama tabel ditentukan menggunakan konten dinamis.
    • Skema merujuk pada bidang iterasi saat ini, SchemaName dengan cuplikan: @item().SchemaName
    • Tabel mengacu pada TableName dengan cuplikan: @item().TableName

Cuplikan layar dari Data Factory menunjukkan tab Tujuan dari Aktivitas Salin di dalam setiap Loop ForEach.

Desain alur: Penampung

Untuk Sink, arahkan ke Gudang Anda dan referensikan Skema Sumber dan nama Tabel.

Setelah menjalankan alur ini, Anda akan melihat Gudang Data anda diisi dengan setiap tabel di sumber Anda, dengan skema yang tepat.

Migrasi menggunakan prosedur tersimpan di kumpulan SQL khusus Synapse

Opsi ini menggunakan prosedur tersimpan untuk melakukan Fabric Migration.

Anda bisa mendapatkan sampel kode di microsoft/fabric-migration pada GitHub.com. Kode ini dibagikan sebagai sumber terbuka, jadi jangan ragu untuk berkontribusi berkolaborasi dan membantu komunitas.

Apa yang dapat dilakukan oleh Prosedur Tersimpan untuk Migrasi:

  • Konversi skema (DDL) ke sintaks Fabric Data Warehouse.
  • Buat skema (DDL) di Fabric Data Warehouse.
  • Ekstrak data dari kumpulan SQL khusus Synapse ke ADLS.
  • Menandai sintaks Fabric yang tidak didukung untuk kode T-SQL (prosedur tersimpan, fungsi, tampilan).

Ini adalah pilihan yang bagus bagi mereka yang:

  • Terbiasa dengan T-SQL.
  • Ingin menggunakan lingkungan pengembangan terintegrasi seperti SQL Server Management Studio (SSMS).
  • Ingin kontrol yang lebih terperinci atas tugas mana yang ingin mereka kerjakan.

Anda dapat menjalankan prosedur tersimpan tertentu untuk konversi skema (DDL), ekstrak data, atau penilaian kode T-SQL.

Untuk migrasi data, Anda perlu menggunakan salah satu COPY INTO atau Fabric Data Factory untuk menginput data ke dalam gudang Anda.

Bermigrasi menggunakan proyek database SQL

Microsoft Fabric Data Warehouse didukung dalam ekstensi Proyek SQL Database yang tersedia di dalam Visual Studio Code.

Ekstensi ini tersedia di dalam Visual Studio Code. Fitur ini memungkinkan kemampuan untuk kontrol sumber, pengujian database, dan validasi skema.

Untuk informasi lebih lanjut tentang kontrol sumber, lihat Ikhtisar Pengembangan dan penerapan.

Ini adalah opsi yang bagus bagi mereka yang lebih suka menggunakan Proyek SQL Database untuk penyebarannya. Opsi ini pada dasarnya mengintegrasikan Prosedur Tersimpan Migrasi Fabric ke dalam Proyek SQL Database untuk memberikan pengalaman migrasi yang mulus.

Proyek SQL Database dapat:

  • Konversi skema (DDL) ke sintaks Fabric Data Warehouse.
  • Buat skema (DDL) di Fabric Data Warehouse.
  • Ekstrak data dari kumpulan SQL khusus Synapse ke ADLS.
  • Menandai sintaks yang tidak didukung untuk kode T-SQL (prosedur tersimpan, fungsi, tampilan).

Untuk migrasi data, Anda kemudian akan menggunakan salah satu COPY INTO atau Data Factory untuk menginput data ke gudang Anda.

Tim Microsoft Fabric CAT telah menyediakan serangkaian skrip PowerShell untuk menangani ekstraksi, pembuatan, dan penyebaran skema (DDL) dan kode database (DML) melalui Proyek Database SQL. Untuk panduan penggunaan proyek SQL Database dengan skrip PowerShell kami yang bermanfaat, lihat microsoft/fabric-migration di GitHub.com.

Untuk informasi selengkapnya tentang Proyek SQL Database, lihat Mulai menggunakan ekstensi Proyek SQL Database dan Membangun proyek database dari baris perintah.

Migrasi data dengan CETAS

Perintah T-SQL CREATE EXTERNAL TABLE AS SELECT (CETAS) menyediakan metode yang paling hemat biaya dan optimal untuk mengekstrak data dari kumpulan SQL khusus Synapse ke Azure Data Lake Storage (ADLS) Gen2.

Apa yang dapat dilakukan CETAS:

  • Ekstrak data ke ADLS.
    • Opsi ini mengharuskan pengguna membuat skema (DDL) di gudang Anda sebelum menginput data. Pertimbangkan opsi dalam artikel ini untuk memigrasikan skema (DDL).

Keuntungan dari opsi ini adalah:

  • Hanya satu kueri per tabel yang dikirimkan terhadap kumpulan SQL khusus Synapse sumber. Ini tidak akan menggunakan semua slot konkurensi, sehingga tidak akan memblokir ETL/kueri produksi pelanggan secara bersamaan.
  • Penskalaan ke DWU6000 tidak diperlukan, karena hanya satu slot bersamaan yang digunakan untuk setiap tabel. Oleh karena itu, pelanggan dapat menggunakan DWU dengan nilai yang lebih rendah.
  • Ekstrak dijalankan secara paralel di semua simpul komputasi, dan ini adalah kunci untuk peningkatan performa.

Gunakan CETAS untuk mengekstrak data ke ADLS sebagai berkas Parquet. Berkas Parquet memberikan keuntungan dari penyimpanan data yang efisien dengan kompresi kolom yang akan membutuhkan lebih sedikit bandwidth untuk berpindah melalui jaringan. Selain itu, karena Fabric menyimpan data sebagai format parquet Delta, pengambilan data akan menjadi 2,5 kali lebih cepat dibandingkan dengan format file teks, karena tidak ada overhead konversi ke format Delta selama pengambilan.

Untuk meningkatkan throughput CETAS:

  • Tingkatkan operasi CETAS secara paralel, sehingga dapat meningkatkan penggunaan slot konkurensi dan memungkinkan throughput yang lebih tinggi.
  • Skalakan DWU pada kumpulan SQL khusus Synapse.

Migrasi melalui dbt

Di bagian ini, kita membahas opsi dbt untuk pelanggan yang sudah menggunakan dbt di lingkungan kumpulan SQL khusus Synapse mereka saat ini.

Apa yang dapat dilakukan dbt:

  • Konversi skema (DDL) ke sintaks Fabric Data Warehouse.
  • Buat skema (DDL) di Fabric Data Warehouse.
  • Mengonversi kode database (DML) ke sintaks Fabric.

Kerangka kerja dbt menghasilkan DDL dan DML (skrip SQL) dengan cepat dengan setiap eksekusi. Dengan file model yang dinyatakan dalam pernyataan SELECT, DDL/DML dapat diterjemahkan secara instan ke platform target apa pun dengan mengubah profil (string koneksi) dan jenis adaptor.

Kerangka kerja dbt adalah pendekatan code-first. Data harus dimigrasikan dengan menggunakan opsi yang tercantum dalam dokumen ini, seperti CETAS atau COPY/Data Factory.

Adaptor dbt untuk Microsoft Fabric Data Warehouse memungkinkan proyek dbt yang sudah ada yang menargetkan berbagai platform seperti pool SQL khusus Synapse, Snowflake, Databricks, Google Big Query, atau Amazon Redshift untuk dimigrasikan ke gudang hanya dengan perubahan konfigurasi sederhana.

Untuk memulai proyek dbt yang menargetkan Fabric Data Warehouse, lihat Tutorial: Mengatur dbt untuk Fabric Data Warehouse. Dokumen ini juga mencantumkan opsi untuk berpindah di antara gudang/platform yang berbeda.

Pengambilan data ke dalam Fabric Data Warehouse

Untuk masuk ke Fabric Data Warehouse, gunakan COPY INTO atau Fabric Data Factory, tergantung preferensi Anda. Kedua metode adalah opsi yang direkomendasikan dan berperforma terbaik, karena memiliki throughput performa yang setara, mengingat prasyarat bahwa file sudah diekstrak ke Azure Data Lake Storage (ADLS) Gen2.

Beberapa faktor yang perlu diperhatikan sehingga Anda dapat merancang proses Anda untuk performa maksimum:

  • Dengan Fabric, tidak ada persaingan sumber daya saat memuat beberapa tabel dari ADLS ke Fabric Data Warehouse secara bersamaan. Akibatnya, tidak ada penurunan kinerja saat menjalankan thread paralel. Throughput penyerapan maksimum hanya akan dibatasi oleh daya komputasi dari kapasitas Fabric Anda.
  • Manajemen beban kerja Fabric menyediakan pemisahan sumber daya yang didedikasikan untuk pemrosesan beban dan kueri. Tidak ada pertikaian sumber daya saat kueri dan pemuatan data dijalankan secara bersamaan.