从命令行更改配置单元中的模式
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 不能在同一个命令中同时使用。
如何从命令行更改配置单元架构?
我需要 运行 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 不能在同一个命令中同时使用。