【问题标题】:Understanding OUTER JOIN for DateTimes, Tableau了解 DateTimes、Tableau 的 OUTER JOIN
【发布时间】:2019-08-11 05:43:45
【问题描述】:

我正在尝试了解外连接在 tableau 中的用途和限制(在本例中为 tableau online)。我发现画面的行为不是我所期望的。 我在下面提供了对我的问题的详细描述,以避免任何歧义,因为我不知道从哪里开始了。我希望我没有过火(欢迎编辑)。

我的用例的细节

我正在两个以特定时间间隔记录自然数据的 .csv 文件之间创建连接。一组以小时为间隔,另一组以分钟为间隔(因各种因素而异)。

“雨”数据集(1):
日期和时间 |雨
01/01/2018 00:00 | 0
01/01/2018 01:00 | 0.4
01/01/2018 02:00 | 1.4
01/01/2018 03:00 | 0.4

“填充”数据集 (2):
日期和时间|填充
24/04/2018 06:04 | 78
24/04/2018 12:44 | 104
24/04/2018 18:51 | 96
25/04/2018 00:20 | 84

不出所料,我的数据中有很多空值(这对我来说不是问题):

  • “雨”的时间序列较长
  • 在任何一个数据集中,大多数日期时间在另一个数据集中没有精确的等价物

screenshot of data join here

我想要达到的目标

我正在尝试绘制两个数据集的图表,以便我可以通过以下所有方式将完整的数据集相互比较:

  • 每月或每年汇总(平均)
  • 每小时汇总(平均)
  • 准确时间

问题(以及我的有限假设)

  1. 在画面中绘制后,某些值具有'null' DateTime 值*
  2. 一旦在画面中绘制出来,就好像很多点都丢失了** Graphing using 'Fill' time series
    Graphing using 'Rain' time series
  3. 我曾假设(给出'Date and Time(s)' 的完整外连接)tableau 将按时间顺序使用公共日期时间序列连接数据集

* 我曾假设连接条件不可能有'null' 值而不引发错误。此外,数据干净且统一
** 这是每月汇总时,我认为不会受到任何(如果有)每小时/分钟不匹配的影响

所以,最后是问题#

在阅读在线帮助文​​档时,我一直在努力寻找一种原生于 tableau 的功能来帮助我实现这些特定目标。我得出了一个令人担忧的结论,即画面不是为这种类型的“可视化分析”而构建的。
是否有一种原生于 tableau 的功能,可以让我按照我上面描述的方式组合数据?

我考虑过的方法

由于我有两个 .csv 文件,我可以将这两个文件组合起来,以便在一个高列表中拥有完整、细化的 'Date and Time' 字段。
但是,我想找到一种对 tableau (online) 很自然的方法,因为在未来,至少有一些数据将来自数据库 (postgres) 连接其他可能必须保留作为.csvexcel 文件上传。

我再问一次

关于如何(以及为什么)使用 tableau,我忽略了什么? 我不是在寻找一个完整的解决方案,但我可以使用哪些工具来实现这一目标?

非常感谢您的帮助

【问题讨论】:

  • Join 是一个数据库概念,用于使用其中具有共同值的某些字段“合并”两个数据集。如果您想知道 2018 年 3 月 1 日下午 3 点 30 分的雨量和填充值,并且两个表当时都有值,那么 join 就可以了。您所拥有的是具有共同值的日期时间字段。你应该怎么做才能“联合”表格(生成一个包含一个日期时间字段和两个值字段的表格,其中包含所有值(但有很多空白)。然后表格将处理聚合并正确给出聚合值。跨度>
  • @matt_black 我理解联合是两个或多个文件的串联。它会将数据“编织”在一起吗?或者在将数据放入可视化项时是否已处理此步骤?
  • 将数据放入可视化项时可以完成“编织”。 Tableau 将聚合时间字段(例如以天为单位),并将聚合当天的两个数据字段(即使没有一个特定时间字段匹配)。

标签: csv tableau-api


【解决方案1】:

您的数据库更具体地说,数据源处于不同的粒度级别,一个以小时为单位(较高级别的粒度),另一个以分钟为单位(较低的粒度级别),但您的要求不同

年/月 -- 高聚合度

每小时 -- 中等聚合

精确 -- 较低的聚合

当您在日期和时间上加入两个数据源(永远不会匹配)时,您会得到这些奇怪的结果。

可能的解决方案:

  1. 他们是一个画面准备工具,使用该工具并使两个数据源处于同一聚合级别,在您的情况下,数据集 2 将聚合到小时级别并连接两个表,在这种情况下您需要检查最后一个要求 (Exact times),因为我假设您正在寻找分钟级别的图表

  2. 其他解决方案是使用 混合,其中主数据源将是数据集 1,辅助数据源将是数据集 2,在这种情况下,您将获得所需的数据,其中 tableau 管理聚合和粒度。

告诉我进展如何

【讨论】:

  • 谢谢!将尽快尝试。我现在还有另外两种可行的方法,但我想“全部找到!” :)
【解决方案2】:

所以看起来好像有各种解决方案可用。
我现在想发布这个,但我会在有更多时间时重新编辑

选项 1

我发现的一个变通方法/解决方案是创建一个如上所述的计算字段here,然后根据这个时间序列绘制所有内容。
即使在创建了 20 多个工作表和大量仪表板之后,这对我来说也很有效。
如下所述,其他用途可能无法提供这种灵活性。
计算:

IFNULL([Date and Time (Fill.csv)],[Date and Time (Rain.csv)]))

选项 2

正如 matt_black 所提到的,数据的连接可以很好地完成这项工作。从零开始,它似乎不那么老套了,而且非常完美。
我很难在已使用的数据源上创建连接(将对此进行更多探索)

选项 3 ?

正如 Siva 提供的答案,混合可能是一种选择。
我还没有确认这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 2013-03-10
    • 2018-01-21
    • 2014-08-10
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2010-10-04
    相关资源
    最近更新 更多