使用Tableau分析多个Json

时间:2016-12-29 14:02:59

标签: json tableau

我开始使用Tableau,我有一个涉及多个网站日志存储为JSON的项目。我每天有一个日志,大约一个月,每个重约500-600 Mb。

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

我担心加入他们所有人,我将没有足够的记忆力使其发挥作用。加载的文件是否存储在内部DB的RAM中?

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

我知道其中一些问题是基于意见的,但我对此并不了解,我真的需要一些准则来开始。

2 个答案:

答案 0 :(得分:2)

对于这一数据量,您可能希望提前对其进行预处理,过滤,聚合和索引 - 使用数据库,如Parquet和Spark和/或Tableau提取。

如果您使用数据提取,您可能希望为特定目的过滤和聚合它们,只要知道在进行数据提取时是否聚合数据,您需要注意在可视化中执行的任何进一步聚合很明确。 SUM(),MIN()和MAX()等附加功能是安全的。部分和的总和仍然是正确的总和。但是,平均值和计数差异的平均数通常不是。

Tableau向数据库发送查询,然后根据查询结果集呈现可视化。返回的数据量取决于查询,该查询取决于您在Tableau中指定的内容。 Tableau缓存结果,您还可以创建一个提取,用作持久的,可能已过滤和聚合的缓存。见this related stack overflow answer

对于文本文件和数据提取,Tableau现在通过其数据引擎进程将它们加载到内存中 - 取而代之的是将来一个名为Hyper的新内存数据库。但概念是相同的,Tableau向数据源发送一个返回结果集的查询。对于您正在讨论的大小的数据,您可能希望使用某种类型的数据库进行测试,如果它的数量超过了内存中适合的数量。

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

答案 1 :(得分:0)

我相信我们可以加入JSON中的2 Tableau个表格。

首先从JSON数据中提取列名称,如下所示 -

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

为所需的画面执行上述操作并加入它们。