• 沒有找到結果。

DLI Beeline 简介

DLI Beeline是一个用于连接DLI服务的客户端命令行交互工具,该工具基于DLI JDBC实 现,提供SQL命令交互和批量SQL脚本执行的功能。

准备工作

在使用DLI Beeline前,需要进行如下操作:

1. 授权。

DLI使用统一身份认证服务(Identity and Access Management,简称IAM)进行 精细的企业级多租户管理。该服务提供用户身份认证、权限分配、访问控制等功 能,可以帮助您安全地控制华为云资源的访问。

通过IAM,您可以在华为云账号中给员工创建IAM用户,并使用策略来控制他们对 华为云资源的访问范围。

目前包括角色(粗粒度授权)和策略(细粒度授权)。具体的权限介绍和授权操 作请参考《数据湖探索用户指南》。

2. 创建队列。在“队列类型”中选择“SQL队列”,即SQL作业的计算资源。

DLI管理控制台中,创建队列的操作入口有三个,分别在“总览”页面、“SQL编 辑器”页面和“队列管理”页面。

– 单击总览页面右上角 进行创建队列。

– 在“队列管理”页面创建队列。

i. 在DLI管理控制台的左侧导航栏中,选择“队列管理”。

ii. 在“队列管理”页面右上角 进行创建队列。

– 在“SQL编辑器”页面创建队列。

i. 在DLI管理控制台的顶部菜单栏中,选择“SQL编辑器”。

ii. 在左侧导航栏的 页签,单击“队列”右侧的 创建队列。

说明

如果创建队列的用户不是管理员用户,在创建队列后,需要管理员用户赋权后才可使用。

关于赋权的具体操作请参考《数据湖探索用户指南》。

DLI 客户端工具下载

您可以在DLI管理控制台下载DLI客户端工具。

步骤1 登录DLI管理控制台。

步骤2 单击总览页右侧“常用链接”中的“SDK下载”。

步骤3 在“DLI SDK DOWNLOAD”页面,单击“huaweicloud-dli-clientkit-<version>”即 可下载DLI客户端工具。

说明

DLI客户端空间命名为“huaweicloud-dli-clientkit-<version>-bin.tar.gz”,支持在Linux环境中 使用,且依赖JDK 1.8及以上版本。

----结束

使用 DLI Beeline 连接服务端

使用DLI Beeline的机器安装JDK 1.8或以上版本并配置环境变量,推荐在Linux环境下 使用Beeline工具。

Welcome to DLI service ! beeline> !connect

Connecting from the default connection.properties

Connecting to jdbc:dli://dli.cn-north-1.myhuaweicloud.com/8fc20d97a4444cafba3c3a8639380003 Connected to: DLI service

jdbc:dli://dli.cn-north-1.myhuaweicloud... (not set)> show databases;

+---+

| databaseName | +---+

| bjhk |

| db_xd |

| dimensions_adgame |

| odbc_db |

10 rows selected (0.338 seconds)

用户也可以在启动beeline脚本时通过命令行选项设置连接参数,如下所示,如果连接 参数不全,Beeline会提示补全相关信息。

%bin/beeline -u 'jdbc:dli://dli.cn-north-1.myhuaweicloud.com/8fc20d97a4444cafba3c3a8639380003?

authenticationmode=aksk' Start Beeline

Connecting to jdbc:dli://dli.cn-north-1.myhuaweicloud.com/8fc20d97a4444cafba3c3a8639380003?

usehttpproxy=true;proxyhost=10.186.60.154;proxyport=3128;authenticationmode=aksk Enter region name: cn-north-1

Enter service name: DLI

Enter access key(AK): <real access key>

Enter secret key(SK): ****************************************

Enter queue name: default

Connected to: DLI service Welcome to DLI service !

jdbc:dli://dli.cn-north-1.myhuaweicloud... (not set)>

----结束

DLI Beeline 支持的命令

DLI Beeline支持一系列命令,每个命令以“!” 这个符号开始,例如“!connect”。具 体请参考表2-7。

2-7 DLI Beeline 支持的命令

命令 描述

!connect 通过输入连接参数的方式连接到DLI服务,若不输入参数,则加载默认 的“connection.properties”文件连接。

!help 打印命令行的帮助文档。

!history 展示命令行执行历史。

!outputfor mat

设置查询结果的输出格式,支持

