当前位置: 首页 > 科技观察

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

时间:2023-03-14 22:29:03 科技观察

一行代码实现Python连接所有数据库进行数据分析头皮发麻。别着急,只需要一招5行代码,就可以使用python连接上述数据库。对于大多数sqlboys和sqlgirls来说,他们只关心将我的sql提交到上述数据库并返回给我一个pandasdataframe。所以必要的输入包括sql和数据库连接信息(包括地址、端口、账号密码)。fromsqlachemyimportcreate_engineimportpandasaspd#数据库连接地址engine=create_engine("mysql://root:123456@127.0.0.1:3306/database")#sqlsql="select*fromuserslimit10"df=pd.read_sql_query(sql,engine)presto#prestouri="presto://username:password@127.0.0.1:8080/database?source=pyhive"sql="select*fromuserslimit10"df=pd.read_sql_query(sql,create_engine(uri))mysql#mysqluri="mysql://root:123456@127.0.0.1:3306/database"sql="select*fromuserslimit10"df=pd.read_sql_query(sql,create_engine(uri))druid#druiduri="druid://<用户>:<密码>@<主机>:/druid/v2/sql"sql="selectcount(*)fromuserswhere_time>TIME_SHIFT...."df=pd.read_sql_query(sql,create_engine(uri))More数据库连接方式:database示例Apache德鲁伊druid://:@:/druid/v2/sqlApacheHivehive://hive@{hostname}:{port}/{database}ApacheKylinkylin://<用户名>:<密码>@<主机名>:<端口>/<项目>?=&=ApacheSparkSQLhive://hive@{hostname}:{port}/{database}ClickHouseclickhouse://{username}:{password}@{hostname}:{port}/{database}ElasticSearchelasticsearch+http://{user}:{password}@{host}:9200/Prestopresto://{user}@{host}:{port}/{database}?source={source}MySQLmysql://:@/基本列表表面上所有的数据库,只要数据库支持sqlalchemydialect和相应的python驱动,就可以按照上面的套路操作,省心省心。核心只需要一行代码:df=pd.read_sql_query(sql,create_engine(uri))