DBAPI 接口

备注

在 PyODPS 0.10.0 中开始支持。事务操作不被 MaxCompute 支持,因而未实现相关接口。

PyODPS 支持使用 Python DBAPI 兼容的数据库访问接口访问 MaxCompute。

创建连接

可以通过指定 access_idaccess_keyproject``和``endpoint 来建立连接:

>>> import odps.dbapi
>>> conn = odps.dbapi.connect('<access_id>', '<access_key>', '<project>', '<endpoint>')

也可以使用现有的 ODPS 入口对象来建立连接:

>>> import odps.dbapi
>>> conn = odps.dbapi.connect(o)  # type(o) is ODPS

执行 SQL

创建游标并在游标上执行 SQL:

>>> cursor = conn.cursor()
>>> cursor.execute("SELECT * FROM pyodps_iris")
>>> print(cursor.description)
[('sepal_length', 'double', None, None, None, None, True),
 ('sepal_width', 'double', None, None, None, None, True),
 ('petal_length', 'double', None, None, None, None, True),
 ('petal_width', 'double', None, None, None, None, True),
 ('category', 'string', None, None, None, None, True)]

读取结果

使用和标准的 DBAPI 一样使用迭代的方式读取结果:

>>> for rec in cursor:
>>>     print(rec)

也可以一次性读取所有结果:

>>> print(cursor.fetchall())