找出两个表之间的可连接数据类型
Find out join-able datatypes between two tables
我有两个观点。 V1 和 V2。我有 columnNames 及其各自的数据类型。
有没有办法找出哪些列(数据类型)可以作为 V1 和 V2 之间的连接条件。
示例:
V1 ->
ID:整数
名称:varchar
出生日期:日期
V2->
ID: BIGINT
工资:实际
性别:布尔值
所以如果我想执行连接,我需要 return 给用户:
V1 -> ID(Integer) 可以与 V2 -> ID,Salary 合并。 (性别不能存在,因为不能使用布尔数据类型执行连接)
同样V1 -> Name(varchar)可以与(ID, Salary)连接
所以最后我需要一个 JSON :
{ ID : ID,工资 }
{姓名:身份证,工资}
有什么方法可以确定两种数据类型是否可以连接?
谢谢。
好的,所以您实际上 没有 定义两个 table 如何组合在一起的数据模型。这听起来像是 "user side reporting tools" 中的一种,其中应该能够以 table 形式任意连接数据。
这一切都很好,但这意味着对于如何提出潜在的加入标准没有硬性规定。在这种情况下,您将需要经验法则,又名 'heuristics'。
此类启发式方法已在许多工具中实现,通常不遵循任何 "standard" 但大多数情况下(至少,我所看到的)尝试遵循常识。
这样的规则之一肯定是:
"When I see a bird that walks like a duck and swims like a duck and
quacks like a duck, I call that bird a duck" quote reference
我的意思是:您尝试匹配 在一起 的数据类型,至少在域级别。因此,时间日期列可以与其他时间日期列一起使用,货币列可以与其他货币列一起使用,地址列集与其他地址列集一起使用。
这种匹配不会帮助找到有意义的联系,但它们可以帮助剔除那些完全没有任何意义的联系。
不幸的是,这种方法比仅仅查看用于存储数据的技术数据类型要复杂得多。例如,日期可以很容易地存储在任何类型的数据中。存储在文本列中的日期很常见 - 因此您需要尝试找出这种情况。
提示可能是列名('date'、'dt'、'day' 等?)或实际内容(格式匹配 'YYYY-MM-DD'或 'DDMMYY' 或“....”)。
其他列类型可能存在类似提示,成功预测正确的数据域是数据探索工具的主要任务之一。由于数据通常是杂乱的,这不是一项简单的任务。
回到你原来的问题:没有 HANA 功能可以为你做这件事,而且在只查看技术数据类型(可能 simple/stupid 以涵盖除简单测试用例之外的任何内容)和广泛的数据类型之间几乎没有什么区别一组用于猜测列条目的正确语义域的启发式方法。
我有两个观点。 V1 和 V2。我有 columnNames 及其各自的数据类型。 有没有办法找出哪些列(数据类型)可以作为 V1 和 V2 之间的连接条件。
示例:
V1 ->
ID:整数
名称:varchar
出生日期:日期
V2->
ID: BIGINT
工资:实际
性别:布尔值
所以如果我想执行连接,我需要 return 给用户:
V1 -> ID(Integer) 可以与 V2 -> ID,Salary 合并。 (性别不能存在,因为不能使用布尔数据类型执行连接)
同样V1 -> Name(varchar)可以与(ID, Salary)连接
所以最后我需要一个 JSON : { ID : ID,工资 } {姓名:身份证,工资}
有什么方法可以确定两种数据类型是否可以连接?
谢谢。
好的,所以您实际上 没有 定义两个 table 如何组合在一起的数据模型。这听起来像是 "user side reporting tools" 中的一种,其中应该能够以 table 形式任意连接数据。
这一切都很好,但这意味着对于如何提出潜在的加入标准没有硬性规定。在这种情况下,您将需要经验法则,又名 'heuristics'。
此类启发式方法已在许多工具中实现,通常不遵循任何 "standard" 但大多数情况下(至少,我所看到的)尝试遵循常识。 这样的规则之一肯定是:
"When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck" quote reference
我的意思是:您尝试匹配 在一起 的数据类型,至少在域级别。因此,时间日期列可以与其他时间日期列一起使用,货币列可以与其他货币列一起使用,地址列集与其他地址列集一起使用。
这种匹配不会帮助找到有意义的联系,但它们可以帮助剔除那些完全没有任何意义的联系。 不幸的是,这种方法比仅仅查看用于存储数据的技术数据类型要复杂得多。例如,日期可以很容易地存储在任何类型的数据中。存储在文本列中的日期很常见 - 因此您需要尝试找出这种情况。
提示可能是列名('date'、'dt'、'day' 等?)或实际内容(格式匹配 'YYYY-MM-DD'或 'DDMMYY' 或“....”)。
其他列类型可能存在类似提示,成功预测正确的数据域是数据探索工具的主要任务之一。由于数据通常是杂乱的,这不是一项简单的任务。
回到你原来的问题:没有 HANA 功能可以为你做这件事,而且在只查看技术数据类型(可能 simple/stupid 以涵盖除简单测试用例之外的任何内容)和广泛的数据类型之间几乎没有什么区别一组用于猜测列条目的正确语义域的启发式方法。