python实现etl_以5个数据库为例,用Python实现数据的提取、转换和加载(ETL)

本文详述了如何使用Python进行数据的提取、转换和加载(ETL),涵盖MySQL、Elasticsearch、Neo4j等多个数据库的Python操作,包括连接、CRUD操作和数据处理。示例代码演示了Python在不同数据库中的应用,如MySQL的数据库连接、数据插入、读取、删除和更新,以及Elasticsearch和Neo4j的连接和数据操作。此外,还提及了内存数据库SQLite的使用。
摘要由CSDN通过智能技术生成

原标题:以5个数据库为例,用Python实现数据的提取、转换和加载(ETL)

导读:每个数据科学专业人员都必须从不同的数据源中提取、转换和加载(Extract-Transform-Load,ETL)数据。

本文将讨论如何使用Python为选定的流行数据库实现数据的ETL。对于关系数据库,选择MySQL,并将Elasticsearch作为文档数据库的例子展开。对于图形数据库,选择Neo4j。对于NoSQL,可参考此前文章中介绍的MongoDB。

作者:萨扬·穆霍帕迪亚(Sayan Mukhopadhyay)

如需转载请联系大数据(ID:hzdashuju)

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上(从数学角度叫做图)而不是表中,是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。

01 MySQL

MySQLdb是在MySQL C接口上面开发的Python API。

1. 如何安装MySQLdb

首先,需要在计算机上安装Python MySQLdb模块。然后运行以下脚本:

#!/usr/bin/python

importMySQLdb

如果出现导入错误,则表示模块未正确安装。

以下是安装MySQL Python模块的说明:

$gunzip MySQL-python -1.2.2.tar.gz

$tar –xvf MySQL-python -1.2.2.tar

$cd MySQL-python -1.2.2

$python setup.py build

$python setup.py install

2. 数据库连接

在连接到MySQL数据库之前,请确保有以下内容。

有一个名为TEST的数据库。

在TEST数据库中有一个表STUDENT。

STUDENT表有三个字段:NAME、SUR_NAME和ROLL_NO。

用户对TEST数据库具有完全访问权限。

3. INSERT操作

以下代码执行SQL INSERT语句,以便在STUDENT表中创建记录:

#!/usr/bin/python

importMySQLdb

# Open database connection

db = MySQLdb.connect( "localhost", "user", "passwd", "TEST")

# prepare a cursor object using cursor() method

cursor = db.cursor()

# Prepare SQL query to INSERT a record into the database.

sql = """INSERT INTO STUDENT(NAME,

SUR_NAME, ROLL_NO)

VALUES ('Sayan', 'Mukhopadhyay', 1)"""

try:

# Execute the SQL command

cursor.execute(sql)

# Commit your changes in the database

db.commit()

except:

# Rollback in case there is any error

db.rollback()

# disconnect from server

db.close()

4. READ操作

以下代码从STUDENT表中提取数据并打印出来:

#!/usr/bin/python

importMySQLdb

# Open database connection

db = MySQLdb.connect( "localhost", "user", "passwd", "TEST")

# prepare a cursor object using cursor() method

cursor = db.cursor()

# Prepare SQL query to INSERT a record into the database.

sql = "SELECT * FROM STUDENT "

try:

# Execute the SQL command

cursor.execute(sql)

# Fetch all the rows in a list of lists.

results = cursor.fetchall()

forrow inresults:

fname = row[ 0]

lname = r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值