hive - 如何在 HiveQL 脚本中使表名动态化?
问题描述
我想创建一个 hiveQL 脚本,其中第一条语句是“Create Table ...”。这个脚本将被不同的团队使用,如 Dev、QA 等,所以我想让表名动态化,即当脚本运行时,它会要求插入表名,每个团队都会提供特定的表名。
解决方案
在脚本中使用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
推荐阅读
- node.js - 如何使用现有的 TLS 客户端套接字创建 nodejs HTTP 服务器?
- r - 无法在 R 中看到输出图像闪亮
- django - 没有更改代码,但我的程序现在无法运行
- c# - MSTest 代码覆盖率在 UWP 应用程序中返回空
- android - Android Deeplink 无法通过通知工作
- python - 如何让垂直和水平滚动条都工作
- numeric - 解决。数字。知道 Maple 使用了哪种方法
- reactjs - 设置 useContext 的 React 可重用函数
- android - 如何使用 Kotlin 在 Android Studio 中使用 WebView 阅读 pdf?
- javascript - CSS 表格数据被压缩(?)