Ketik pemetaan dengan PolyBase
Berlaku untuk: SQL Server (khusus Windows) Azure SQL DatabaseAzure Synapse Analytics Analytics Platform System (PDW)
Artikel ini menjelaskan pemetaan antara sumber data eksternal PolyBase dan SQL Server. Anda dapat menggunakan informasi ini untuk menentukan tabel eksternal dengan benar dengan perintah CREATE EXTERNAL TABLE Transact-SQL.
Gambaran Umum
Saat Anda membuat tabel eksternal dengan PolyBase, definisi kolom, termasuk jenis data dan jumlah kolom, harus cocok dengan data dalam file eksternal. Jika ada ketidakcocokan, baris file ditolak saat mengkueri data aktual.
Untuk tabel eksternal yang mereferensikan file di sumber data eksternal, definisi kolom dan jenis harus dipetakan ke skema file eksternal yang tepat. Saat menentukan jenis data yang mereferensikan data yang disimpan di Hadoop/Apache Hive, gunakan pemetaan berikut antara jenis data SQL dan Apache Hive dan transmisikan jenis ke dalam jenis data SQL saat memilih darinya. Jenisnya mencakup semua versi Apache Hive kecuali dinyatakan sebaliknya.
Catatan
SQL Server tidak mendukung nilai data infinity Apache Hive dalam konversi apa pun. PolyBase akan gagal dengan kesalahan konversi jenis data.
Referensi pemetaan Jenis Hadoop
Jenis data SQL | Tipe Data .NET | Tipe Data Apache Hive | Hadoop/Java Data Type1 | Komentar |
---|---|---|---|---|
tinyint | Byte | tinyint | ByteWritable | Hanya untuk angka yang tidak ditandatangani. |
smallint | Int16 | smallint | Dapat Ditulis Pendek | |
int | Int32 | int | IntWritable | |
bigint | Int64 | bigint | Dapat Ditulis Panjang | |
bit | Boolean | Boolean | BooleanWritable | |
float | Laju | ganda | DoubleWritable | |
real | Tunggal | float | FloatWritable | |
money | Decimal | ganda | DoubleWritable | |
smallmoney | Decimal | ganda | DoubleWritable | |
nchar | String Char[] |
string | Varchar | |
nvarchar | String Char[] |
string | Varchar | |
char | String Char[] |
string | Varchar | |
varchar | String Char[] |
string | Varchar | |
biner | Byte[] | biner | BytesWritable | Berlaku untuk Apache Hive 0.8 dan yang lebih baru. |
varbinary | Byte[] | biner | BytesWritable | Berlaku untuk Apache Hive 0.8 dan yang lebih baru. |
date | DateTime | rentang waktu | TimestampWritable | |
smalldatetime | DateTime | rentang waktu | TimestampWritable | |
tanggalwaktu2 | DateTime | rentang waktu | TimestampWritable | |
datetime | DateTime | rentang waktu | TimestampWritable | |
waktu | TimeSpan | rentang waktu | TimestampWritable | |
desimal | Decimal | desimal | BigDecimalWritable | Berlaku untuk Hive0.11 dan yang lebih baru. |
1 Mulai SQL Server 2022 (16.x) Hadoop tidak lagi didukung.
Referensi pemetaan Jenis Parquet dan Delta
Pemetaan jenis tabel eksternal Parquet dan Delta ke jenis data SQL Server tercantum di bawah ini.
File Parquet dan Delta Lake berisi deskripsi jenis untuk setiap kolom. Tabel berikut menjelaskan cara jenis Parquet dipetakan ke jenis asli SQL.
Jenis parket | Jenis logika parket (anotasi) | Tipe data SQL |
---|---|---|
BOOLEAN | bit | |
BINARY / BYTE_ARRAY | varbinary | |
DOUBLE | float | |
FLOAT | real | |
INT32 | int | |
INT64 | bigint | |
INT96 | tanggalwaktu2 | |
FIXED_LEN_BYTE_ARRAY | biner | |
BINER | UTF8 | varchar *(UTF8 collation) |
BINER | STRING | varchar *(UTF8 collation) |
BINER | ENUM | varchar *(UTF8 collation) |
FIXED_LEN_BYTE_ARRAY | UUID | uniqueidentifier |
BINER | DECIMAL | desimal |
BINER | JSON | varchar(8000) *(kolase UTF8 ) |
BINER | BSON | Tidak didukung |
FIXED_LEN_BYTE_ARRAY | DECIMAL | desimal |
BYTE_ARRAY | INTERVAL | Tidak didukung |
INT32 | INT(8, true) | smallint |
INT32 | INT(16, true) | smallint |
INT32 | INT(32, true) | int |
INT32 | INT(8, false) | tinyint |
INT32 | INT(16, false) | int |
INT32 | INT(32, false) | bigint |
INT32 | TANGGAL | date |
INT32 | DECIMAL | desimal |
INT32 | WAKTU (MILLIS) | waktu |
INT64 | INT(64, true) | bigint |
INT64 | INT(64, false) | decimal(20,0) |
INT64 | DECIMAL | desimal |
INT64 | TIME (MICROS) | waktu |
INT64 | WAKTU (NANOS) | Tidak didukung |
INT64 | TANDA WAKTU (dinormalisasi menjadi utc) (MILLIS / MICROS) | tanggalwaktu2 |
INT64 | TANDA WAKTU (tidak dinormalisasi ke utc) (MILLIS / MICROS) | bigint - pastikan Anda secara eksplisit menyesuaikan nilai bigint dengan offset zona waktu sebelum mengonversinya menjadi nilai tanggal-waktu. |
INT64 | TANDA WAKTU (NANOS) | Tidak didukung |
Jenis Kompleks | LIST | varchar(8000), diserialisasikan ke JSON |
Jenis Kompleks | PETA | varchar(8000), diserialisasikan ke JSON |
Referensi pemetaan Jenis Oracle
Jenis data Oracle | Jenis SQL Server |
---|---|
Float | Float |
NUMBER | Float |
ANGKA (p,s) | Desimal (p, s) |
LONG | Nvarchar |
BINARY_FLOAT | Riil |
BINARY_DOUBLE | Float |
CHAR | Char |
VARCHAR2 | Varchar |
NVARCHAR2 | Nvarchar |
RAW | Varbinary |
RAW PANJANG | Varbinary |
BLOB | Varbinary |
CLOB | Varchar |
NCLOB | Nvarchar |
ROWID | Varchar |
UROWID | Varchar |
TANGGAL | Tanggalwaktu2 |
TANDA WAKTU | Tanggalwaktu2 |
Ketidakcocokan jenis
Float: Oracle mendukung presisi floating point 126, yang lebih rendah dari yang didukung SQL Server (53). Oleh karena itu, Float (1-53) dapat dipetakan secara langsung, tetapi di luar itu, ada kehilangan data karena pemotongan.
Timestamp:
Tanda waktu dan Tanda Waktu dengan zona waktu lokal di Oracle mendukung presisi 9 detik pecahan sedangkan, SQL Server DateTime2 hanya mendukung presisi 7 detik pecahan.
Pemetaan Jenis MongoDB
Jenis data BSON | Jenis SQL Server |
---|---|
Laju | Float |
String | Nvarchar |
Data biner | Nvarchar |
ID Objek | Nvarchar |
Boolean | Bit |
Date | Tanggalwaktu2 |
bilangan bulat 32-bit | Int |
Tanda Waktu | Nvarchar |
bilangan bulat 64-bit | Bigint |
Desimal 128 | Decimal |
DBPointer | Nvarchar |
JavaScript | Nvarchar |
Kunci Maks | Nvarchar |
Kunci Min | Nvarchar |
Simbol | Nvarchar |
Ekspresi Reguler | Nvarchar |
Tidak ditentukan/NULL | Nvarchar |
MongoDB menggunakan dokumen BSON untuk menyimpan rekaman data. Tidak seperti skenario sebelumnya, BSON tidak memiliki skema dan mendukung penyematan dokumen dan array dalam dokumen lain. Ini memberikan fleksibilitas kepada pengguna.
Referensi pemetaan Tipe Teradata
Tipe data Teradata | Jenis SQL Server |
---|---|
INTEGER | Int |
SMALLINT | SmallInt |
BIGINT | Bigint |
BYTEINT | SmallInt |
DECIMAL | Decimal |
FLOAT | Decimal |
BYTE | Biner |
VARBYTE | Varbinary |
BLOB | varbinary |
CHAR | Nchar |
CLOB | Nvarchar |
VARCHAR | Nvarchar |
Graphic | Nchar |
JSON | Nvarchar |
VARGRAPHIC | Nvarchar |
TANGGAL | Date |
TANDA WAKTU | Tanggalwaktu2 |
TIME | Waktu |
WAKTU DENGAN ZONA WAKTU | Waktu |
STEMPEL WAKTU DENGAN ZONA WAKTU | Waktu |
Langkah berikutnya
Untuk informasi selengkapnya tentang cara ini digunakan, lihat artikel referensi Transact-SQL untuk CREATE EXTERNAL TABLE.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk