postgresql - 当列数可能发生变化并且存在重复名称时,将数据自动馈送到 PostgreSQL 表中

标签 postgresql

我的公司使用第三方供应商来获得我们所有的 NPS信息。我正在尝试将来自该供应商的数据馈送到我们运行 PostgreSQL 的数据仓库中。

提要采用 2 个制表符分隔的文本文件的形式:“问题映射”和响应。问题图是每个问题一行,包含问题 ID、问题文本、问题标签问题类型等的列 - 简单明了。每个调查回复一行,每个问题和用户 ID 等内容都有一列。这是两个最大的问题:

  1. 调查问题有时对不同的问题使用相同的问题 ID,导致响应数据中的多个列具有相同的名称但不是同一个问题。
  2. 问题的数量可能会发生变化,从而导致数据中的列数不同。

这两件事使得将数据自动馈送到单个表中变得非常令人头疼。

我恐怕除了“有人知道我如何才能做到这一点吗?”之外,我不太清楚如何表达我真正的问题。如果我想到比这更好的东西,我会来更新这个,所以现在:

有没有人对我如何有效地设置自动数据馈送有任何想法,而不必总是删除并重新创建所有内容?

最佳答案

如果您的数据一团糟并且没有明确定义的列,您可以使用 entity attribute value pattern ,你把每个事实变成一组有 4 列的行 - 一个唯一的行 ID,从 map 中提取的每一行的相同实体 ID,一个属性列(你把列的名称放在那里)你得到来自 map 的键,以及一个值列,您可以在其中放置来自 map 的值。它不是那么整洁,但您仍然可以查询它,并且当您收到带有新列的 map 时不必删除它。

关于postgresql - 当列数可能发生变化并且存在重复名称时,将数据自动馈送到 PostgreSQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515030/

相关文章:

mysql - SQL 命令仅针对 postgres 中的一张表卡住

SQL 选择没有连接对的行

sql - 在 Postgres 中将 VARIADIC 参数传递给 IN

sql - PostgreSQL - 在关系策略中检测到无限递归

sql - PostgreSQL 索引性能问题

sql - PostgreSQL ORDER BY 需要很长时间

python - SQLAlchemy 和多个进程的连接问题

ruby-on-rails-3 - 在 Rails 测试中手动重新连接到数据库

java - XML 数据到 PostgreSQL 数据库

sql - 更改复合主键列顺序,避免暴露没有主键的表