从命令行更改配置单元中的模式

changing schemas in hive from command line

如何从命令行更改配置单元架构?

我需要 运行 hql 脚本来创建 table,但是那些 table 需要在特定模式中创建。

我正在使用 hive -f createTable.hql 创建 table

您可以在 hql/ddl 语句中执行此操作。

USE schemaName;

create table.....
....

因此,基本上您可以通过使用 "USE" 语句告诉配置单元使用特定模式。 您也可以在 hive CLI 中编写它。

您可以将参数传递给脚本:

hive -hiveconf myschema=newschema -f createTable.hql

然后在脚本中:

CREATE SCHEMA IF NOT EXISTS ${hiveconf:myschema}
LOCATION "/foo/dir";

USE ${hiveconf:myschema};

您随后创建的任何表都将位于该工作模式中。您还可以将变量作为名称的一部分:

hive -hiveconf name=Bob -f createTable.hql

在脚本中:

CREATE SCHEMA IF NOT EXISTS ${hiveconf:name}_SCHEMA
LOCATION "/foo/dir";

USE ${hiveconf:name}_SCHEMA;

如果您想通过命令行在特定模式中运行查询,您可以使用以下命令:

hive -e "use schema_name; show tables;"

但是 -f 和 -e 不能在同一个命令中同时使用。