此页面包含有关设置和使用ODBC连接器配置单元的详细信息。此页面包含了以下主题:
开始之前
该MAPR蜂房的ODBC连接器是一个ODBC驱动程序的Apache蜂巢0.7.0及更高版本,与符合ODBC 3.52规范。使用ODBC驱动程序,配置一个数据源名称(DSN)的定义,它指定如何连接到配置单元。的DSN通常是由操作系统进行管理,并且可以由多个应用程序。有些应用程序不使用的DSN。您将需要参考您的特定应用程序的文档来了解如何连接使用ODBC。
标准查询语言数据库是SQL。HiveQL,标准查询语言蜂房,包括ANSI SQL-92的子集。连接使用ODBC HIVE应用程序可能需要修改查询,如果查询使用的SQL功能,是不存在的蜂房。使用SQL应用程序会识别HiveQL,但可能无法提供进入HiveQL特定的功能,如多表插入。
请参阅HiveQL维基长达最新信息HiveQL。
在SQL连接器
在SQL连接器功能转换标准的SQL-92查询转换为等效的HiveQL查询。在SQL连接器进行语法翻译和结构转型。例如:
- 带引号的标识符:当引用标识符,HiveQL使用反引号(
`
),而SQL使用双引号(“
)即使在驱动程序报告后面引号作为引号字符,一些应用程序仍然会产生双引号的标识符。 - 表别名:HiveQL不支持表之间的AS关键字
参考和它的别名。 - 在
JOIN
,INNER JOIN
和CROSS JOIN
的SQL语法被翻译成HiveQLJOIN
语法。 - SQL
TOP N
查询转化为HiveQL限制
查询。
软件和硬件要求
要在Windows上使用MAPR蜂房的ODBC连接器要求:
- 使用Windows®7专业版或Windows®2008 R2。包括32位和64位版本都支持。
- 微软的Visual C + + 2010可转散发套件(运行使用Visual C + +中不具有的Visual C + + 2010的计算机上安装开发的应用程序所需的运行时间。)
- Hadoop集群安装了蜂房的服务和运行。你应该从群集管理员的主机名或IP地址蜂房服务,该服务运行的端口找出来。(为蜂巢的默认端口为10000。)
安装和配置
有连接器的32位和64位应用程序的版本。64位版本的连接器仅适用于64位的DSN,32位连接器仅适用于32位的DSN。由于64位Windows机器上可以同时运行64位和32位应用程序,以建立的DSN与这两种类型的应用程序一起使用安装连接器的两个版本。如果两个32位连接器和64位连接器的安装,您必须配置的DSN为各自独立,在各自的数据源管理员。
要安装蜂巢的ODBC连接器:
- 运行安装程序即可开始使用:
- 要安装64位连接器,下载并运行
http://package.mapr.com/tools/MapR-ODBC/MapR_odbc_2.1.0_x64.exe
。 - 要安装32位连接器,下载并运行
http://package.mapr.com/tools/MapR-ODBC/MapR_odbc_2.1.0_x86.exe
。
- 要安装64位连接器,下载并运行
- 请执行下列步骤,点击下一步后,每个:
- 接受许可协议。
- 选择一个安装文件夹。
- 在信息窗口中,单击下一步。
- 在完成... 窗口中,单击Finish(完成)。
- 安装对应你的蜂巢服务器的DSN。
要创建一个数据源名称(DSN)
- 从打开开始菜单中的数据源管理器。例如:开始> MAPR蜂巢ODBC驱动程序2.0> 64位ODBC驱动程序管理器
- 在用户DSN选项卡中单击添加以打开创建新数据源对话框。
- 选择MAPR蜂房的ODBC连接器,然后单击Finish(完成)以打开蜂房ODBC驱动程序的DSN设置窗口。
- 输入蜂房实例的连接信息:
- 数据源名称 -指定的DSN的名称。
- 说明 -输入DSN的说明(可选)。
- 主机 -输入运行HiveServer1或HiveServer2服务器的主机名或IP地址。
- 端口 -输入监听端口为配置单元的服务。
- 数据库 -保留为
默认
连接到默认配置单元数据库,或者输入特定的数据库名称。 - 蜂巢服务器类型: -设置为HiveServer1或HiveServer2。
- 身份验证 -如果您使用的是HiveServer2,设置如下。
- 机制: -设置为您所使用的身份验证机制。该MAPR ODBC驱动程序支持用户名,用户名和密码,用户名和密码通过SSL认证。
- 用户名: -设置为运行查询的用户。
- 密码: -用户的密码,如果你选择的认证机制要求之一。
- 单击测试以测试连接。
- 当你确定连接正常,请单击Finish(完成)。你的新连接将出现在用户数据 源列表。
在DSN配置SSL
请从DSN的ODBC数据源管理器窗口,然后单击配置以显示设置对话框。从设置对话框,单击高级选项...,以显示高级选项对话框。
- 在SSL窗格中,单击以旁边的复选框允许通用名主机名不匹配,控制驱动程序是否允许一个CA的公用名称
颁发的证书不匹配蜂房服务器的主机名。对于自签名证书,驾驶员总是允许该证书的公共名称不匹配的主机名。 - 如果您希望指定一个本地受信任的证书文件,请单击浏览旁边的可信证书字段,浏览到您的位置
cacerts.pem
文件。默认设置使用与安装驱动程序的可信CA证书的PEM文件。
高级选项
- 选择使用原生查询复选框来禁用SQL连接器功能。在SQL连接器功能已被添加到驱动程序转换应用到由应用程序发出的将它们转换成HiveQL一个等价形式的查询。如果应用程序是蜂房知道,并且已经发出HiveQL然后关闭SQL连接器功能避免了
查询转换的额外开销。 - 选择快速运行SQLPrepare复选框推迟查询执行
SQLExecute
。当使用原生查询模式下,驱动程序将执行HiveQL查询来检索结果集元数据运行SQLPrepare
。作为结果,运行SQLPrepare
可能会很慢。如果调用后不需要结果集元数据启用此选项运行SQLPrepare
。 - 在取每块行字段中,键入每块被提取的行数。任何正32位整数是有效的。性能提升边际超出10000的默认值
的行。 - 在默认的字符串列长度字段中,键入默认
字符串
列的长度使用。蜂房不提供长度字符串
在其列元数据列。此选项允许您调整长度的字符串
列。 - 在十进制数列缩放字段中,键入的最大位数到小数点的数字数据类型的权利。
- 要允许一个CA颁发SSL证书的通用名称,以小组赛不蜂房服务器的主机名,选择允许通用名主机名不匹配的复选框。此设置仅适用于用户名和密码(SSL)身份验证机制,并通过其他身份验证机制忽略。
- 输入包含在受信任的证书文件的路径信任证书编辑框来配置驱动程序从指定的文件使用SSL时验证蜂房服务器加载证书。这是只适用于用户名和密码(SSL)身份验证机制,并通过其他身份验证机制被忽略。如果该设置没有设置驱动程序将默认使用的驱动程序安装可信CA证书的PEM文件。
- 要创建一个服务器端的属性中,单击添加按钮,然后在Key和Value字段中键入适当的值,然后单击OK(确定)。点击编辑按钮来改变现有的属性或删除来删除一个属性。
- 如果您选择了蜂巢服务器2作为蜂房服务器类型,然后选择或清除应用服务器端性能的查询需要复选框。如果您选择了蜂巢服务器2,然后将应用与查询服务器端属性复选框默认选中。选中该复选框配置驱动程序以应用您可以通过打开一个会话到蜂巢服务器时执行一个查询设置每个服务器端属性。清除该复选框配置驱动程序使用一个更有效的方法来应用服务器端的属性,并不涉及额外的网络往返跳闸。一些蜂房服务器2生成是不与更有效的方法兼容。如果您将服务器端属性不生效时,复选框被清除,然后选中相应的复选框。如果您选择了蜂巢服务器1的蜂房服务器类型,然后将应用服务器端性能的查询复选框被选中并且不可用。
配置DSN的身份验证
某些客户端应用程序,如画面,提供用于连接到数据源使用一个驱动程序,而不一个DSN一些支持。连接使用ODBC数据源应用程序发送的数据源中定义相应的身份验证凭据的工作与蜂巢服务器2。应用程序是蜂巢服务器1察觉,但不能蜂巢服务器2认识和连接使用一个DSN-less连接不会有一个设备发送身份验证凭据HIVE服务器2。
您可以与身份验证凭据使用驱动程序配置工具配置ODBC驱动程序。
要配置一个DSN-less连接驱动程序的身份验证:
- 启动驱动程序配置从程序开始菜单。
- 从下拉列表中选择一个蜂房服务器类型。
- 请从下拉式身份验证机制,然后再配置任何需要的字段,适合于该机制。
- (可选)单击高级,并配置任何所需的高级选项。
运行SQLPrepare优化
该连接器目前使用的查询执行,以确定运行SQLPrepare的结果集的元数据。这样做的缺点是,运行SQLPrepare是缓慢的,因为查询执行趋于缓慢。您可以配置连接器以加快运行SQLPrepare如果你不需要的结果集的元数据。要更改运行SQLPrepare的行为,创建一个字符串值NOPSQLPrepare根据您的DSN。如果该值被设置为非零值时,运行SQLPrepare将不使用查询执行导出结果集的元数据。如果该注册表项没有定义,默认值是0。
笔记
数据类型
以下数据类型的支持:
类型 |
描述 |
---|---|
TINYINT | 1字节的整数 |
SMALLINT | 2 - 字节整数 |
诠释 | 4字节整数 |
BIGINT | 8字节整数 |
持股量 | 单精度浮点数 |
双 | 双精度浮点数 |
十进制 | 十进制数 |
布尔 | TRUE / FALSE值 |
STRING | 字符序列 |
TIMESTAMP | 日期和时间值 |
尚未支持:
- 总的类型(ARRAY,MAP和结构)
HiveQL注意事项
CAST功能
HiveQL不支持CONVERT函数,它使用CAST函数来执行类型转换。例如:
CAST(AS的<expression> <TYPE>)
使用CAST
在HiveQL:
- 使用HiveQL名称由蜂房中的所支持的八个数据类型
CAST
表达式。例如,转换到1.0的整数,使用CAST(1.0 AS INT)的
,而不是CAST(1.0 AS SQL_INTEGER)
。 - 在蜂房不会做了一系列检查
CAST
操作。例如,CAST(1000000 AS SQL_TINYINT)
返回一个TINYINT
值64,而不是预期的错误。 - 与SQL,蜂巢返回
空值
,而不是一个错误,如果它未能转换数据。例如,CAST(“STRING”为INT)
返回null。
使用CAST
与布尔
值:
- 布尔值
TRUE
转换为数值1
- 布尔值
FALSE
转换为数字值0
- 数值
0
转换为布尔值FALSE
,任何其他数字转换为TRUE
- 空字符串转换为布尔值
FALSE
;其他任何字符串转换为TRUE
该HiveQL STRING
类型存储文本字符串,并对应于SQL_LONGVARCHAR
数据类型。该CAST
操作成功将字符串转换为数字,如果字符串只包含数字字符,否则转换失败。
你可以调整用于列长度字符串
列。要更改报告的默认长度字符串
列,添加注册表项DefaultStringColumnLength
根据您的DSN,并指定一个值。如果该注册表项没有定义,为1024个字符的预设长度被使用。
分隔符
该连接器采用勤俭节约连接到蜂巢服务器。蜂巢返回HiveQL查询的结果集作为换行符分隔行的字段都是用制表符分隔。蜂房目前并没有逃脱在该领域的任何制表符。请务必在逃跑的蜂房数据的任何选项卡或换行字符,indlucing平台特定的换行符的字符序列,如换行符(LF),用于在UNIX / Linux / Mac OS X上的/ etc,回车/换行(CR / LF )对于Windows和回车符(CR)为老年Macintosh平台。
在应用笔记
Microsoft Access中
测试版 | “2010”(= 14.0),32位和64位。 |
笔记 | 链接的表不可用目前。 |
微软的Excel /查询
测试版 | “2010”(= 14.0),32位和64位。 |
笔记 | 从数据色带,使用从OTH并选择从数据连接向导或从Microsoft Query。前者需要一个预先定义的DSN而后者支撑动态创建一个DSN。您可以通过OLE DB使用的ODBC驱动程序的ODBC驱动程序的桥梁。 |
画面桌面
测试版 | 7.0,仅32位。作品只有ODBC驱动程序的卷。 |
笔记 | 在此之前7.0.n版本,你需要安装一个贸发局最大化驱动程序的能力。 |