Python 中的 ETL 脚本,用于将数据从另一个服务器.csv文件加载到 mysql 中



我是一名业务分析师,是Python的新手。 在我的一个项目中,我想从.csv文件中提取数据并将该数据加载到我的 MySQL 数据库(暂存(中。 任何人都可以指导我应该使用的示例代码和框架吗?

创建sqllite的简单程序。您可以读取 CSV 文件并使用dynamic_entry插入到所需的目标表中。

import sqlite3
import time
import datetime
import random
conn = sqlite3.connect('test.db')
c = conn.cursor()
def create_table():
c.execute('create table if not exists stuffToPlot(unix REAL, datestamp TEXT, keyword TEXT, value REAL)')
def data_entry():
c.execute("INSERT INTO stuffToPlot VALUES(1452549219,'2016-01-11 13:53:39','Python',6)")
conn.commit()
c.close()
conn.close()
def dynamic_data_entry():
unix = time.time();
date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
keyword = 'python'
value = random.randrange(0,10)
c.execute("INSERT INTO stuffToPlot(unix,datestamp,keyword,value) values(?,?,?,?)",
(unix,date,keyword,value))
conn.commit()
def read_from_db():
c.execute('select * from stuffToPlot')
#data = c.fetchall()
#print(data)
for row in c.fetchall():
print(row)
read_from_db()
c.close()
conn.close()

您可以循环访问 CSV 中的数据并加载到 sqllite3 中。也请参考下面的链接。

  • 将SQLite3迁移到MySQL的快速简便方法?

如果这是一个格式正确的CSV文件,你可以使用LOAD DATA INFILE MySQL命令,你不需要任何python。然后在暂存区域加载它(不处理(后,您可以使用所选的 sql/etl 工具继续转换它。

https://dev.mysql.com/doc/refman/8.0/en/load-data.html

这样做的一个问题是您需要添加所有列,但即使您有不需要的数据,您可能更愿意加载暂存中的所有内容。

最新更新