Bagikan melalui


Arsitektur SQL pool khusus (sebelumnya SQL DW) di Azure Synapse Analytics

Azure Synapse Analytics adalah layanan analitik yang menyatukan pergudangan data perusahaan dan analitik Big Data. Layanan ini memberi Anda kebebasan untuk melakukan kueri data sesuai keinginan Anda.

Catatan

Untuk informasi lebih lanjut tentang Azure Synapse Analytics, tonton video ini menjelaskan Peningkatan Pergerakan Data.

Komponen arsitektur Synapse SQL

Kumpulan SQL khusus (sebelumnya SQL DW) memanfaatkan arsitektur peluasan skala untuk mendistribusikan pemrosesan data komputasi pada beberapa simpul. Unit skala adalah abstraksi daya komputasi yang dikenal sebagai unit gudang data. Komputasi dilakukan terpisah dari penyimpanan, yang memungkinkan Anda menskalakan komputasi secara independen dari data dalam sistem Anda.

Arsitektur kumpulan SQL khusus (sebelumnya SQL DW)

Kumpulan SQL khusus (sebelumnya SQL DW) menggunakan arsitektur berbasis simpul. Aplikasi terhubung dan mengeluarkan perintah T-SQL ke node Pengendali. Simpul kontrol menjadi host untuk mesin kueri terdistribusi, yang mengoptimalkan kueri untuk pemrosesan paralel, dan kemudian meneruskan operasi ke Simpul komputasi agar pekerjaan dapat dilakukan secara paralel.

Simpul komputasi menyimpan semua data pengguna pada Azure Storage dan menjalankan kueri paralel. Layanan Pergerakan Data (Data Movement Service/DMS) adalah layanan internal tingkat sistem yang memindahkan data ke seluruh simpul sesuai kebutuhan untuk menjalankan kueri secara paralel dan mengembalikan hasil yang akurat.

Dengan penyimpanan dan komputasi yang dipisahkan, kumpulan SQL khusus (sebelumnya SQL DW) dapat digunakan untuk:

  • Sesuaikan daya komputasi secara mandiri terlepas dari kebutuhan penyimpanan Anda.
  • Menumbuhkan atau menyusutkan daya komputasi, di dalam kumpulan SQL khusus (sebelumnya SQL DW), tanpa memindahkan data.
  • Hentikan sementara kapasitas komputasi sambil membiarkan data tetap utuh, sehingga Anda hanya perlu membayar untuk penyimpanan.
  • Lanjutkan kapasitas komputasi selama jam operasional.

Azure Storage

Kumpulan SQL khusus SQL (sebelumnya SQL DW) memanfaatkan Azure Storage untuk menjaga keamanan data pengguna Anda. Karena data Anda disimpan dan dikelola oleh Azure Storage, ada biaya terpisah untuk konsumsi penyimpanan Anda. Data tersebut dipecah ke dalam distribusi untuk mengoptimalkan performa sistem. Anda dapat memilih pola pemecahan yang akan digunakan untuk mendistribusikan data saat Anda menentukan tabel. Pola pemecahan ini didukung oleh:

  • Hash
  • sistem ronde robin
  • Mereplikasi

Node pengendali

Simpul Kontrol adalah otak dari arsitektur. Front end ini adalah yang berinteraksi dengan semua aplikasi dan koneksi. Mesin kueri terdistribusi berjalan pada Simpul kontrol untuk mengoptimalkan dan mengoordinasikan kueri paralel. Saat Anda mengirimkan kueri T-SQL, Simpul kontrol mengubahnya menjadi kueri yang berjalan terhadap setiap distribusi secara paralel.

Node komputasi

Node Komputasi menyediakan daya komputasi. Peta distribusi dikirim ke simpul Komputasi untuk diproses. Saat Anda membayar untuk sumber daya komputasi tambahan, distribusi didistribusikan kembali ke simpul komputasi yang tersedia. Jumlah simpul komputasi berkisar antara 1 hingga 60, dan ditentukan oleh tingkat layanan untuk Synapse SQL.

Setiap simpul Komputasi memiliki ID simpul yang terlihat dalam tampilan sistem. Anda dapat melihat ID simpul Komputasi dengan mencari kolom simpul_id dalam tampilan sistem dengan nama awal sys.pdw_nodes. Untuk daftar tampilan sistem ini, lihat Tampilan sistem Synapse SQL.

Layanan pemindahan data (Data Movement Service)

