类似pandas的sql包装器,用于ibm db2 warehouse的数据库内分析。
ibmdbp的Python项目详细描述
ibmdbpy
*****
>通过数据库内处理加速python分析
====
==
ibmdbpy项目提供了一个python接口,用于ibm db2中的数据操作和对数据库内算法的访问。它通过将用python编写的操作无缝地推送到底层数据库中执行来加速python分析,从而受益于数据库内的性能增强功能,例如列存储和并行处理。
ibm db2是一个数据库管理系统。ibmdbpy项目可以由python开发人员使用,只需很少的额外知识,因为它复制了用于数据操作的pandas库和用于机器学习算法的scikit学习库的众所周知的接口。python版本2.7到3.6,可以通过odbc或jdbc连接到db2数据库。
然而,一些实验已经证明,它在处理中等或大量数据(即在100万行或更多行的表上)时提供了显著的性能优势。
ibmdbpy的最新版本可在"python package index"和github上找到。
https://pypi.python.org/pypi/ibmdbpy
_ github:https://github.com/ibmdbanalytics/ibmdbpy
----
ibmdbpy项目将类似panda的语法转换为sql,并使用中间件api(pypyodbc/jaydebapi)将其发送到odbc或jdbc连接的数据库以供执行。结果将被提取并格式化到相应的数据结构中,例如pandas.dataframe或pandas.series。
通过ODBC连接到一个数据库(在本例中是一个名为bludb的DB2数据库):
>;>;从ibmdbpy导入idadatabase,idadataframe
>;>;idadb=idadatabase('bludb')
ibmdbpy中包含了一些示例数据集供您进行实验。我们可以首先将知名的iris表加载到这个db2数据库中。
>;>;来自ibmdbpy.sampledata import iris
>;>;idadb.as廑ida data frame(iris,"iris")
<;ibmdbpy.frame.idadataframe at 0x7ad77f0>;
接下来,我们可以创建一个指向我们刚刚上传的表。让我们使用这个:
>;>idadf=ida data frame(idadb,"iris")
注意,要使用idadataframe对象创建ida数据帧,我们需要指定以前打开的idadatabase对象,因为它保留连接。
里克斯:
>;>idadf.corr()
ibmdbpy在后台查找表中的数字列,并生成一个返回每对列之间相关性的sql请求。以下是针对此示例执行的SQL请求::
select correlation("sepal_length","sepal_width"),
correlation("sepal_length","petal_length"),
correlation("sepal_length","petal_width"),
correlation("sepal_width","petal_length"),
correlation("sepal_ width","petal_width",
correlation("petal_length","petal_width")
来自iris
ibmdbpy获取的结果是一个包含矩阵所有值的元组。此元组被格式化回pandas.dataframe,然后返回::
花瓣长度0.871754-0.428440 1.000000 0.962865
花瓣宽度0.817941-0.366126 0.962865 1.000000
等等!
地理空间功能的工作方式
它标识空间表的几何列,并允许您基于该列执行空间查询。结果将被获取并格式化到相应的数据结构中,例如,一个IDagodeataframe。
database,idageodataframe
>;>;idadb=idadatabase('bludb')
>;>;idadf=idageodataframe(idadb,'samples.geo嫒county')
请注意,要使用idadataframe对象创建idageodataframe,我们需要指定以前打开的idadatabase对象,因为它包含连接。
现在让我们计算geo_county表中的县的面积。该区域的结果将作为新列"区域"存储在IDageDataFrame中:
>;>IDADF['area']=IDADF.area(colx='shape')
objectid name shape area
1 wilberger multipolygon((-99.4756582604 33.8340108094,…0.247254
2奥斯汀多聚体((-96.6219873342 30.0442882117,…0.162639
3对数多多边形((-99.4497297204 46.6316377481,…0.306589
4拉普拉塔多聚体((-107.4817473750 37.0000108736,…0.447591
5伦道夫多聚体((-91.2589262966 36.2578866492,…0.170844
在后台,ibmdbpy查找表中的几何列,并生成一个返回每个几何体的区域的sql请求。
以下是为此示例执行的sql请求::
_ County T;
功能选择
==
==
ibmdbpy提供一系列功能以支持高效的数据库功能选择,例如,估计属性与特定目标的相关性。函数和文档可以在子模块"ibmdbpy.feature\u selection"中找到。
项目路线图在github上可用,在"roadmap.txt"文件中
contributors
==
ibmdbpy项目于2015年4月在IBM Deutschland Reasearch&Development,Bóblingen启动。
以下是对项目做出贡献的人员列表,按贡献的时间顺序排列:
-edouard fouché(核心)
-michael wurst(核心)
-william moore(文档)
-craig blaha(文档)
-rafael rodriguez morales(地理空间扩展Ion,Core)
-Avipsa Roy(地理空间扩展)
-Nicole Schoen(Core)
-Toni Bollinger(Core)
您想如何贡献?太好了!你可以做很多事情。
如果您是ibmdbanalytics组的成员,则可以创建分支并将它们合并到master。否则,可以派生项目并执行拉取请求。欢迎您对代码和文档做出贡献。
有很多方法可以做出贡献。如果您发现了错误并有改进的想法或需要一些新的特定功能,请打开一张罚单!我们真的很在乎。
*****
>通过数据库内处理加速python分析
====
==
ibmdbpy项目提供了一个python接口,用于ibm db2中的数据操作和对数据库内算法的访问。它通过将用python编写的操作无缝地推送到底层数据库中执行来加速python分析,从而受益于数据库内的性能增强功能,例如列存储和并行处理。
ibm db2是一个数据库管理系统。ibmdbpy项目可以由python开发人员使用,只需很少的额外知识,因为它复制了用于数据操作的pandas库和用于机器学习算法的scikit学习库的众所周知的接口。python版本2.7到3.6,可以通过odbc或jdbc连接到db2数据库。
然而,一些实验已经证明,它在处理中等或大量数据(即在100万行或更多行的表上)时提供了显著的性能优势。
ibmdbpy的最新版本可在"python package index"和github上找到。
https://pypi.python.org/pypi/ibmdbpy
_ github:https://github.com/ibmdbanalytics/ibmdbpy
ibmdbpy项目将类似panda的语法转换为sql,并使用中间件api(pypyodbc/jaydebapi)将其发送到odbc或jdbc连接的数据库以供执行。结果将被提取并格式化到相应的数据结构中,例如pandas.dataframe或pandas.series。
通过ODBC连接到一个数据库(在本例中是一个名为bludb的DB2数据库):
>;>;从ibmdbpy导入idadatabase,idadataframe
>;>;idadb=idadatabase('bludb')
ibmdbpy中包含了一些示例数据集供您进行实验。我们可以首先将知名的iris表加载到这个db2数据库中。
>;>;来自ibmdbpy.sampledata import iris
>;>;idadb.as廑ida data frame(iris,"iris")
<;ibmdbpy.frame.idadataframe at 0x7ad77f0>;
接下来,我们可以创建一个指向我们刚刚上传的表。让我们使用这个:
>;>idadf=ida data frame(idadb,"iris")
注意,要使用idadataframe对象创建ida数据帧,我们需要指定以前打开的idadatabase对象,因为它保留连接。
里克斯:
>;>idadf.corr()
ibmdbpy在后台查找表中的数字列,并生成一个返回每对列之间相关性的sql请求。以下是针对此示例执行的SQL请求::
select correlation("sepal_length","sepal_width"),
correlation("sepal_length","petal_length"),
correlation("sepal_length","petal_width"),
correlation("sepal_width","petal_length"),
correlation("sepal_ width","petal_width",
correlation("petal_length","petal_width")
来自iris
ibmdbpy获取的结果是一个包含矩阵所有值的元组。此元组被格式化回pandas.dataframe,然后返回::
花瓣长度0.871754-0.428440 1.000000 0.962865
花瓣宽度0.817941-0.366126 0.962865 1.000000
等等!
地理空间功能的工作方式
它标识空间表的几何列,并允许您基于该列执行空间查询。结果将被获取并格式化到相应的数据结构中,例如,一个IDagodeataframe。
database,idageodataframe
>;>;idadb=idadatabase('bludb')
>;>;idadf=idageodataframe(idadb,'samples.geo嫒county')
请注意,要使用idadataframe对象创建idageodataframe,我们需要指定以前打开的idadatabase对象,因为它包含连接。
现在让我们计算geo_county表中的县的面积。该区域的结果将作为新列"区域"存储在IDageDataFrame中:
>;>IDADF['area']=IDADF.area(colx='shape')
objectid name shape area
1 wilberger multipolygon((-99.4756582604 33.8340108094,…0.247254
2奥斯汀多聚体((-96.6219873342 30.0442882117,…0.162639
3对数多多边形((-99.4497297204 46.6316377481,…0.306589
4拉普拉塔多聚体((-107.4817473750 37.0000108736,…0.447591
5伦道夫多聚体((-91.2589262966 36.2578866492,…0.170844
在后台,ibmdbpy查找表中的几何列,并生成一个返回每个几何体的区域的sql请求。
以下是为此示例执行的sql请求::
_ County T;
功能选择
==
==
ibmdbpy提供一系列功能以支持高效的数据库功能选择,例如,估计属性与特定目标的相关性。函数和文档可以在子模块"ibmdbpy.feature\u selection"中找到。
项目路线图在github上可用,在"roadmap.txt"文件中
contributors
==
ibmdbpy项目于2015年4月在IBM Deutschland Reasearch&Development,Bóblingen启动。
以下是对项目做出贡献的人员列表,按贡献的时间顺序排列:
-edouard fouché(核心)
-michael wurst(核心)
-william moore(文档)
-craig blaha(文档)
-rafael rodriguez morales(地理空间扩展Ion,Core)
-Avipsa Roy(地理空间扩展)
-Nicole Schoen(Core)
-Toni Bollinger(Core)
您想如何贡献?太好了!你可以做很多事情。
如果您是ibmdbanalytics组的成员,则可以创建分支并将它们合并到master。否则,可以派生项目并执行拉取请求。欢迎您对代码和文档做出贡献。
有很多方法可以做出贡献。如果您发现了错误并有改进的想法或需要一些新的特定功能,请打开一张罚单!我们真的很在乎。