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

Berlaku untuk: ✅ Gudang di Microsoft Fabric

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

Petunjuk / Saran

Untuk informasi lebih lanjut tentang strategi dan perencanaan migrasi Anda, lihat Perencanaan migrasi: Azure Synapse Analytics pool SQL khusus untuk Fabric Data Warehouse.

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 berikut merangkum metode untuk migrasi skema data (DDL), kode basis data (DML), dan data. Kolom Opsi menautkan ke detail untuk setiap skenario.

Nomor opsi Opsi Apa fungsinya Keterampilan atau preferensi Skenario
1 Data Factory 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 akan dimigrasikan, dan dokumentasikan proses migrasi dari awal hingga akhir agar Anda dapat mengulanginya untuk pool SQL khusus atau beban kerja 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

Bagian ini menjelaskan opsi Data Factory bagi pengguna yang familiar dengan pipeline Azure Data Factory dan Synapse. Antarmuka drag-and-drop menyediakan cara sederhana untuk mengonversi DDL dan memigrasi 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. Migrasi skema dan data - asisten penyalinan data dan aktivitas salin ForEach

Metode ini menggunakan Data Factory Copy data 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 SELECT kueri (satu untuk setiap tabel yang dipilih) dihasilkan dan dijalankan di pool 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.
  • Menyalin data langsung dari pool SQL khusus ke Fabric Data Warehouse dengan Data Factory memerlukan staging. Proses konsumsi memiliki dua tahap:
    • Fase pertama mengekstrak data dari kumpulan SQL khusus ke dalam ADLS. Fase ini disebut tahap penyiapan.
    • Fase kedua menginput data bertahap ke dalam Fabric Data Warehouse. Sebagian besar waktu konsumsi dihabiskan pada fase staging, sehingga staging memiliki pengaruh signifikan terhadap performa.

Dengan menggunakan asisten Copy untuk membuat aktivitas ForEach, Anda mendapatkan antarmuka sederhana untuk mengonversi DDL serta memasukkan tabel yang dipilih dari kumpulan SQL khusus ke Fabric Data Warehouse dalam satu langkah.

Namun, opsi ini tidak memberikan throughput keseluruhan yang optimal. Staging dan kebutuhan untuk menjalankan operasi baca dan tulis secara paralel selama fase source-to-stage merupakan penyebab utama latensi. Gunakan opsi ini hanya untuk tabel dimensi.

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

Untuk meningkatkan throughput saat Anda memuat tabel fakta yang lebih besar dengan pipeline Fabric, gunakan Copy activity untuk setiap tabel fakta dan aktifkan partisi. Konfigurasi ini memberikan performa Copy activity terbaik.

Gunakan partisi fisik tabel sumber jika tersedia. Jika tabel tidak dipartisi secara fisik, tentukan kolom partisi serta nilai minimum dan maksimum untuk partisi dinamis. Pada tangkapan layar berikut, opsi Sumber pipeline menentukan rentang partisi dinamis berdasarkan ws_sold_date_sk kolom.

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

Partisi dapat meningkatkan throughput staging. Pertimbangkan panduan berikut saat Anda mengonfigurasinya:

  • Tergantung pada rentang partisi, operasi dapat menghasilkan lebih dari 128 kueri dan menggunakan semua slot konkurensi dalam kumpulan SQL khusus.
  • Anda harus meningkatkan skala ke minimal DWU6000 agar semua kueri dapat dieksekusi.
  • Sebagai contoh, untuk tabel TPC-DS web_sales , 163 kueri dikirimkan ke kumpulan SQL khusus. Pada DWU6000, 128 kueri dijalankan sementara 35 kueri berada dalam antrean.
  • 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, gunakan Data Factory dengan opsi partisi untuk meningkatkan throughput.

Namun, pembacaan paralel mengharuskan Anda untuk menskalakan pool SQL khusus ke DWU yang lebih tinggi agar dapat menjalankan kueri ekstraksi. Pemartisian meningkatkan kecepatan hingga sepuluh kali lipat dibandingkan dengan tidak menggunakan pemartisian. Anda dapat meningkatkan DWU untuk throughput yang lebih tinggi, tetapi pool SQL khusus mendukung maksimum 128 kueri aktif.

Untuk informasi lebih lanjut tentang pemetaan Synapse DWU ke Fabric, lihat Blog: Memetakan Azure Synapse pool SQL khusus untuk Fabric Data Warehouse komputasi.

Opsi 3. Migrasi DDL - Asisten data salin Aktivitas Salinan Untuk Setiap

Dua opsi sebelumnya cocok untuk basis data yang lebih kecil . Jika Anda membutuhkan throughput yang lebih tinggi, gunakan alternatif berikut:

  1. Ekstrak data dari pool SQL khusus ke ADLS untuk mengurangi overhead staging.
  2. Gunakan Data Factory atau perintah COPY untuk menginput data ke gudang Anda.

Anda dapat terus menggunakan Data Factory untuk mengonversi skema (DDL) Anda. Dengan menggunakan Copy data assistant, Anda dapat memilih tabel tertentu atau Semua tabel. Secara desain, metode ini memigrasikan skema dalam satu langkah, mengekstrak skema tanpa baris dengan menggunakan kondisi palsu, TOP 0 dalam pernyataan query.

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

Pipeline ini menerima parameter SchemaName, yang Anda gunakan untuk menentukan skema mana yang akan dimigrasikan. Skema defaultnya adalah dbo.

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.

  • Bangun bidang Query menggunakan ekspresi dinamis, sehingga Anda dapat menggunakan parameter SchemaName tersebut dalam query yang mengembalikan daftar tabel sumber target. Pilih Query lalu pilih Tambah 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. Output dari ekspresi ini adalah array skema SQL dan tabel yang digunakan oleh Aktivitas ForEach sebagai input.

    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'),')
    ')
    

