beeline -
时间: 2023-07-05 21:25:06 浏览: 142
Beeline 是 Apache Hive 提供的一个命令行工具,用于连接 HiveServer2,并执行 HiveQL 查询语句。Beeline 支持 JDBC 连接,并提供了一些额外的特性,例如多行输入、自动完成、历史命令记录等。
Beeline 的命令行格式为:
```
beeline [-u <jdbc-url>] [-n <username>] [-p <password>] [<connection-properties>]
```
其中,`-u` 参数指定 JDBC 连接 URL,`-n` 参数指定用户名,`-p` 参数指定密码,`<connection-properties>` 参数用于指定其他连接属性,例如 SSL 配置、Kerberos 认证等。
使用 Beeline 连接到 HiveServer2 后,可以执行类似于 SQL 的 HiveQL 查询语句,例如:
```
beeline> SELECT * FROM my_table;
```
Beeline 还提供了一些内置命令,例如 `!connect` 用于连接到其他 JDBC 数据库,`!tables` 用于列出当前数据库中的所有表格等。可以使用 `!help` 命令查看所有内置命令。
需要注意的是,Beeline 连接到 HiveServer2 时需要指定正确的 JDBC URL,并确保 HiveServer2 正在运行。
相关问题
beeline -e "SELECT from_unixtime(cast(utc_to_timestamp(one.time/1000,'GMT-8')as bigint),'yyyy-MM-dd') FROM my_table one;" 不能识别one . /,但使用beeline -f 就可以执行
根据您提供的信息,我可以初步判断是因为在beeline命令行中,使用-e参数后跟的是一个字符串,而不是一个文件,因此无法使用one变量。
而在使用-f参数时,beeline会读取指定的脚本文件,并将其中的内容作为输入,因此可以使用one变量。
如果您仍然想使用-e参数,并且需要使用变量,可以尝试在字符串中使用双引号,例如:
beeline -e "SELECT from_unixtime(cast(utc_to_timestamp(\${one}.time/1000,'GMT-8')as bigint),'yyyy-MM-dd') FROM my_table;" --hivevar one=one
其中--hivevar参数指定了要传递给查询的变量one,并将其设置为one。在查询中,可以使用${one}来引用该变量。
beeline -e ‘sql语句’不是识别表的别名
是的,"beeline -e 'sql语句'" 命令并不会识别表的别名。这是因为这个命令只是一个简单的方式来执行 SQL 查询,它并没有对查询的表或列进行解析。如果你需要使用表的别名,你应该在 SQL 查询中显式地使用它们。例如,你可以使用类似于以下的查询语句来使用表的别名:
SELECT t1.column1, t2.column2 FROM table1 AS t1 JOIN table2 AS t2 ON t1.column3 = t2.column4;
在这个查询中,"table1 AS t1" 和 "table2 AS t2" 是表的别名,它们可以在查询中被使用来引用这些表的列。