Database 关系数据库与R/Python数据帧

Database 关系数据库与R/Python数据帧,database,database-design,dataframe,data-processing,data-collection,Database,Database Design,Dataframe,Data Processing,Data Collection,在RDBMS系统和其他数据库系统出现之前,我接触过R中的表和数据结构世界。在R/Python中,从结构化数据(.csv或其他格式)创建表和列表,然后以编程方式进行数据操作是非常优雅的 去年,我参加了数据库管理课程,学习了所有关于结构化和非结构化数据库的知识。我还注意到,将来自多个数据源的数据馈送到数据库中,而不是直接在R中使用它们,这是一种规范(为了方便和规范?) 出于研究目的,R似乎足以连接、附加甚至复杂的数据操作 不断出现的问题是: 何时通过read.csv等命令直接使用R,何时通过使用R-

在RDBMS系统和其他数据库系统出现之前,我接触过R中的表和数据结构世界。在R/Python中,从结构化数据(.csv或其他格式)创建表和列表,然后以编程方式进行数据操作是非常优雅的

去年,我参加了数据库管理课程,学习了所有关于结构化和非结构化数据库的知识。我还注意到,将来自多个数据源的数据馈送到数据库中,而不是直接在R中使用它们,这是一种规范(为了方便和规范?)

出于研究目的,R似乎足以连接、附加甚至复杂的数据操作

不断出现的问题是: 何时通过read.csv等命令直接使用R,何时通过使用R-SQL接口创建数据库和查询表来使用R

例如,如果我有多源数据,比如(a)个人层面的信息(年龄、性别、吸烟习惯),(b)结果变量(如他们实时进行的调查),(c)协变量信息(环境特征),(d)治疗输入(改变结果的事件发生-调查响应)(d)调查参与者的时间和空间信息


在这种情况下,如何进行数据收集和处理。可能有标准的行业程序,但我在这里提出了这个问题,以了解个人和一小部分研究人员可以采用的可行和最佳方法列表

当你说“将来自多个数据源的数据馈送到数据库是一种规范”时,你所描述的内容听起来更像是一个数据仓库。数据库的使用有很多原因,在很多情况下,它们会保存来自一个源的数据——例如,用作事务系统数据存储的数据库通常只保存运行该系统所需的数据以及该系统生成的数据

您所描述的过程通常称为提取、转换、加载(ETL),如果您决定在R中使用数据之前先将数据组合起来,您可能会发现查找有关ETL和数据仓库的信息很有帮助

我不能告诉你你应该选择哪一种,或者是实现它的最佳方式,因为它在不同的情况下会有所不同,甚至可能会归结为观点。我可以告诉您的是人们创建数据仓库的一些原因,您可以自己决定它是否在您的情况下有用:

数据仓库可以提供一个中央位置来保存组合数据。这意味着人们不需要在每次需要使用特定的数据组合时自行组合数据。与简单的一次性报告或组合数据提取不同,它应该提供一定的灵活性,让人们获得特定任务所需的组合数据集。通常情况下,在企业环境中,在同一组数据组合上运行多个东西—多维数据分析工具(多维数据集)、报表、数据挖掘等

这样做的一些好处可能包括:

  • 当个人需要自己组合数据时,他们可以节省时间
  • 如果需要合并的数据很复杂,或者有些人不擅长处理该部分流程,则数据被错误合并的风险较小;您可以确定不同的工作使用了相同的源数据
  • 如果数据存在数据质量问题,则只需在数据仓库中解决一次,而不是在代码中反复解决
  • 如果不断收到新数据,则可以自动将其收集并集成到数据仓库中

正如我所说,我无法为您决定这是否是一个有用的方向——正如任何此类决定一样,您需要权衡实施此类解决方案的成本和好处,两者都将针对您的具体情况。但希望这能回答您的核心问题,即为什么有人会选择在数据库中而不是在代码中进行这项工作,并为您提供一个工作的起点。

在我的案例中,我可以使用哪些开源工具进行ETL和数据仓库?我正在研究数据处理和存储,这是我在项目中唯一的责任,也是数据分析。因此,重点是数据分析,而不是与他人共享数据。你的解决方案听起来很有趣,我应该试试。我查看了这个网站,发现了像TALEND这样的开源ETL工具,我应该试试。但是,一天结束时的数据分析和ML可以在一个输入和输出的电子表格上完成,所以您觉得怎么样。@earthense\u learner很高兴答案有帮助。:)我之所以回避任何推荐,部分原因是要求软件推荐之类的东西是违反SO的规定的,因为它们往往会变成垃圾邮件或过于基于意见。此外,我对开放源码ETL工具的经验很少(我在SQLServer上使用SSI和SQL/T-SQL的组合)。请记住,ETL可以在代码(SQL或其他东西)中完成——我听说过人们使用Python的例子,但我不确定它将如何执行。什么是合适的(和可行的)实际上取决于你的具体情况。是的,听起来不错。我不想过分杀戮。但是,我也不应该回避任何基本的过程。我猜人们使用Python和R来创建数据对象或将其链接到数据库进行数据分析。但编程很方便,可自定义数据处理,但不可重复且容易出错,这是我唯一担心的。