【问题标题】:How can I save unknown data types to the database?如何将未知数据类型保存到数据库中?
【发布时间】:2020-11-06 15:21:25
【问题描述】:

我正在用 pandas 准备一个数据分析程序。用户将数据从 excel 文件传输到程序。从 Excel 文件中提取的列名不断变化。因此,我不知道我将在数据库中记录的列名和数据类型。数据库中如何保存不熟悉类型的数据。我使用的数据库是postqresql。只有理解了逻辑,我才能继续前进。非常感谢。

【问题讨论】:

  • 您基本上是在寻找阅读模式。传统的 RDBMS 是写入模式。
  • 所以事情的顺序是 Excel --> Pandas --> Postgres,对吗? Pandas 部分正在做什么? Postgres 部分正在做什么?您打算使用CSV 和/或pandas.to_sql 进行转移吗?
  • 可以是任何文件类型。我也可以从数据库中获取数据
  • 作为从CSVSQL 的工具示例,请参见csvsql。它将进行类型推断。
  • 如果没有数据来自哪里和去向的流程图,这个问题不会得到任何有用的答案。特别是关于从数据本身推断数据类型的部分。只能说它可以在某种程度上完成,因为ETL(en.wikipedia.org/wiki/Extract,_transform,_load) 正是基于此。这归结为适当的计划。

标签: python sql pandas postgresql dataframe


【解决方案1】:

关系型数据库不太适合存储不遵循固定架构的数据。

我看到两个选项:

  • 在将数据插入数据库之前,分析您拥有的数据并创建一个适合数据的新表。

    问题是如何处理 PostgreSQL 中的所有这些表。

  • 使用带有jsonb 列的表(当然不仅仅是这一列;您至少需要一个主键)并将您拥有的数据格式化为 JSON。

    问题是如何处理所有这些随机数据。

【讨论】:

  • 我想我离主题太远了。你说的对。 Postgresql 不是存储未知数据类型的好选择。你说的很有逻辑。我想我需要使用像 mongodb 这样的数据库。
  • pivot 或 group_by 操作将使用此数据完成
  • 其实我的想法。注册数据库时如何判断数据类型?
  • 您从输入数据中获取数据类型,对吧?我并不是说你应该选择 PostgreSQL。我认为将此类数据存储在 MongoDB 中可能会“更自然”,但基本问题将保持不变:您如何理解并从完全非结构化数据中提取有用信息?
猜你喜欢
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 2016-11-22
相关资源
最近更新 更多