mysql - 如何将 XBRL 数据导入 MySQL?

标签 mysql database import xbrl

我正在从事一个涉及处理大量 XBRL 文档(> 1m 个单独文件)的项目。我对 XBRL 完全陌生,现在感觉很迷茫。

我在单独的 MySQL 数据库中有与这些 XBRL 文档相关的数据,我想将 XBRL 数据添加到 MySQL 中以将所有内容存储在一个数据库中。

将数据从 XBRL 文档传输到 MySQL 的最佳方法是什么?

是否有可用的批量处理库?

我一直在寻找有关这些问题的教程,但找不到任何提供基本介绍的东西,只有很多高级信息。

最佳答案

理论上,在数据库中存储 XBRL 的自然范例是 OLAP,因为 XBRL 是关于数据立方体的。在关系数据库之上的 OLAP 将称为 ROLAP。

这不是一个微不足道的问题,因为从大量分类法中提取的事实可以形成一个非常大且稀疏的立方体(对于 SEC 文件,它的维度超过 10k),而且因为创建 SQL 模式需要在任何导入之前了解分类法.如果出现新的分类法,则需要重新 ETL 一切。这并不使关系数据库适合作为通用解决方案。

如果文件共享相同的分类法并且分类法非常简单(例如:没有太多维度),则可以提出一个临时映射以将所有事实存储在一个包含许多行的表中在 ROLAP 意义上(事实到行,方面到列)。一些供应商专门存储非维 XBRL 事实,在这种情况下,传统 SQL(或随行扩展的“后 SQL”)产品效果很好。

一些供应商为分类法中的每个 XBRL 超立方体创建一个表,其中的模式源自定义网络,但每个超立方体都不同。这会导致数据库中有很多表,并且需要大量连接来进行涉及多个超立方体的查询。

其他一些供应商对底层 XBRL 结构或用户需要运行的查询类型做出假设。限制问题的范围允许找到也可以满足这些特定需求的特定体系结构或 SQL 模式。

最后,要导入大量文件,可以在 NoSQL 数据存储而非关系数据库之上构建通用映射。具有不同维度的大量事实适合大型半结构化文档集合,而网络非常适合分层格式。

关于mysql - 如何将 XBRL 数据导入 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38122262/

相关文章:

python - IPython/jupyter 笔记本中的自动更新模块

android - 从 Eclipse 导入 Android 项目后,依赖项列表中的项目无效

php - 数据库复制 : intelligent database selection within PHP?

python - SQLALCHEMY 设置默认值 False 可空 True

java - SingleValueEvent 显示为空

python - 从常规网格数据库创建波前 .obj 文件

Python3 使用 exec 动态导入 - 为什么 'as' 不被执行?

具有唯一行的 MYSQL UNION ALL

mysql - 如何在检查子句中使用 CURDATE()?

Mysql在多个数据库中运行一个脚本