支持的数据类型

drill具有多种类型的数据源的读写操作。

SQL Data Type Description Example
BIGINT 8字节有符号整数,范围为-9,223,372,036,854,775,808至9,223,372,036,854,775,807 9223372036854775807
BINARY 可变长度字节字符串 B @ e6d9eb7
BOOLEAN True or false true
DATE 自公元前4713年以来采用YYYY-MM-DD格式的年,月和日 2015-12-30
DECIMAL(p,s), or DEC(p,s), NUMERIC(p,s)* 38位精度数字,精度为p,小数位数为s DECIMAL(6,2)为1234.56,小数点前4位和小数点后2位
FLOAT 4字节浮点数 0.456
DOUBLE, DOUBLE PRECISION 8字节浮点数,可精确缩放 0.456
INTEGER or INT 4字节有符号整数,范围为-2,147,483,648到2,147,483,647 2147483646
INTERVAL** 一天时间或年月间隔 ‘1 10:20:30.123’ (day-time) or ‘1-2’ year to month (year-month)
SMALLINT*** 2字节有符号整数,范围为-32,768到32,767 32000
TIME 基于2001年1月1日之前或之后的24小时制时间,以小时,分钟,秒的格式显示:HH:mm:ss 22:55:55.23
TIMESTAMP JDBC时间戳,以年,月,日,时,分,秒和可选的毫秒格式表示:yyyy-MM-dd HH:mm:ss.SSS 2015-12-30 22:55:55.23
CHARACTER VARYING, CHARACTER, CHAR,**** or VARCHAR UTF8编码的可变长度字符串。默认限制为1个字符。最大字符数限制为2147483647。 CHAR(30)将数据转换为最多30个字符的字符串。

*从Drill 1.14开始,默认情况下启用DECIMAL数据类型。
**在内部,INTERVAL表示为INTERVALDAY或INTERVALYEAR。
***当前不支持SMALLINT。
**** Drill内部将CHAR数据类型表示为VARCHAR。

DECIMAL数据类型

从Drill 1.14开始,默认情况下启用DECIMAL数据类型支持。Drill使用vardecimal数据类型以压缩格式存储十进制和数字数据类型,以优化存储空间。vardecimal数据类型将十进制和数字值存储为可表示任何十进制精度的可变长度列。

在Drill中,SQL DECIMAL和NUMERIC数据类型映射到java.math.BigDecimal Java数据类型。

句法

DECIMAL数据类型接受数值,您可以为其定义精度和小数位数,如下所示:

column_name DECIMAL[(precision[,scale])]

精度是一个整数,指示该数字将包含多少个数字。比例尺是一个整数,表示小数点右边的位数。例如,数字2325.67的精度为6,小数位数为2。在查询中,DECIMAL(6,2)。

比例不能大于精度。如果未指定精度或小数位数,则默认精度为38,小数位数为0。

Decimal Data Type Storage Format Support

Drill可以从以下存储格式读取十进制数据类型,并将十进制数据类型写入以下存储格式:

  • parquet

Drill可以从以下存储格式读取十进制数据类型,但不能向其写入十进制数据类型:

  • hive
  • jdbc
  • avro

Decimal Type Options

您可以将SET命令与该planner.enable_decimal_data_type选项一起使用,以关闭和打开DECIMAL数据类型支持。如果禁用该planner.enable_decimal_data_type选项(将其设置为false),则Drill会将十进制文字视为DOUBLE。

复合类型

Drill支持以下复合类型:

  • Map
  • List
    map是一组名称/值对。map中的值可以是标量类型(例如字符串或整数),也可以是复杂类型(例如数组或其他映射)。数组是值的重复列表。数组中的值可以是标量类型,例如字符串或整数,或者数组可以是复杂类型,例如映射或另一个数组。

Drill在内部使用映射和数组数据类型来从数据源读取复杂和嵌套的数据结构。在此版本的Drill中,您无法在查询中按名称引用复合类型,但Drill支持来自数据源的数组值。例如,您可以使用index语法查询数据并获取数组元素的值:

a[1]

您可以使用点表示法来引用映射中键的值:

t.m.k

ANY Type

ANY类型是Drill的一项关键技术进步,使它能够解决较晚的键入问题。Drill在内部使用ANY类型,您可能会在DESCRIBE或其他命令的输出中看到对ANY的引用。您不能在此版本中将值强制转换为ANY类型。

