首页 > 解决方案 > 如何在 HiveQL 脚本中使表名动态化?

问题描述

我想创建一个 hiveQL 脚本,其中第一条语句是“Create Table ...”。这个脚本将被不同的团队使用,如 Dev、QA 等,所以我想让表名动态化,即当脚本运行时,它会要求插入表名,每个团队都会提供特定的表名。

标签: hive

解决方案


在脚本中使用hivevar参数替换 table_name:

#!/bin/bash

#Set table name
TABLE_NAME=your_schema.your_table

#Or ask user to input table_name
echo "Please input table_name"
read TABLE_NAME

#call your script
hive -hivevar table_name="$TABLE_NAME" -f your_script.hql

然后your_script.hql你可以使用变量:

CREATE TABLE ${hivevar:table_name};

或者简单地调用提供 table_name 作为参数的 hql 脚本:

hive -hivevar table_name="myschema.mytable" -f your_script.hql

推荐阅读