一行代码实现Python连接所有数据库做数据分析

市面上比较常用的数据库包括mysql, presto, hive, druid, kylin, spark, elasticsearch等,作为一名数据分析师,面对不同的数据库,是否有头麻的情况。别担心,使用python连接以上数据库,你只需要一招,5行代码即可。

在上党等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站制作 网站设计制作定制网站,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,成都外贸网站建设,上党网站建设费用合理。

对于大部分sqlboys和sqlgirls而言,只关心我的sql提交到以上数据库,返回给我一个pandas的dataframe即可。所以必要的输入包括sql和数据库连接信息(包括地址,port, 账号密码)即可。

 
 
 
 
  1. from sqlachemy import create_engine  
  2. import pandas as pd  
  3. # 数据库连接地址 
  4. engine = create_engine("mysql://root:123456@127.0.0.1:3306/database") 
  5. # 用户要查询的sql  
  6. sql = "select * from users limit 10" 
  7. df = pd.read_sql_query(sql, engine) 

presto

 
 
 
 
  1. # presto 
  2. uri = "presto://username:password@127.0.0.1:8080/database?source=pyhive" 
  3. sql = "select * from users limit 10" 
  4. df = pd.read_sql_query(sql, create_engine(uri)) 

mysql

 
 
 
 
  1. # mysql 
  2. uri = "mysql://root:123456@127.0.0.1:3306/database" 
  3. sql = "select * from users limit 10" 
  4. df = pd.read_sql_query(sql, create_engine(uri)) 

druid

 
 
 
 
  1. # druid 
  2. uri = "druid://:@:/druid/v2/sql" 
  3. sql = "select count(*) from users where _time> TIME_SHIFT...." 
  4. df = pd.read_sql_query(sql, create_engine(uri)) 

更多数据库连接方式:

数据库

示例

Apache Druid

druid://:@:/druid/v2/sql

Apache Hive

hive://hive@{hostname}:{port}/{database}

Apache Kylin

kylin://:@:/?=&=

Apache Spark SQL

hive://hive@{hostname}:{port}/{database}

ClickHouse

clickhouse://{username}:{password}@{hostname}:{port}/{database}

ElasticSearch

elasticsearch+http://{user}:{password}@{host}:9200/

Presto

presto://{user}@{host}:{port}/{database}?source={source}

MySQL

mysql://:@/

基本上市面上所有的数据库,只要该数据库支持sqlalchemy dialect和对应的python driver,都可以按照上面的套路去无脑操作。简单省心。

核心只需要一行代码即可:

 
 
 
 
  1. df = pd.read_sql_query(sql, create_engine(uri)) 

名称栏目:一行代码实现Python连接所有数据库做数据分析
转载来于:http://www.shufengxianlan.com/qtweb/news49/206199.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联