table,vertical,csv2,dsv,tsv2,xmlattr,xmlelements,每一种格式的具体说 明详参见查询输出格式。

!propertie s

通过加载“connection.properties”文件连接到DLI服务。该功能与!

connect相同,但是可以指定连接配置文件。

!quit 退出beeline会话。

!run 执行一个SQL脚本。使用方法:

!run <scriptfile>

!save 将当前的会话属性保存至beeline.properties中,下次开启beeline时会 自动加载这些属性。

!script 将执行的命令保存至一个文件中。例如:

!script /tmp/mysession.script

执行该语句之后,后续的命令将被保存至“/tmp/mysession.script”。

再次执行!script,结束脚本记录。执行如下语句,将会重新执行记录下 来的命令。

!run /tmp/mysession.script

!set 设置Beeline变量,例如:

!set color true

!set后面不接参数则显示所有变量值。

!sh 执行一个Shell脚本。例如:

!sh <shellscript>

命令 描述

!sql 显性地执行一条SQL语句,beeline中不带命令的语句默认会转换成!sql 命令,sql语句必须以分号结尾。例如:

!sql <sql>

!dliconf 查看DLI 自定义配置。

DLI Beeline 支持的命令行选项

DLI Beeline支持的启动命令行选项请参考表2-8。

2-8 DLI Beeline 支持的启动命令行选项

命令行选项 描述

-u <database URL> 连接DLI JDBC的url,其中url需要采用单 引号括起来。使用方式:

beeline –u db_URL

-e <query> 需要执行的SQL语句,可以输入多条语 句,以分号间隔,语句需要采用单引号 括起来。

-f <file> 需要执行的脚本文件。

--dliconf property=value 待设置的DLI属性。

--property-file=<property-file> 通过指定的方式获取连接属性文件并连 接到DLI服务。

--help 打印命令行选项帮助。

查询输出格式

DLI Beeline支持多种查询结果输出格式,输出格式可以通过!outputformat指定。DLI Beeline支持的输出格式包括:table,vertical,csv2,dsv,tsv2,xmlattr,

xmlelements。

table

table格式输出的结果以表的形式展示,例如:

!outputformat table

select id, value, comment from test_table;

+---+---+---+

| id | value | comment | +---+---+---+

| 1 | Value1 | Test comment 1 |

| 2 | Value2 | Test comment 2 |

| 3 | Value3 | Test comment 3 | +---+---+---+

vertical

以行为单元组织数据,每一个属性以key-value的形式展示,例如:

!outputformat vertical

select id, value, comment from test_table;

id 1 value Value1

comment Test comment 1 id 2

value Value2

comment Test comment 2 id 3

value Value3

comment Test comment 3

csv2

以纯文本形式存储表格数据(数字和文本),使用逗号(,)作为分隔符,例如:

!outputformat csv2

select id, value, comment from test_table;

id,value,comment 1,Value1,Test comment 1 2,Value2,Test comment 2 3,Value3,Test comment 3

dsv

每一行储存一条记录, 每条记录的各个字段间以制表符作为分隔,例如:

!outputformat dsv

select id, value, comment from test_table;

id|value |comment 1 |Value1|Test comment 1 2 |Value2|Test comment 2 3 |Value3|Test comment 3

tsv2

每一行储存一条记录, 每条记录的各个字段间以空格作为分隔,例如:

!outputformat tsv2

select id, value, comment from test_table;

id value comment 1 Value1Test comment 1 2 Value2Test comment 2 3 Value3Test comment 3

xmlattr

用于在SQL查询返回的 XML 元素中设置属性的函数,例如:

!outputformat xmlattr

select id, value, comment from test_table;

<resultset>

<result id="1" value="Value1" comment="Test comment 1"/>

<result id="2" value="Value2" comment="Test comment 2"/>

<result id="3" value="Value3" comment="Test comment 3"/>

</resultset>

xmlelements

将一个关系值转换为XML元素的函数,格式为<elementName>值</

elementName>,例如:

!outputformat xmlelements

select id, value, comment from test_table;

<resultset>

<result>

<id>1</id>

<value>Value1</value>

<comment>Test comment 1</comment>

</result>

<result>

<id>2</id>

<value>Value2</value>

<comment>Test comment 2</comment>

</result>

<result>

<id>3</id>

<value>Value3</value>

<comment>Test comment 3</comment>

</result>

</resultset>