hive beeline参数及示例用法

beeline 是一个用于连接 HiveServer2 的命令行工具。

一、beeline参数

使用beeline -u可以指定连接的URL。
例如,beeline -u jdbc:hive2://localhost:10000/default 可以连接到本地的HiveServer2服务。
如果需要用户名和密码进行连接,则可以使用 beeline -u jdbc:hive2://localhost:10000/default -n username -p password 的方式进行连接。如果密码不是在-p之后提供的,则 beeline 将在初始化连接时提示输入密码。

-–incremental=[true/false]  从Hive 2.3版本往后默认是true,在它之前是默认为false。
-–showHeader=[true/false]    展示列名是否在查询结果中。默认是true。
-–outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2]    结果展示的模式。默认是table。dsv可配合delimiterForDSV一起使用,设置分隔符
-–delimiterForDSV= DELIMITER    用于输出格式中划分值的界定符。默认是 '|',如果需要输入特殊符号,如 '\n001' ,'\x01' 等需在前面加$ ,例 --delimiterForDSV=$'\t'
-e    后跟sql语句
-f  后跟sql语句文件,文件里sql语句前面可以设置hive参数
--hiveconf 给Hive的配置属性赋值,--hiveconf 属性 = value
--hivevar 配置变量名称和值,--hivevar 名称 = value,可用于给 sql 文件传值,例如 -hiveconf etl_date=20231129


结果展示格式(在 outputformat 参数中设置)
展示形式主要是将一行值的字段按照不同分割符分开,主要包括五种分割输出格式:csv, tsv, csv2, tsv2, dsv,目前csv和tsv已经被csv2和tsv2替代了。
csv2,tsv2和dsv格式的含义分别是:
csv2使用的是逗号,
tsv2使用的是tab空格,
dsv是可配置的。对于dsv格式,分隔符可以通过用参数 delimiterForDSV 进行设置,默认是 '|'。


二、示例

1、beeline默认的输出格式为table模式,-–showHeader=默认是true

beeline -e 'select * from import_db.table_test' > test1.txt

2、去掉列名,-–showHeader=false

beeline --showHeader=false -e 'select * from import_db.table_test' > test2.txt

3、用逗号分割

beeline --outputformat=csv2 -e 'select * from import_db.table_test'  > test3.txt

4、用tab作为值之间的分割符

beeline --outputformat=tsv2 -e 'select * from import_db.table_test'  > test4.txt

5、使用dsv默认的分割符,即 '|'

beeline --outputformat=dsv -e 'select * from import_db.table_test'  > test5.txt

6、以 '\t' 作为值之间得分割符(–delimiterForDSV=$'\t')

beeline --outputformat=dsv --delimiterForDSV=$'\t' -e 'select * from import_db.table_test'  > test6.txt

7、以 '#' 作为值之间得分割符(–delimiterForDSV=$'#')

beeline --outputformat=dsv --delimiterForDSV=$'#' -e 'select * from import_db.table_test'  > test7.txt


beeline -u jdbc:hive2://localhost:10000/default --showHeader=true --outputformat=dsv --delimiterForDSV=$'\t' -e 'select * from import_db.test' > test.txt
beeline -u "jdbc:hive2://localhost:10000/default;principal=xxxx" -e "show create table import_db.test"

三、常用日期格式

date +%F  #2023-11-30
date +%Y%m  #202311
date +%Y%m%d  #20231130
date +%Y%m01  #20231101


date +%Y%m%d  #20231130
date -d "1 month ago" +%Y%m%d  #20231030
date -d "1 month ago" +%Y%m01  #20231001

date -d "last month" +%Y%m%d  #20231030
date -d "last month" +%Y%m01  #20231001

date -d "`date -d "last month" +%Y%m01` last day" +%Y%m%d  #20230930


# 上月末(月初前一天)
date -d "`date +%Y%m01` last day" +%Y%m%d
date -d "`date +%Y%m01` last day" +%Y%m%d  #20231031
date -d "`date +%Y%m01` -1 day" +%Y%m%d  #20231031

# 月初后1天
date -d "`date +%Y%m01` 1 day" +%Y%m%d  #20231102

cur_date=20231102
echo $cur_date |cut -c 1-6  #202311
date -d `echo $cur_date |cut -c 1-6`"01" +%F  #2023-11-01
date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) -1 day" +%Y%m%d  #20231031
date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) last month" +%Y%m%d  #20231001

date -d "$(date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) last month" +%Y%m%d) -1 day" +%Y%m%d  #20230930

#设置变量,获取年月
data_month=$(date +%Y%m)
data_file_${data_month}.dat

data_file_$(date +%Y%m).dat

