使用Tableau分析多个Json

使用Tableau分析多个Json

问题描述:

我开始使用Tableau,并且我有一个涉及以JSON形式存储的多个网站日志的项目。我每天有一个日志约一个月,每个日志的权重约为500-600 Mb。使用Tableau分析多个Json

是否可以在Tableau中打开(并加入)多个JSON文件?如果是,如何?我可以并行加载它们,但不能加入它们。 编辑:我可以加载多个JSON文件并定义他们的关系,所以这是好的。我仍然有内存问题:

我很担心,通过加入他们所有,我没有足够的内存来使它工作。加载的文件是否存储在内部数据库的RAM中?

这样做的最好方法是什么?我应该先合并所有的JSON,还是将它们加载到数据库中并使用Tableau连接器?如果是这样,什么可能是一个很好的选择数据库?

我知道其中的一些问题是基于意见的,但我对此没有任何线索,我确实需要一些指导来开始。

+0

你想加入他们或联合他们吗?我相信使用Tableau的JSON驱动程序的UNION功能尚不可用。对于这一数据量,您可能希望提前进行预处理,过滤,汇总和索引 - 要么使用数据库,例如Parquet和Spark和/或Tableau提取器 –

+0

我每天都有相同的数据,所以我需要一个联盟。使用数据库时,tableau如何使用内存?它是在开始时加载所有内容,还是在需要时检索和聚合? – CoMartel

+0

Tableau将查询发送到数据库,然后根据查询结果集呈现可视化文件。返回的数据量取决于查询,这取决于您在Tableau中指定的内容。 Tableau缓存结果,并且您还可以创建一个提取,该提取充当持久的,可能被过滤和聚合的缓存。请参阅http://*.com/a/31171086/441979 –

对于这个数据量,您可能希望预先处理,过滤,汇总和索引它 - 要么使用数据库,例如Parquet和Spark和/或Tableau数据库。

如果您使用提取,您可能想过滤和聚合它们用于特定目的,请注意,如果您在提取时汇总数据,则需要注意您在可视化定义明确。像SUM(),MIN()和MAX()这样的附加函数是安全的。部分和的总和仍然是正确的总和。但是平均数和数数区分的数字区别往往不是。

Tableau将查询发送到数据库,然后根据查询结果集呈现可视化文件。返回的数据量取决于查询,这取决于您在Tableau中指定的内容。 Tableau缓存结果,并且您还可以创建一个提取,该提取充当持久的,可能被过滤和聚合的缓存。请参阅this related stack overflow answer

对于文本文件和数据提取,Tableau现在通过其数据引擎进程将它们加载到内存中 - 将被替换为新的名为Hyper的内存数据库。虽然概念相同,但Tableau会将数据源发送给返回结果集的查询。对于您正在讨论的大小的数据,如果数据量超出了内存容量的范围,您可能需要使用某种数据库进行测试。

JSON驱动程序对于探索JSON数据非常方便,我一定会从这里开始。如果满足您的需求,您可以避免整个ETL步骤。但是在大量数据时,您可能需要转移到某种外部数据源来处理生产负载。仅供参考,使用Tableau的JSON驱动程序的UNION功能在10.1版本之前尚未提供。

我认为没有人给出的答案是否,您无法在Tableau中加入两个JSON文件。如果我错了,请纠正我。

我相信我们可以加入JSONTableau

首先提取从JSON数据的列名作为below--

select 
    get_json_object(JSON_column, '$.Attribute1') as Attribute1, 
    get_json_object(line, '$.Attribute2') as Attribute2 
    from table_name; 

执行上述用于所需画面和加入其中。