Tangkapan layar dari Data Factory yang menampilkan tab Pengaturan pada sebuah Pipeline. Tombol Query dipilih dan kode ditempelkan ke kolom Query.

Desain alur: ForEach Loop

Untuk Loop ForEach, konfigurasikan opsi berikut di tab Pengaturan :

  • Nonaktifkan Sequential untuk memungkinkan beberapa iterasi berjalan secara bersamaan.
  • Atur Batch count ke 50, membatasi jumlah maksimum iterasi bersamaan.
  • Gunakan konten dinamis di bidang Item untuk merujuk output dari 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 menyusun pernyataan SELECT TOP 0 * FROM <TABLE> guna memigrasikan hanya skema tanpa data ke gudang data.

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 Query , tempelkan query konten dinamis dan gunakan ekspresi ini yang mengembalikan baris nol, tetapi menyertakan 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.
  • Atur jenis penyimpanan data Workspace ke Data Warehouse dan atur Data Warehouse ke gudang data.
  • Skema Tabel tujuan dan nama tabel ditentukan menggunakan konten dinamis.
    • Skema merujuk pada bidang iterasi saat ini, SchemaName dengan cuplikan: @item().SchemaName
    • Referensi tabel 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.

Saat Anda menjalankan pipeline ini, Anda melihat gudang Anda diisi dengan setiap tabel di sumber Anda, menggunakan skema yang benar.

Migrasi dengan menggunakan prosedur tersimpan di pool SQL khusus Synapse

Opsi ini menggunakan prosedur tersimpan untuk melakukan migrasi ke Fabric Data Warehouse.

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 Fabric Migration:

  • 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).

Opsi ini sangat cocok untuk Anda jika Anda:

  • Terbiasa dengan T-SQL.
  • Ingin menggunakan lingkungan pengembangan terintegrasi untuk pengembangan T-SQL.
  • Ingin kontrol yang lebih rinci atas tugas yang Anda kerjakan.

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

Untuk migrasi data, gunakan COPY INTO atau Fabric Data Factory untuk menginput data ke gudang Anda.

Bermigrasi menggunakan proyek database SQL

Fabric Data Warehouse mendukung ekstensi SQL Database Projects 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.

Gunakan opsi ini jika Anda lebih suka menggunakan SQL Database Project untuk penerapan Anda. Opsi ini mengintegrasikan prosedur tersimpan Fabric Migration ke dalam proyek database SQL 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, gunakan COPY INTO atau Data Factory untuk menginput data ke gudang Anda.

Tim Microsoft Fabric CAT menyediakan skrip PowerShell untuk mengekstrak, membuat, dan menyebarkan schema (DDL) serta kode database (DML) melalui proyek database SQL. Untuk panduan, lihat microsoft/fabric-migration di GitHub.

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 pool SQL khusus Azure Synapse ke Azure Data Lake Storage (ADLS) Gen2.

Apa yang dapat dilakukan CETAS:

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

Keuntungan dari opsi ini adalah:

  • Migrasi hanya mengirimkan satu query per tabel terhadap pool SQL khusus Synapse sumber. Kueri ini tidak menggunakan semua slot konkurensi, dan tidak menghambat ETL produksi pelanggan atau kueri lain yang berjalan secara bersamaan.
  • Anda tidak perlu skala ke DWU6000, karena hanya satu slot konkurensi yang digunakan untuk setiap meja, jadi Anda bisa menggunakan DWU yang lebih rendah.
  • Ekstrak berjalan paralel di semua node komputasi, dan fitur ini meningkatkan performa.

Gunakan CETAS untuk mengekstrak data ke ADLS sebagai berkas Parquet. Berkas Parquet menawarkan keunggulan berupa penyimpanan data yang efisien dengan kompresi kolumnar yang memerlukan bandwidth lebih sedikit saat dipindahkan melalui jaringan. Karena Fabric menyimpan data dalam format Delta Parquet, ingesti data 2,5x lebih cepat dibandingkan format file teks, karena tidak ada overhead konversi ke format Delta selama proses ingesti.

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

Bagian ini menjelaskan opsi dbt untuk pelanggan yang sudah menggunakan dbt di lingkungan pool SQL khusus Synapse mereka.

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 menggunakan file model yang diekspresikan dalam SELECT pernyataan, dbt menerjemahkan DDL/DML secara instan ke platform target mana pun dengan mengubah profil (string koneksi) dan tipe adaptor.

Kerangka kerja dbt menggunakan pendekatan code-first. Migrasikan data menggunakan opsi yang tercantum dalam dokumen ini, seperti CETAS atau COPY/Data Factory.

Dengan menggunakan adaptor dbt untuk Microsoft Fabric Data Warehouse, Anda dapat memigrasikan proyek dbt yang sudah ada yang menargetkan berbagai platform seperti pool SQL khusus Azure Synapse, Snowflake, Databricks, Google BigQuery, atau Amazon Redshift ke gudang 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 antar gudang dan 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 ini adalah opsi yang direkomendasikan dan berkinerja terbaik, karena memiliki throughput kinerja yang setara, dengan syarat file sudah diekstrak ke Azure Data Lake Storage (ADLS) Gen2.

Rancang proses Anda untuk kinerja maksimal dengan mempertimbangkan faktor-faktor berikut:

  • 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 data maksimum hanya dibatasi oleh daya komputasi kapasitas Fabric Anda.
  • Manajemen beban kerja Fabric menyediakan pemisahan sumber daya yang didedikasikan untuk pemrosesan beban dan kueri. Tidak ada perebutan sumber daya saat kueri dan pemuatan data berjalan secara bersamaan.