有公众号群的小伙伴问我,有没有实现python连接星环数仓取数的代码,刚好有用,就做了一下分享。
可能别的小伙伴也有需求,故分享到公众号中,感兴趣的小伙伴可以跟着实现一下。
之前的文章分享了python连接sql取数和实现自动化发邮件代码,感兴趣的朋友可以翻看:【最全】Python连接数据库取数与写入数据和【干货】用Python每天定时发送监控邮件。
实现星环数仓取数的代码比较简单,主要步骤包括导入库、连接数仓、定义跑数sql脚本、执行sql脚本获取数据。
接下来我们一一展示。
导入库
连接数仓
定义跑数sql脚本
执行sql脚本获取数据
全量代码
首先来看下python连接数仓需要导入的库,具体代码如下:
import pymysql
import jaydebeapi
import pandas as pd
from sqlalchemy import create_engine
如未安装,可自行百度用pip方法安装一下。
接下来定义连接数仓所需的基本信息,并应用jaydebeapi库连接数仓。 其基本调用语法如下:
url = 'jdbc:hive2://10.0.7.2:10001/fengxiantiaoxian'
#需替换成你的用户名
user = 'dw123'
#用户名,需替换成你的用户名
password = 'dw2022'
#密码,需替换成你的密码
dirver = 'org.apache.hive.jdbc.HiveDriver'
jarFile = 'inceptor-driver-8.31.0.jar'
#这个需替换成你的jar文件的路径
conn = jaydebeapi.connect(dirver, url, [user, password], jarFile)
curs=conn.cursor()
#连接数仓
三、定义跑数sql脚本 接着定义跑数sql脚本,可根据需求进行定义。
本文只是做展示用,只定义了简单的查询语句,具体代码如下:
sql1 = '''
select * from ods.ods_clx_asset_jld_asset_user_behavior_df
'''
#跑数sql1
sql2 = """
select * from ods.ods_clx_asset_jld_asset_bind_card_info_df
"""
#跑数sql2
可根据需要定义多个sql语句。 四、执行sql脚本获取数据 最后,获取所需的数据,具体代码如下:
user_behavior = pd.read_sql_query(sql1, conn)
#获取用户行为数据
bind_card = pd.read_sql_query(sql2, conn)
#获取用户绑卡数据
其中user_behavior和bind_card即为所需数据。
五、全量代码 为了大家使用方便,本小节直接展示全量代码,具体如下:
import pymysql
import jaydebeapi
import pandas as pd
from sqlalchemy import create_engine
url = 'jdbc:hive2://10.0.7.2:10001/fengxiantiaoxian'
#需替换成你的用户名
user = 'dw123'
#用户名,需替换成你的用户名
password = 'dw2022'
#密码,需替换成你的密码
dirver = 'org.apache.hive.jdbc.HiveDriver'
jarFile = 'inceptor-driver-8.31.0.jar'
#这个需替换成你的jar文件的路径
conn = jaydebeapi.connect(dirver, url, [user, password], jarFile)
curs=conn.cursor()
#连接数仓
sql1 = '''
select * from ods.ods_clx_asset_jld_asset_user_behavior_df
'''
#跑数sql1
sql2 = """
select * from ods.ods_clx_asset_jld_asset_bind_card_info_df
"""
#跑数sql2
user_behavior = pd.read_sql_query(sql1, conn)
#获取用户行为数据
bind_card = pd.read_sql_query(sql2, conn)
#获取用户绑卡数据
至此,Python连接数仓已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
【部分群限时免费进】分群讨论学习Python、玩转Python、风控建模【29.9元进】、人工智能、数据分析相关问题,还提供练习数据资料、招聘内推信息、优秀文章、学习视频、公众号文章答疑,也可交流工作中遇到的难题。如需添加微信号19967879837,加时备注想进的群,比如学习python。
【评分卡实现】应用Python中的toad.ScoreCard函数实现评分卡
【Python常用函数】一文让你彻底掌握Python中的toad.quality函数
【Python数据挖掘】应用toad包中的KS_bucket函数统计好坏样本率、KS值
限时免费进群
19967879837
添加微信号、手机号