mysql - 是否可以选择从 Hive 中的哪个数据库中选择
问题描述
我有一张桌子,但在两个不同的数据库中。如何根据某些标志查询以仅从其中一个中选择?
例如:
insert into db2.table2
select * from db1.table1 if flag is true else select * from db2.table
此 sudo 查询的相应查询(有效)是什么?
解决方案
您可以使用 shell 传递数据库参数
#!/bin/bash
#calculate database as you want here
db=db1
#substitute variable and execute
hive -e "insert into db2.table2
select * from $db.table1"
您可以使用 UNION ALL 在 Hive 中执行类似操作,尽管这不是有效的方法:
INSERT OVERWRITE TABLE OUTPUT_TABLE
SELECT * FROM DB1.TABLE1 WHERE (${FLAG_one} = TRUE) --any boolean condition
UNION ALL
SELECT * FROM DB2.TABLE1 WHERE (${FLAG_one} = FALSE) --any boolean condition
推荐阅读
- swift - Altering Existing MKOverlays - How to identify which to alter?
- haskell - 了解副作用:分配内存是纯操作吗?
- azure - 在不同的日子和不同的时间设置 Cron 表达式
- azure - 使用 Spline 在没有 mongodb 的情况下使用 Dababricks 获取数据沿袭
- java - 设置 recyclerView 项目高度 wrap_content
- c# - 通过类的字符串名称将 JSON 对象反序列化为运行时动态创建的特定实例
- mysql - JOIN 语句的数量如何影响查询的持续时间/获取时间?我有一个简单的、反直觉的例子
- python-3.x - 根据行值合并数据框
- ocr - 正方体无法识别随机英文字符序列
- neo4j - 临时创建节点和关系?