Merancang strategi pemuatan data PolyBase untuk kumpulan SQL khusus di Azure Synapse Analytics

Gudang data SMP tradisional menggunakan proses Ekstrak, Transformasi, dan Muat (ETL) untuk memuat data. Azure SQL pool adalah rancangan pemrosesan paralel masif (MPP) yang memanfaatkan skalabilitas dan fleksibilitas sumber daya komputasi dan penyimpanan. Proses Ekstrak, Muat, dan Transformasi (ELT) dapat memanfaatkan kemampuan pemrosesan kueri terdistribusi bawaan dan menghilangkan sumber daya yang diperlukan untuk mengubah data sebelum memuat.

Sementara SQL pool mendukung banyak metode pemuatan termasuk opsi non-Polybase seperti BCP dan SQL BulkCopy API, cara tercepat dan paling dapat diskalakan untuk memuat data adalah melalui PolyBase. PolyBase adalah teknologi yang mengakses data eksternal yang disimpan dalam penyimpanan Azure Blob atau Azure Data Lake Store melalui bahasa T-SQL.

Mengekstrak, Memuat, dan Mentransformasi (ELT)

Extract, Load, and Transform (ELT) adalah proses di mana data diekstrak dari sistem sumber, dimuat ke dalam gudang data, lalu ditransformasikan.

Langkah-langkah dasar untuk menerapkan PolyBase ELT untuk kumpulan SQL khusus adalah:

  1. Ekstrak data sumber ke dalam file teks.
  2. Muat data ke Azure Blob Storage atau Azure Data Lake Storage.
  3. Siapkan data untuk dimuat.
  4. Muat data ke tabel pementasan kolam SQL khusus menggunakan PolyBase.
  5. Mengubah data.
  6. Sisipkan data ke dalam tabel produksi.

Untuk tutorial pemuatan, lihat Menggunakan PolyBase untuk memuat data dari Azure blob storage ke Azure Synapse Analytics.

Untuk informasi selengkapnya, lihat Memuat pola blog.

1. Ekstrak data sumber ke dalam file teks

Mengeluarkan data dari sistem sumber Anda tergantung pada lokasi penyimpanan. Tujuannya adalah untuk memindahkan data ke file teks dibatasi yang didukung PolyBase.

Format file eksternal PolyBase

PolyBase memuat data dari file teks dibatasi yang dikodekan UTF-8 dan UTF-16. PolyBase juga memuat dari format file Hadoop RC File, ORC, dan Parket. PolyBase juga dapat memuat data dari file terkompresi Gzip dan Snappy. PolyBase saat ini tidak mendukung ASCII yang diperluas, format lebar tetap, dan format bertumpuk seperti WinZip, JSON, dan XML.

Jika Anda mengekspor dari SQL Server, Anda dapat menggunakan alat baris perintah bcp untuk mengekspor data ke dalam file teks yang dibatasi. Pemetaan jenis data Parquet ke Azure Synapse Analytics adalah sebagai berikut:

Jenis Data Parquet Jenis data SQL
tinyint tinyint
smallint smallint
int int
bigint bigint
boolean bit
double float
float real
ganda money
ganda smallmoney
string nchar
string nvarchar
string char
string varchar
binary binary
binary varbinary
timestamp tanggal
timestamp smalldatetime
timestamp datetime2
timestamp tanggalwaktu
rentang waktu waktu
tanggal tanggal
decimal decimal

2. Muat data ke Azure Data Lake Store atau Azure Blob Storage

Untuk mendaratkan data di penyimpanan Azure, Anda dapat memindahkannya ke Azure Blob storage atau Azure Data Lake Store. Di salah satu lokasi, data harus disimpan dalam file teks. PolyBase dapat memuat dari salah satu lokasi.

Alat dan layanan yang bisa Anda gunakan untuk memindahkan data ke Azure Storage:

  • Layanan Azure ExpressRoute meningkatkan throughput jaringan, performa, dan prediktabilitas. ExpressRoute adalah layanan yang merutekan data Anda melalui koneksi privat khusus ke Microsoft Azure. Koneksi ExpressRoute tidak merutekan data melalui internet publik. Koneksi ExpressRoute menawarkan lebih banyak keandalan, kecepatan lebih cepat, latensi lebih rendah, dan keamanan lebih tinggi daripada koneksi biasa melalui internet publik.
  • Utilitas AzCopy memindahkan data ke Microsoft Azure Storage melalui internet publik. Pemindahan ini berfungsi jika ukuran data Anda kurang dari 10 TB. Untuk melakukan pemuatan secara teratur dengan AzCopy, uji kecepatan jaringan untuk melihat apakah itu dapat diterima.
  • Azure Data Factory (ADF) memiliki gateway yang bisa Anda pasang di server lokal Anda. Kemudian Anda dapat membuat alur untuk memindahkan data dari server lokal Anda ke Azure Storage. Untuk menggunakan Data Factory dengan kumpulan SQL khusus, lihat Memuat data ke dalam kumpulan SQL khusus.

3. Siapkan data untuk dimuat

