【问题标题】:Big Data Retrieval and Processing Python and PostgreSQL大数据检索和处理 Python 和 PostgreSQL
【发布时间】:2015-09-28 13:32:27
【问题描述】:

只是为了一些背景。我正在使用 d3.js 和 dc.js(带有交叉过滤器)开发一个酒店数据分析仪表板,非常类似于 [这里](https://my.infocaptor.com/free_data_visualization.php"D3 Builder")。这是一个 Django 项目,我使用的数据库是 Postgresql。我目前正在研究一个通用条形图系列,它最终将允许用户选择他们希望以条形图格式相互绘制的字段(从提供的数据集中)。

我的数据库包含 1000 万个条目,每个条目有 54 个字段(单个表)。检索用于绘制基于时间的条形图的三个字段需要一分钟多的时间。在 Python 中处理数据(更改列键名称以匹配通用条形图的名称)并将数据转换为 json 格式以供图形使用需要另外几分钟,这对于我想要的应用程序来说是不可接受的。

是否可以“并行化”对数据库的查询,这是否比我目前正在做的(普通查询)更快。我环顾四周,并没有发现太多。是否有一个库或优化的函数可以用来快速将我的数据解析为所需的格式?

【问题讨论】:

  • 这不是从一开始就直接使用 json 文件的选项,而不是从数据库中构建它吗?
  • @YannisP 我想过这样做,我确实尝试过类似的东西,但也许我应该再试一次。谢谢!

标签: python performance postgresql


【解决方案1】:

我研究过类似的桌子大小。好吧,对于您正在寻找的东西,您需要切换到分布式 postgres 环境,即 Greenplum,它是 MPP 架构并支持列存储。非常适合具有大量列和表大小的表。

http://docs.aws.amazon.com/redshift/latest/dg/c_columnar_storage_disk_mem_mgmnt.html

如果您不打算切换到 Greenplum,您可以尝试在您当前的 postgres 数据库中进行表分区。您的仪表板查询应该查询单个分区,这样您最终会查询较小的分区(表)并且查询时间会快得多。

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2018-03-10
    • 1970-01-01
    • 2012-10-17
    • 2019-11-09
    相关资源
    最近更新 更多