2016-01-20 54 views
1

我一直保存文件为.csv一年多,并将这些文件连接到Tableau Desktop,以便一些最终用户(使用Tableau Reader查看数据)。使用postgres替换csv文件(大熊猫来加载数据)

我想我决定迁移到postgreSQL,我将使用熊猫库to_sql来填补它。

  • 我得到的每一天9个不同的文件,我处理他们每个人(我现在把它们合并成.csv.bz2格式月刊文件),通过添加列,计算,置换信息等
  • 我创建两个使用pd.concat和pd.merge的大量csv文件,其中包含Tableau连接到的 已处理文件。这些文件是从字面上覆盖在添加新的数据每天这是费时

是否还好还是做我的文件连接和串联与大熊猫和输出数据导出到Postgres的?这将是我第一次使用真正的数据库,与学习SQL语法和创建视图或表格相比,我更喜欢熊猫。我只是想避免一遍又一遍地覆盖相同的csv文件(以及其他一些我遇到的csv问题)。

+1

每个问题有1个问题,目前这个问题过于宽泛 – EdChum

+0

将其缩小到我的主要问题和我最犹豫的事情上(因为当我阅读数据库时,我看到了很多关于规范化表格以及我和我最初的实现肯定不会那么干净......我基本上将它用作一个大的平面文件来存储数据并将Tableau连接到) – trench

回答

2

不要太担心正常化。正常规范化的数据库通常比非规范化的数据库更有效,更易于处理。另一方面,如果您将非标准化的csv数据转储到数据库中,那么如果进行适当的规范化处理,则导入函数将变得复杂得多。我想我会建议你在这个时候迈出一步。只需将处理后的csv文件加载到postgres中即可启动。我很确定接下来的所有处理将比使用csv-files(只要确保设置正确的索引)更容易和更快速。当你开始习惯使用数据库时,你可以开始在那里做更多的处理。

只要记住,数据库真正擅长的一件事就是挑选出想要处理的数据子集。尽可能地尝试避免从数据库中提取大量数据,因为只打算处理其中的一部分数据。

+0

这很好听。为了能够从csv文件读取一定范围的日期,我不得不做很多解决方法,并且我无法指定我感兴趣的某个ID,因此查询会有所帮助。 pandas to_sql是否为我处理数据类型还是我首先在postgres中构造表并分配数据类型? – trench