SuperAPI AI 工具集

cdata-cli-python

编程与开发

查看项目

更新于 10-15 20:11

技能介绍

用途:这是 cdata-cli 技能的构建阶段配套技能。cdata-cli 负责用 JDBC 驱动做发现(连接、浏览 schema、验证 SQL);本技能负责后续用 CData Python Connector 编写 Python 应用代码。由于所有 CData 驱动共享同一关系模型和 SQL 方言,发现阶段确认的表名、列名和 SQL 可原样复用。前置条件是已先用 cdata-cli 确认数据源可连接并验证过 SQL;若尚未使用,应先调用 cdata-cli。若发现阶段创建了做过 OAuth 浏览器登录的连接,可记下其 OAuthSettingsLocation,Python 应用指向同一缓存令牌文件即可免去重新认证。

语言与驱动版本:Python 3.x 使用 CData Python Connector,导入形式为 import cdata.<source>,<source> 为小写驱动名,如 cdata.salesforce、cdata.gmail、cdata.snowflake。连接器是编译版 DB-API 2.0 模块(.pyd/.so)加 SQLAlchemy 方言,以平台相关 wheel 分发。CLI 仅适用于 Java/JDBC,无法为 Python Connector 安装、激活或创建连接;Python Connector 是独立运行时驱动版本,需单独获取与授权。

获取与安装:连接器发布在 https://maven.cdata.com/python/(纯 HTTP 索引,无 API、无认证)。找到 cdata-<source>-connector,打开最新版本目录,选择匹配目标系统的 wheel(Windows x64 为 -win_amd64.whl,Linux x64 为 -linux_x86_64.whl,macOS Apple Silicon 为 -macosx_<ver>arm64.whl);cp310-abi3 标签表示覆盖 Python 3.10+。下载命令(bash):curl -fSL --retry 3 --retry-all-errors -o cdata<source>connector-<ver>-cp310-abi3-win_amd64.whl "https://maven.cdata.com/p/python/cdata-<source>-connector/<ver>/cdata<source>connector-<ver>-cp310-abi3-win_amd64.whl"。安装:python -m pip install cdata<source>_connector-<ver>-cp310-abi3-win_amd64.whl;建议用虚拟环境。验证:python -c "import cdata.<source> as m; print('paramstyle:', m.paramstyle, '| apilevel:', m.apilevel)",应为 paramstyle: qmark | apilevel: 2.0。

许可证激活:Python Connector 按机器单独授权,与 JDBC/ADO.NET/ODBC 版本相互独立。未激活时首次查询会报找不到有效许可证。激活器位于 site-packages/cdata/installlic_<source>/(Windows 为 install-license.exe,macOS/Linux 为 install-license.sh),须在其所在文件夹内交互运行。试用回答 Name/Email;已购密钥以参数传入,且应在 AI 会话外用普通终端执行。

连接用法:import cdata.<source> as mod;conn = mod.connect(CONNECTION_STRING);cursor 用 ? 占位符并传列表,始终参数化,勿字符串拼接 SQL;INSERT/UPDATE/DELETE 后调用 conn.commit()。OAuth 源可将 OAuthSettingsLocation 指向发现阶段已填充的令牌文件。SQLAlchemy 方言为 cdata.sqlalchemy_<source>(1.4)与 cdata.sqlalchemy2_<source>(2.0),URL 形如 salesforce:///?<connection-string-properties>。

限制与排错:报“Could not find a valid license…”说明未激活,需运行 install-license;报需要 OAuthClientId/OAuthClientSecret 说明源无内置 OAuth 应用,须在连接字符串提供;不要用 with mod.connect(...) 上下文管理器,改用 try/finally;ModuleNotFoundError 说明 wheel 未装到当前解释器;install-license.exe 挂起或 prod.inf 报错应在其目录内带 Name/Email 或产品密钥参数运行。