Anda mungkin perlu menyiapkan dan membersihkan data di akun penyimpanan Anda sebelum memuatnya ke dalam kumpulan SQL khusus. Persiapan data dapat dilakukan saat data Anda berada di sumbernya, saat Anda mengekspor data ke file teks, atau setelah data berada di Azure Storage. Paling mudah untuk bekerja dengan data sedini mungkin dalam proses.

Menentukan tabel eksternal

Sebelum dapat memuat data, Anda perlu menentukan tabel eksternal di gudang data Anda. PolyBase menggunakan tabel eksternal untuk menentukan dan mengakses data di Azure Storage. Tabel eksternal mirip dengan tampilan database. Tabel eksternal berisi skema tabel dan menunjuk ke data yang disimpan di luar gudang data.

Menentukan tabel eksternal melibatkan menentukan sumber data, format file teks, dan definisi tabel. Berikut adalah topik sintaks T-SQL yang akan Anda butuhkan:

Memformat file teks

Setelah objek eksternal ditentukan, Anda perlu meratakan baris file teks dengan definisi tabel dan format file eksternal. Data di setiap baris file teks harus diratakan dengan definisi tabel. Untuk memformat file teks:

  • Jika data Anda berasal dari sumber non-relasional, Anda perlu mengubahnya menjadi baris dan kolom. Apakah data berasal dari sumber relasional atau non-relasional, data harus ditransformasikan agar selaras dengan definisi kolom untuk tabel tempat Anda berencana memuat data.
  • Format data dalam file teks untuk diratakan dengan kolom dan tipe data dalam tabel tujuan kumpulan SQL. Ketidakselarasan antara tipe data dalam file teks eksternal dan tabel gudang data menyebabkan baris ditolak selama pemuatan.
  • Pisahkan bidang dalam file teks dengan pemisah. Pastikan untuk menggunakan karakter atau urutan karakter yang tidak ditemukan di data sumber Anda. Gunakan terminator yang Anda tentukan dengan CREATE EXTERNAL FILE FORMAT.

4. Muat data ke tabel pementasan himpunan SQL khusus menggunakan PolyBase

Ini adalah praktik terbaik untuk memuat data ke dalam tabel pementasan. Tabel pementasan memungkinkan Anda menangani kesalahan tanpa mengganggu tabel produksi. Tabel pementasan juga memberi Anda kesempatan untuk menggunakan kemampuan pemrosesan kueri terdistribusi kumpulan SQL untuk transformasi data sebelum menyisipkan data ke dalam tabel produksi.

Opsi untuk memuat dengan PolyBase

Untuk memuat data dengan PolyBase, Anda dapat menggunakan salah satu opsi pemuatan ini:

  • PolyBase dengan T-SQL berfungsi dengan baik saat data Anda berada di penyimpanan Azure Blob atau Azure Data Lake Store. Ini memberi Anda kontrol paling besar atas proses pemuatan, tetapi juga mengharuskan Anda untuk menentukan objek data eksternal. Metode lain menentukan objek ini di belakang layar saat Anda memetakan tabel sumber ke tabel tujuan. Untuk mengatur beban T-SQL, Anda dapat menggunakan fungsi Azure Data Factory, SSIS, atau Azure.
  • PolyBase dengan SSIS berfungsi dengan baik ketika data sumber Anda berada di SQL Server. SSIS mendefinisikan pemetaan tabel sumber ke tujuan, dan juga mengatur beban. Jika sudah memiliki paket SSIS, Anda dapat memodifikasi paket untuk bekerja dengan tujuan gudang data baru.
  • PolyBase dengan Azure Data Factory (ADF) adalah alat orkestrasi lain. Ini mendefinisikan alur dan menjadwalkan pekerjaan.
  • PolyBase dengan Azure Databricks mentransfer data dari tabel Azure Synapse Analytics ke dataframe Databricks dan/atau menulis data dari dataframe Databricks ke tabel Azure Synapse Analytics menggunakan PolyBase.

Opsi pemuatan Non-PolyBase

Jika data Anda tidak kompatibel dengan PolyBase, Anda dapat menggunakan bcp atau SQLBulkCopy API. BCP memuat langsung ke kumpulan SQL khusus tanpa melalui penyimpanan Azure Blob, dan hanya ditujukan untuk beban kecil. Perhatikan, performa beban opsi ini secara signifikan lebih lambat daripada PolyBase.

5. Mengubah data

Saat data berada dalam tabel penahapan, lakukan transformasi yang diperlukan beban kerja Anda. Kemudian pindahkan data ke dalam tabel produksi.

6. Sisipkan data ke dalam tabel produksi

Pernyataan SISIPAN KE ... PILIH memindahkan data dari tabel penahapan ke tabel permanen.

Saat Anda merancang proses ETL, coba jalankan proses pada sampel pengujian kecil. Coba ekstraksi 1000 baris dari tabel ke file, pindahkan baris tersebut ke Microsoft Azure, lalu coba muat ke dalam tabel penahapan.

Solusi pemuatan mitra

Banyak mitra kami memiliki solusi pemuatan. Untuk mengetahui lebih lanjut, lihat daftar mitra solusi kami.

Langkah berikutnya

Untuk memuat panduan, lihat Panduan untuk memuat data.