# 跑批常用代码
cur_date=20231102
cur_date2=$(date -d "$(date -d `echo $cur_date |cut -c 1-6`"01" +%F) -1 day" +%Y%m%d)

beeline -u "jdbc:hive2://localhost:10000/default;principal=xxxx" -hiveconf cur_date=${cur_date} -hiveconf cur_date2=${cur_date2} -f test.sql

参考链接:

https://blog.csdn.net/sodaloveer/article/details/128617521


 

  • 44
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive Beeline可以通过以下命令执行SQL文件: ``` beeline -u jdbc:hive2://<host>:<port>/<database> -n <username> -p <password> -f <sql_file> ``` 其中,`<host>`是Hive服务器的主机名或IP地址,`<port>`是Hive服务器的端口号,`<database>`是要连接的数据库名称,`<username>`和`<password>`是连接Hive服务器的用户名和密码,`<sql_file>`是要执行的SQL文件的路径和文件名。 例如,如果要执行名为`test.sql`的SQL文件,可以使用以下命令: ``` beeline -u jdbc:hive2://localhost:10000/default -n hive -p hive -f /path/to/test.sql ``` 这将连接到本地主机上的Hive服务器,使用默认数据库和用户名/密码,然后执行`/path/to/test.sql`文件中的SQL语句。 ### 回答2: Hive是一款基于Hadoop的数据仓库工具,可以帮助我们对大量结构化和半结构化数据进行分析和查询。而Beeline则是Hive的一个命令行工具,它可以连接Hive Server,执行Hive命令和脚本,同时支持JDBC和ODBC连接,便于对外部的应用程序进行访问。 在Hive中,我们可以使用Beeline执行SQL文件来进行批量的数据处理和分析任务。具体的步骤如下: 1.创建SQL文件:首先,我们需要创建一个.sql文件,把需要执行Hive命令写在里面。 2.启动Beeline:然后,我们需要启动Beeline,输入命令“beeline -u jdbc:hive2://[IP]:[PORT]/[DATABASE] -n [USERNAME] -p [PASSWORD]”连接Hive Server。 3.运行SQL文件:在进入Beeline交互模式后,我们可以使用命令“!run [SQL文件路径]”来执行SQL文件。例如:“!run /home/user/sql/myfile.sql”。 4.查看执行结果:在SQL文件执行完毕后,我们可以使用Hive相关的命令来查看执行结果,如“show tables”、“select * from [table_name]”。 需要注意的是,执行SQL文件的过程中可能会出现如下问题: 1.文件编码:如果SQL文件的编码不正确,会导致Beeline无法正确解析文件中的命令。为了避免这个问题,我们应该使用UTF-8编码格式来编写SQL文件。 2.文件路径:如果SQL文件的路径不正确或无权限,Beeline也无法正确读取文件。我们应该确保SQL文件的路径正确,并且当前用户具有读取文件的权限。 3.SQL语法:如果SQL文件中语法出现问题,例如缺少分号或者表名错误等,Beeline会报错并停止执行。我们应该仔细检查SQL文件中的语法是否正确。 总之,使用Beeline执行SQL文件是Hive数据分析的重要组成部分,可以帮助我们更高效地处理大量数据,提高工作效率。 ### 回答3: Hive Beeline是一个交互式工具,用于与Hive服务器交互,可以执行SQL语句,并支持多种连接方式和配置参数。同时,Hive Beeline还具有执行本地脚本的功能,我们可以使用Hive Beeline执行SQL文件。 对于执行SQL文件的步骤,我们可以按照以下的方式进行: 1. 启动Hive Beeline。在终端或命令行窗口中,输入beeline命令,并使用连接参数连接Hive服务器。 2. 设置Hive服务器的连接参数。根据不同的服务器配置,可以指定不同的参数,比如用户名、密码、连接地址等等,这些参数需要通过命令行参数或者配置文件指定。 3. 进入交互模式。连接成功后,进入Hive Beeline的交互式模式。 4. 加载SQL文件。在交互模式下,使用run命令或者source命令加载SQL文件。这些命令可以指定文件路径或者URL,同时也支持在命令行中指定SQL语句,这样也可以直接执行SQL语句。 5. 执行SQL语句。加载SQL文件后,我们可以使用交互式模式下的命令执行SQL语句,比如select、create、insert等等。执行完成后,我们可以得到查询结果、数据表等等结果。 6. 退出交互模式。执行完成后,我们可以使用exit或者quit等命令退出Hive Beeline的交互模式。 总的来说,Hive Beeline执行SQL文件的步骤比较简单,仅需要加载文件和执行SQL语句,如果出现错误,可以使用命令行参数或者配置文件进行参数设置和调整,以达到最佳的执行效果。同时需要注意的是,在执行过程中需要保证Hive服务器的稳定性和正确性,避免出现数据飞行、重复等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值