Apache Ignite Python轻量级客户端使用指南
ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite16/ignite
概述
Apache Ignite作为一个分布式内存计算平台,提供了多种语言的客户端接入方式。Python轻量级客户端(Thin Client)是一种不依赖服务端类库的轻量级连接方式,适合Python开发者快速接入Ignite集群。本文将详细介绍Python轻量级客户端的安装、配置和使用方法。
环境准备
使用Python轻量级客户端需要满足以下条件:
- Python 3.4或更高版本
- 已部署的Apache Ignite集群
安装方式
使用pip安装
推荐使用pip工具安装,执行以下命令即可:
pip install pyignite
使用ZIP包安装
- 从Apache Ignite官网下载Python轻量级客户端ZIP包
- 解压后进入根目录
- 执行安装命令:
pip install .
连接集群
基础连接
以下代码展示了如何连接到Ignite集群:
from pyignite import Client
client = Client()
client.connect('127.0.0.1', 10800)
客户端故障转移
为提高可靠性,可以配置多个节点地址,客户端会自动进行故障转移:
nodes = [
('192.168.1.100', 10800),
('192.168.1.101', 10800),
('192.168.1.102', 10800),
]
client = Client()
client.connect(nodes)
分区感知
启用分区感知可以优化查询性能:
client = Client(partition_aware=True)
client.connect(nodes)
缓存操作
创建缓存
Python客户端支持多种缓存创建方式:
# 获取已有缓存
cache = client.get_cache('my_cache')
# 创建新缓存
cache = client.create_cache('new_cache')
# 获取或创建缓存
cache = client.get_or_create_cache('dynamic_cache')
缓存配置
创建缓存时可以指定详细配置参数:
from pyignite.datatypes import *
cache_config = {
PROP_NAME: 'configured_cache',
PROP_CACHE_MODE: PARTITIONED,
PROP_BACKUPS_NUMBER: 1,
PROP_ATOMICITY_MODE: TRANSACTIONAL
}
cache = client.create_cache(cache_config)
主要配置参数包括:
- 缓存模式(分区/复制)
- 原子性模式
- 备份数量
- 写入同步模式
- 查询相关配置等
数据操作
基本KV操作
# 写入数据
cache.put(1, 'value1')
# 读取数据
value = cache.get(1)
# 批量操作
cache.put_all({
2: 'value2',
3: 'value3'
})
类型提示
Python是动态类型语言,但可以通过类型提示优化序列化:
from pyignite.datatypes import *
cache.put(
'complex_key',
{'id': 1, 'name': 'test'},
key_hint=String,
value_hint=Map([('id', Int), ('name', String)])
扫描查询
# 获取所有数据
result = cache.scan()
for key, value in result:
print(key, value)
# 转换为字典(小数据集适用)
data_dict = dict(cache.scan())
SQL查询
Python客户端支持完整的SQL功能:
# 创建表
cache.sql('CREATE TABLE City (id INT PRIMARY KEY, name VARCHAR)')
# 插入数据
cache.sql('INSERT INTO City (id, name) VALUES (?, ?)', query_args=[1, 'Beijing'])
# 查询数据
result = cache.sql('SELECT * FROM City')
for row in result:
print(row)
安全配置
SSL/TLS加密
client = Client(
use_ssl=True,
ssl_certfile='client.pem',
ssl_keyfile='client.key',
ssl_ca_certfile='ca.pem'
)
认证机制
client = Client(
username='ignite',
password='ignite',
use_ssl=False # 不推荐
)
最佳实践
- 生产环境务必启用SSL加密
- 大数据量扫描时使用生成器而非直接转换为字典
- 合理配置分区感知提升查询性能
- 为复杂数据结构使用类型提示优化性能
- 配置多个节点地址实现高可用
通过Python轻量级客户端,开发者可以方便地将Apache Ignite的分布式能力集成到Python应用中,实现高性能的数据处理和缓存功能。
ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite16/ignite
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考