【问题标题】:How to create a SQL table from several SQL files?如何从多个 SQL 文件创建一个 SQL 表?
【发布时间】:2018-07-03 14:43:47
【问题描述】:
上面的所有解释都是在 ETL 过程的上下文中进行的。我有一个充满 sql 文件的 git 存储库。我需要将所有这些 sql 文件(一旦拉出)放入一个包含 2 列的 sql 表中:名称和查询,以便以后可以使用 SQL 查询访问每个文件,而不是从文件路径加载它们。我怎样才能做到这一点?我可以随意使用我想要的工具,但我只知道 python 和 Pentaho。
也许认为这种方法比简单地访问位于硬盘驱动器中的拉取文件需要更少的计算时间的假设是错误的。在那种情况下让我知道。
【问题讨论】:
标签:
python
sql
database
automation
etl
【解决方案1】:
你可以先定义你感兴趣的表,使用类似的东西(你没有提到你正在使用的数据库):
CREATE TABLE queries (
name TEXT PRIMARY KEY,
query TEXT
);
创建表后,您或许可以使用os.walk 来遍历存储库中的文件,并将内容(例如file.read())和文件名插入到您之前创建的表中。
听起来您正在尝试解决不同的问题。您似乎对加快某些进程感兴趣,因为您询问使用表访问查询是否比在磁盘上打开文件更快。要进一步调查该(单独的!)问题,请参阅this。
我建议您使用分析工具来分析您正在尝试加速的现有流程。之后,您可以查看 IO 是否是您的瓶颈。否则,您可能会在没有任何好处的情况下完成所有这些工作。
附带说明,如果您以这种方式查找查询,则可能表明您需要重新架构您的应用程序。请考虑这种可能性。