Data Movement Service (DMS) adalah teknologi pengangkut data yang mengoordinasikan pergerakan data di antara Simpul komputasi. Beberapa kueri memerlukan pergerakan data untuk memastikan kueri paralel memberikan hasil yang akurat. Ketika pergerakan data diperlukan, DMS memastikan data yang tepat sampai ke lokasi yang tepat.

Distribusi

Distribusi adalah unit dasar penyimpanan dan pemrosesan untuk kueri paralel yang berjalan pada data terdistribusi. Ketika Synapse SQL menjalankan kueri, tugas tersebut dibagi menjadi 60 kueri yang lebih kecil dan berjalan secara paralel.

Setiap 60 kueri yang lebih kecil tersebut berjalan pada salah satu distribusi data. Setiap simpul Komputasi mengelola satu atau sebagian dari 60 distribusi tersebut. Kumpulan SQL khusus (sebelumnya SQL DW) dengan sumber daya komputasi maksimum memiliki satu distribusi per simpul komputasi. Kumpulan SQL khusus (sebelumnya SQL DW) dengan sumber daya komputasi minimum memiliki semua distribusi pada satu simpul komputasi.

Catatan

Untuk rekomendasi tentang strategi distribusi tabel terbaik untuk digunakan berdasarkan beban kerja Anda, lihat Azure Synapse SQL Distribution Advisor.

Tabel yang didistribusikan dengan hash

Tabel terdistribusi hash dapat menjalankan performa kueri tertinggi untuk gabungan dan agregasi pada tabel besar.

Untuk memecah data ke dalam tabel yang didistribusikan hash, fungsi hash digunakan untuk menetapkan setiap baris secara deterministik ke satu distribusi. Dalam definisi tabel, salah satu kolom ditetapkan sebagai kolom distribusi. Fungsi hash menggunakan nilai dalam kolom distribusi untuk menetapkan setiap baris ke distribusi.

Diagram berikut mengilustrasikan bagaimana tabel lengkap (tidak didistribusikan) disimpan sebagai tabel terdistribusi hash.

Tabel terdistribusi

  • Setiap baris adalah bagian dari satu distribusi.
  • Algoritma hash deterministik menetapkan setiap baris untuk satu distribusi.
  • Jumlah baris tabel per distribusi bervariasi seperti yang diperlihatkan oleh berbagai ukuran tabel.

Ada pertimbangan performa untuk pilihan kolom distribusi, seperti perbedaan, kecondongan data, dan tipe kueri yang berjalan pada sistem.

Tabel yang didistribusikan dengan metode round-robin

Tabel round-robin adalah tabel paling sederhana yang mempermudah pembuatannya dan memberikan performa cepat ketika digunakan sebagai tabel penahapan untuk pemuatan.

Tabel Round-robin mendistribusikan data secara merata ke seluruh tabel, tetapi tanpa pengoptimalan lebih lanjut. Sebuah distribusi dipilih secara acak terlebih dahulu, kemudian buffer dari baris-baris ditetapkan ke distribusi secara berurutan. Data dimuat ke dalam tabel round-robin dengan cepat, tetapi performa kueri biasanya lebih baik dengan tabel terdistribusi hash. Gabungan pada tabel round-robin memerlukan pengocokan ulang data, yang menyebabkan membutuhkan waktu tambahan.

Tabel yang Direplikasi

Tabel yang direplikasi menyediakan performa kueri tercepat untuk tabel kecil.

Tabel yang direplikasi menyimpan salinan lengkap tabel di setiap node komputasi. Sebagai hasilnya, dengan mereplikasi tabel, tidak perlu mentransfer data di antara simpul komputasi sebelum gabungan atau agregasi. Tabel yang direplikasi sebaiknya digunakan untuk tabel-tabel kecil. Penyimpanan ekstra diperlukan dan ada overhead tambahan yang dikeluarkan saat menulis data sehingga membuat tabel besar tidak praktis.

Diagram di bawah ini memperlihatkan tabel yang direplikasi dan dilakukan cache pada distribusi pertama di setiap simpul komputasi.

Tabel yang direplikasi

Sekarang setelah Anda tahu sedikit tentang Azure Synapse, pelajari cara cepat membuat kumpulan SQL khusus (sebelumnya SQL DW) dan memuat data sampel. Jika Anda baru menggunakan Azure, Anda mungkin menemukan konsep dasar Azure yang berguna saat Anda menemukan terminologi baru. Atau lihat beberapa Sumber Daya Azure Synapse lainnya.