应用开发
SmartESQL Python 包装器支持一个 SQL 引擎和一个 SQL 服务器,它们使用 Python 数据库 API 规范在 SmartEDB 数据库上运行。开发人员被鼓励访问此网站以获取有关 Python 数据库类和方法的一般信息。
使用 SmartESQL Python 包装器进行交互式操作
要与 Python 封装进行交互式操作,首先启动 Python 接口模块(可以从 www.python.org 下载),然后加载 SmartEDB 运行时,接着可以创建一个 SmartEDB 数据库(内存中或持久介质),或者连接到现有的数据库。
例如,一旦初始化了 Python 接口,就可以处理数据库模式并按如下方式创建 Database 对象:
>>> dict = exdb.load_dictionary(schema)
>>> dict
<eXDB.Dictionary object at 0x1006e0790>
>>>
>>> db = exdb.open_database("myopendb", dict)
>>> db
<exdb.Database object at 0x100827610>
>>>
使用 SQL 有几种方式:
通过“正在处理”数据库中的数据库对象进行操作。这是通过使用本地嵌入式 SQL 引擎实现的,该引擎在当前进程创建数据库时可用。几乎任何 SmartEDB 数据库都可以通过此 SQL 接口进行访问。例如, 使用支持 SQL 数据库 API 接口的 exdb.Connection 对象创建一个连接:
>>>con = db.connect()
使用现有的共享内存数据库。如果共享内存数据库是由其他进程创建的,无论是另一个 Python 进程,还是由使用任何 SmartEDB 支持的编程语言 API(C、C++、Java 或 C#)编写的应用程序创建的,也可以通过 Python 包装器进行访问。要连接到共享内存数据库,请使用 exdb 模块的 connect() 方法。例如,使用 exdb.Connection 对象创建连接,并支持 SmartEDB 对象级接口和 SQL 数据库 API 接口:
>>>con = exdb.connect(dbname)
使用 RemoteSQL 选项,该选项允许连接到远程 SQL 服务器。远程服务器可以通过使用 Python 类 SqlServer 创建,通过使用 C++ 接口 SqlServer 创建,或者通过使用 xSQL 创建。要连接到远程 SQL 服务器,必须使用 exdb 模块的 connect(host, port) 方法来建立连接。例如:
>>>con = exdb.connect('localhost', 5001)
请注意,服务器连接是通过一个不同的类 exdb.RemoteConnection 实现的,该类符合 DB API 标准。
使用“分布式”连接可以支持数据库的简单“分片”。在这种情况下,每个查询都会发送到所有节点(分片),并且结果会在 SmartESQL 运行时进行合并。应用程序负责选择分片键,并将数据分布到各个分片。要创建分布式连接,必须使用 exdb 类的 connect() 方法,但要传入两个参数。例如:
>>>exdb.connect(nodes, maxConnectionAttempts = 10)
其中,nodes 是一个元组,包含编码的节点规范,格式为“主机名:端口”,例如:
>>>con = exdb.connect(('node1:5001', 'node2:5001', 'node3:5001'))
请注意,此服务器连接是使用不同的类 exdb.DistributedConnection 实现的,该类符合 DB API 标准。
SmartESQL 应用程序实现细节
请使用下表中的链接查看实施示例:
主题 | 说明 |
---|---|
游标 | 使用游标 |
事务 | 管理 SQL 事务 |
序列 | 使用序列数据类型 |
异步分布式连接 | 执行异步分布式 SQL 语句 |