使用ANY类型,解析器将解析某个值的类型的问题推迟到查询实际运行之前。到那时,Drill为每个记录批次提供了一个经验模式,可用于最终代码生成和优化。如果经验模式由于数据处理的更改而发生更改,则Drill会根据需要重新生成代码。

drill支持的数据类型相关推荐

  1. Sqlite3支持的数据类型 日期函数 Sqlite3 函数

    Sqlite3支持的数据类型 NULL INTEGER REAL TEXT BLOB 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数. interger 32 位元 ...

  2. Sqlite3支持的数据类型 日期函数以及相关 函数

    Sqlite3支持的数据类型 NULL INTEGER REAL TEXT BLOB 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数. interger 32 位元 ...

  3. Java中switch都可以支持哪些数据类型

    Java中switch都可以支持哪些数据类型 在JDK1.5之前,switch循环只支持byte short char int四种数据类型. JDK1.5 在switch循环中增加了枚举类与byte ...

  4. 下列数据类型中python不支持的是_ 下列选项中 ,Python 不支持的数据类型有 ( ) 。_学小易找答案...

    [单选题] 下列标识符中 , 合法的是 ( ) . [简答题]说明轴承代号7204AC表达的含义. [判断题]type() 函数可以查看变量的数据类型. ( ) [名词解释]限界 [单选题]体育教学 ...

  5. Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透

    Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透 简单介绍一个redis? redis是内存中的数据结构存储系统,一个key-value类型的非关系型数据库,可持久化的数据库 ...

  6. datagrid如何获取一行数据中的某个字段值_redis 所支持的数据类型以及其应用场景...

    1.支持的数据类型 redis 支持 String.hash.list.set.Sort set这几种数据类型,可用于缓存.事件发布订阅.高速队列等场景. String是最常用的数据类型,它能够存储任 ...

  7. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

  8. Go支持自定义数据类型:使用type来定义,类似于数据类型的一个别名

    为了简化数据类型定义,Go支持自定义数据类型 基本语法: type 自定义数据类型名 数据类型 可以理解为 : 相当于起了一个别名 例如:type mylnt int ----->这时mylnt ...

  9. C51语言支持哪些数据类型,C51编译器支持的数据类型(1)

    1.1 C-51 编译器支持下列数据类型: 数 据 类 型 长 度 值 域 bit 1 字节 0 或 1 signed char 1 字节 -128-+127 unsigned char 1 字节 0 ...

最新文章

  1. linux 解压 tar.gz 报错 gzip: stdin: not in gzip format
  2. 每日一皮:周末到了,我以为我能休息一下
  3. oracle登陆认证方式
  4. python 3.8.0安卓_Python 3.8.0稳定版正式发布
  5. arcsde 和oracle(双机热备)分布式安装(转载)
  6. iterator remove_Iterator与fast-fail机制
  7. 【转】struct epoll_event
  8. ApacheCN PythonWeb 译文集 20211028 更新
  9. Java基础篇:方法重载
  10. 蓝桥杯集训之开训第一课
  11. 批处理添加桌面快捷方式
  12. 实验题7.1 实现二分查找的算法
  13. 万彩办公大师OfficeBox3.1.0(小小工具箱几乎满足各种办公需求)
  14. 客服在线咨询工具|即时聊天客服系统下载安装(包含APP)
  15. 【Python爬虫】爬取新浪微博评论看网友如何评价NBA季后赛火箭VS爵士G3
  16. RVM怎么下载和管理ruby版本 - 猿码设计师 ruby rvm
  17. 二元一次方程组计算机及过程,二元一次方程组计算题过程及答案
  18. 点聚WebOffice组件介绍
  19. Vue 项目对接接口数据
  20. SpringBoot打成jar包时访问templates下的html出错或访问不到

热门文章

  1. NB-IoT中DCI Format N0格式解析
  2. 祝福版的3D标签云动画特效
  3. 在Access中使用SQL语句
  4. SaaS 创业公司HappyCo 完成 750 万美元 A 轮融资
  5. CSS ::Selection
  6. Linux系统下提示磁盘空间满,但实际占用却很小
  7. c语言数字下标错误怎么改,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
  8. 新《亮剑》热播 甘婷婷身陷激情燃烧恩爱夫妻情
  9. Prometheus 监控之 Blackbox_exporter黑盒监测 [icmp、tcp、http(get\post)、dns、ssl证书过期时间]
  10. 计算机机柜结构,​机柜知识大全!