Jenis data tabel di Synapse SQL

Tip

Microsoft Fabric Data Warehouse adalah gudang relasional skala perusahaan pada fondasi data lake, dengan arsitektur siap masa depan, AI bawaan, dan fitur baru. Jika Anda baru menggunakan pergudangan data, mulailah dengan Fabric Data Warehouse. Beban kerja kumpulan SQL terdedikasi yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik waktu nyata, dan pelaporan.

Dalam artikel ini, Anda akan menemukan rekomendasi untuk menentukan jenis data tabel di Kumpulan Khusus Synapse SQL.

Jenis data

Kumpulan Khusus Synapse SQL mendukung jenis data yang paling umum digunakan. Untuk daftar jenis data yang didukung, lihat jenis data dalam pernyataan CREATE TABLE. Untuk Synapse SQL Tanpa Server, lihat artikel Kueri file penyimpanan dengan kumpulan SQL tanpa server di Azure Synapse Analytics dan Cara menggunakan OPENROWSET menggunakan kumpulan SQL tanpa server di Azure Synapse Analytics

Meminimalkan panjang baris

Meminimalkan ukuran jenis data memperpendek panjang baris, yang mengarah ke performa kueri yang lebih baik. Gunakan jenis data terkecil yang berfungsi untuk data Anda.

  • Hindari menentukan kolom karakter dengan panjang default yang besar. Misalnya, jika nilai terpanjang adalah 25 karakter, maka tentukan kolom Anda sebagai VARCHAR(25).
  • Hindari menggunakan NVARCHAR saat Anda hanya memerlukan VARCHAR.
  • Jika memungkinkan, gunakan NVARCHAR(4000) atau VARCHAR(8000) alih-alih NVARCHAR(MAX) atau VARCHAR(MAX).
  • Hindari menggunakan float dan desimal dengan skala 0 (nol). Ini seharusnya merupakan TINYINT, SMALLINT, INT, atau BIGINT.

Catatan

Jika Anda menggunakan tabel eksternal PolyBase untuk memuat tabel Synapse SQL Anda, panjang baris tabel yang ditentukan tidak boleh melebihi 1 MB. Saat baris dengan data panjang variabel melebihi 1 MB, Anda dapat memuat baris dengan BCP, tetapi tidak dengan PolyBase.

Mengidentifikasi jenis data yang tidak didukung

Jika Anda memigrasikan database dari database SQL lain, Anda mungkin menemukan tipe data yang tidak didukung di Synapse SQL. Gunakan kueri ini untuk menemukan tipe data yang tidak didukung dalam skema SQL yang sudah ada.

SELECT  t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables  t
JOIN sys.columns c on t.[object_id]    = c.[object_id]
JOIN sys.types   y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
 OR  y.[is_user_defined] = 1;

Solusi untuk tipe data yang tidak didukung

Daftar berikut ini memperlihatkan jenis data yang tidak didukung Synapse SQL dan memberikan alternatif yang dapat Anda gunakan alih-alih jenis data yang tidak didukung.

Tipe data yang tidak didukung solusi alternatif
geometry varbinary
geography varbinary
hierarchyid nvarchar(4000)
image varbinary
text varchar
ntext nvarchar
sql_variant Pisahkan kolom menjadi beberapa kolom yang ditik dengan kuat.
table Konversi ke tabel sementara atau pertimbangkan untuk menyimpan data ke penyimpanan menggunakan CETAS.
timestamp Ubah kode untuk menggunakan datetime2 dan fungsi CURRENT_TIMESTAMP. Hanya konstanta yang didukung sebagai default, oleh karena itu current_timestamp tidak dapat didefinisikan sebagai batasan default. Jika Anda perlu memigrasikan nilai versi baris dari kolom bertipe timestamp, gunakan BINARY(8) atau VARBINARY(8) untuk nilai versi baris NOT NULL atau NULL.
xml varchar
jenis yang ditentukan pengguna Konversi kembali ke jenis data asli jika memungkinkan.
nilai default Nilai default hanya mendukung literal dan konstanta.

Untuk informasi selengkapnya tentang mengembangkan tabel, lihat gambaran umum pengembangan.