Сопоставление типов с помощью PolyBase
ОБЛАСТЬ ПРИМЕНЕНИЯ:
SQL Server (только Windows)
База данных SQL Azure
Azure Synapse Analytics
Parallel Data Warehouse
В этой статье описывается сопоставление между внешними источниками данных PolyBase и SQL Server. Эти сведения можно использовать, чтобы правильно определить внешние таблицы с помощью команды Transact-SQL CREATE EXTERNAL TABLE.
Обзор
При создании внешней таблицы с помощью PolyBase определения столбцов, включая типы данных и количество столбцов, должны соответствовать данным во внешних файлах. В случае несоответствия при запросе данных строки файла отклоняются.
Во внешних таблицах, которые ссылаются на файлы во внешних источниках данных, определения столбцов и типов должны точно соответствовать схеме внешнего файла. При определении типов данных, которые ссылаются на данные, хранящиеся в Hadoop или Hive, используйте следующие сопоставления типов данных SQL и Hive и приведите тип к типу данных SQL при выборе. Типы включают все версии Hive, если не указано иное.
Примечание
SQL Server не поддерживает тип данных Hive infinity в любых преобразованиях. PolyBase будет завершаться ошибкой преобразования типов данных.
Сопоставление типов Hadoop
Тип данных SQL | Тип данных .NET | Тип данных Hive | Тип данных Hadoop/Java | Комментарии |
---|---|---|---|---|
tinyint | Byte | tinyint | ByteWritable | Только для чисел без знака. |
smallint | Int16 | smallint | ShortWritable | |
INT | Int32 | INT | IntWritable | |
BIGINT | Int64 | BIGINT | LongWritable | |
bit | Логическое | Логическое | BooleanWritable | |
FLOAT | Double | double | DoubleWritable | |
real | Один | FLOAT | FloatWritable | |
money | Decimal | double | DoubleWritable | |
smallmoney | Decimal | double | DoubleWritable | |
nchar | Строка Char[] |
строка | Varchar | |
nvarchar | Строка Char[] |
строка | Varchar | |
char | Строка Char[] |
строка | Varchar | |
varchar | Строка Char[] |
строка | Varchar | |
binary | Byte[] | binary | BytesWritable | Применяется к Hive 0.8 и более поздней версии. |
varbinary | Byte[] | binary | BytesWritable | Применяется к Hive 0.8 и более поздней версии. |
Дата | Дата и время | TIMESTAMP | TimestampWritable | |
smalldatetime | Дата и время | TIMESTAMP | TimestampWritable | |
datetime2 | Дата и время | TIMESTAMP | TimestampWritable | |
DATETIME | Дата и время | TIMESTAMP | TimestampWritable | |
time | TimeSpan | TIMESTAMP | TimestampWritable | |
Decimal | Decimal | Decimal | BigDecimalWritable | Применяется к Hive 0.11 и более поздней версии. |
Сопоставление типов Oracle
Тип данных Oracle | Тип SQL Server |
---|---|
Float | Float |
NUMBER | Float |
NUMBER (p,s) | Decimal (p, s) |
LONG | nvarchar |
BINARY_FLOAT | Real |
BINARY_DOUBLE | Float |
CHAR | Char |
VARCHAR2 | Varchar |
NVARCHAR2 | nvarchar |
RAW | Varbinary |
LONG RAW | Varbinary |
BLOB | Varbinary |
CLOB | Varchar |
NCLOB | nvarchar |
ROWID | Varchar |
UROWID | Varchar |
DATE | Datetime2 |
timestamp | Datetime2 |
Несоответствие типов
Число с плавающей запятой: Oracle поддерживает числа с плавающей запятой с точностью до 126. SQL Server поддерживает лучшую точность — 53. Таким образом Float (1–53) можно сопоставить напрямую, но при этом существует потеря данных из-за усечения.
Метка времени: Timestamp и Timestamp with local timezone в Oracle поддерживают точность секунды до 9 десятичных цифр после запятой, тогда как DateTime2 в SQL Server поддерживает точность только до 7.
Сопоставление типов MongoDB
Тип данных BSON | Тип SQL Server |
---|---|
Double | Float |
Строка | nvarchar |
Двоичные данные | nvarchar |
Идентификатор объекта. | nvarchar |
Логическое значение | bit |
Дата | Datetime2 |
32-разрядное целое число | Int |
Отметка времени | nvarchar |
64-разрядное целое число | BigInt |
Decimal 128 | Decimal |
DBPointer | nvarchar |
JavaScript | nvarchar |
Максимальный ключ | nvarchar |
Минимальный ключ | nvarchar |
Символ | nvarchar |
Регулярное выражение | nvarchar |
Не определено/NULL | nvarchar |
MongoDB использует документы BSON для хранения записей данных. В отличие от предыдущих сценариев, в BSON нет схемы и поддерживается внедрение документов и массивов в другие документы. Это обеспечивает гибкость для пользователя.
Сопоставление типов Teradata
Тип данных Teradata | Тип SQL Server |
---|---|
ЦЕЛОЕ ЧИСЛО | Int |
SMALLINT | SmallInt |
bigint | BigInt |
BYTEINT | SmallInt |
DECIMAL | Decimal |
FLOAT | Decimal |
BYTE | Двоичные данные |
VARBYTE | Varbinary |
BLOB | varbinary |
CHAR | Nchar |
CLOB | nvarchar |
VARCHAR | nvarchar |
GRAPHIC | Nchar |
JSON | nvarchar |
VARGRAPHIC | nvarchar |
DATE | Дата |
timestamp | Datetime2 |
TIME | Time |
TIME WITH TIME ZONE | Time |
TIMESTAMP WITH TIME ZONE | Время |
Дальнейшие действия
Дополнительные сведения об использовании сопоставления см. в справочнике по Transact-SQL для CREATE EXTERNAL TABLE (Transact-SQL).