连接到 Apache Cassandra
概念信息
Apache Cassandra 是一个 NoSQL 数据库管理系统。使用 Apache Cassandra 数据连接器导入您的公司的 Cassandra 数据。
说明
Analytics 提供 Cassandra 作为可选的连接器,如果它在您的“数据访问”窗口中不可用,则可能是在安装过程中未选择该连接器。有关详细信息,请参见安装可选的 Analytics 数据连接器和 Python 引擎。
开始之前
要连接到 Cassandra,您必须收集以下信息:
- 数据库服务器的主机名或 IP 地址
- 正确的连接端口
- 您的用户名和密码(如果使用认证)
有关收集连接必备信息的帮助,请联系Cassandra您组织中的管理员。如果您的管理员不能帮助您,您或者您的管理员应该联系Cassandra支持人员。
创建 Cassandra 连接
- 从 Analytics 主菜单中选择导入 > 数据库和应用程序。
- 在新建连接选项卡的 ACL 连接器部分中,选择Cassandra。
提示
您可以通过在过滤连接框中输入搜索字符串来过滤可用连接器的列表。连接器按字母顺序排列。
- 在数据连接设置面板中,输入连接设置,然后在面板底部单击保存并连接。
您可以接受默认的连接名称,也可以输入一个新的名称。
Cassandra的连接被保存到现有连接选项卡。将来,您可以从已保存的连接重新连接到Cassandra。
一旦连接被建立,“数据访问”窗口将打开到暂存区域,并且您可以开始导入数据。有关从Cassandra导入数据的帮助,请参见使用数据访问窗口。
连接设置
基本设置
| 设置 | 描述 | 示例 |
|---|---|---|
| 主机 |
Cassandra 服务器的 IP 地址或者主机名。 |
|
| 端口 | Cassandra 数据库的 TCP 端口。 | 9042 |
| 默认密钥空间 | 要在 Cassandra 中连接到的默认密钥空间(架构)。 | |
| 认证机制 |
要用来连接到 Cassandra 服务器的认证机制。可用的选项如下所示:
|
无认证 |
| 用户名 | 要用来访问 Cassandra 服务器的用户名。 | |
| 密码 | 与所提供的用户名相对应的密码。 |
高级设置
| 设置 | 描述 | 示例 |
|---|---|---|
| 查询模式 |
指定要在向 Cassandra 发送查询时使用的查询模式。可用的选项是:
|
带有 CQL 回退功能的 SQL |
| 可调整的一致性 | 必须处理查询以使该查询成功的特定 Cassandra 副本或者 Cassandra 副本的数量。 | ONE |
| 负载平衡政策 | 指定要使用的负载平衡策略。 | |
| 二进制列长度 | 要为 BLOB 列报告的默认列长度。 | 4000 |
| 字符串列长度 | 要为 ASCII、文本和 VARCHAR 列报告的默认列长度。 | 4000 |
| 虚拟表名称分隔符 | 用于命名从集合生成的虚拟表的分隔符。 虚拟表的名称按顺序包括原始表的名称、分隔符和集合的名称。 |
_vt_ |
| 启用令牌感知 | 指定是否要使用支持令牌的策略来改进负载平衡和延迟。 | |
| 启用延迟感知 | 指定驱动程序是否必须使用延迟感知算法将负载从速度较慢的节点分配出去。 | |
| 启用空值插入 | 指定驱动程序是否必须按照 INSERT 语句中指定的那样插入所有空值。 | |
| 启用区分大小写 |
指定驱动程序是否在架构、表和列名称中区分大小写字母。 如果此选项被启用,则所有架构、表和列都必须是双引号 (")。 |
|
| 对字符串数据类型使用 SQL_WVARCHAR | 指定是否要对文本和 varchar 类型使用 SQL_WVARCHAR。 | |
| 启用分页 | 指定是否要将大型结果集拆分为多个页面。 | |
| 每页行数 | 当启用分页选项被启用后,使用此选项可指定在每个页面上显示的最大行数。 | 10000 |
| SSL 选项 |
指定驱动程序如何使用 SSL 连接到 Cassandra 服务器。可用的选项是:
|
无 SSL |
| 启用服务器主机名验证 | 指定驱动程序是否要求服务器的主机名与 SSL 证书中的主机名匹配。 | |
| Ssltrustedcertspath | 包含用于验证服务器的证书的 .pem 文件的完整路径。 | |
| 客户端证书 | 包含用于验证客户端的证书的 .pem 文件的完整路径。 | |
| 客户端私钥 | 包含用来验证客户端的私钥的文件的完整路径。 | |
| 密钥文件密码 | 在“客户端私钥”域中指定的私钥文件的密码。 |
查询 Cassandra
Apache Cassandra 设计的一个优势是能够存储被非规范化为较少个表的能力。通过利用诸如集、列表和映射之类的嵌套数据结构,可以简化事务处理。但是,Analytics 不支持访问该类型的数据。通过将集合(集、列表和映射)内包含的数据重新规范化为虚拟表,连接器使用户可以直接与数据进行交互,而使数据的存储在 Cassandra 中保持其非规范化形式。
如果表包含任何集合列,则当该表被首次查询时,连接器会创建以下虚拟表:
- 一个“基”表,它包含与实际表相同的数据(集合列除外)。
- 每个集合列的一个虚拟表,它扩展了嵌套数据。
虚拟表引用实际表中的数据,从而使连接器能够访问非规范化数据。通过查询虚拟表,您可以通过 ODBC 访问 Cassandra 集合的内容。
基表和虚拟表显示为数据库中存在的表的列表中的附加表。基表使用与其所代表的实际表相同的名称。代表集合的虚拟表被使用实际表的名称、一个分隔符(默认情况下为 _vt_)和列的名称命名。
示例
ExampleTable 是一个 Cassandra 数据库表,它包含一个名为 pk_int 的整数主键列、一个列表列、一个映射列和一个集列(名为 StringSet)。
包含集合的源表
| pk_int | 列表 | 映射 | StringSet |
|---|---|---|---|
| 1 | ["1","2","3"] | {"S1" : "a", "S2" : "b"} | {"a", "b", "c"} |
| 3 | ["100","101","102","105"] | {"S1" : "t"} | {"a","e"} |
连接器生成多个虚拟表以代表该单个表。第一个虚拟表是基表:
基表
| pk_int |
|---|
| 1 |
| 3 |
基表包含与原始数据库表相同的数据,但集合除外 — 它们被从该表中省略,而被在其他虚拟表中扩展。
以下表显示了重新规范化 List、Map 和 StringSet 列中的数据的虚拟表:
列表
| pk_int | List#index | List#value |
|---|---|---|
| 1 | 0 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 3 | 0 | 100 |
| 3 | 1 | 101 |
| 3 | 2 | 102 |
| 3 | 3 | 105 |
映射
| pk_int | Map#key | Map#value |
|---|---|---|
| 1 | S1 | a |
| 1 | S2 | 十亿 |
| 3 | S1 | 兆 |
StringSet
| pk_int | StringSet#value |
|---|---|
| 1 | a |
| 1 | 十亿 |
| 1 | c |
| 3 | a |
| 3 | e |
虚拟表中的外键列引用实际表中的主键列,并且指示虚拟表行对应于哪个实际表行。其名称以 #index 或 #key 结束的列指示原始列表或映射中的数据的位置。其名称以 #value 结束的列包含集合中的扩展数据。
数据连接器更新
当您升级 Analytics、机器人代理或者 AX 服务器时,您应该测试您的任何使用 Analytics 数据连接器之一(ACCESSDATA 命令)导入数据的脚本。
由第三方数据源或 ODBC 驱动程序供应商进行的更改可能要求更新一个或多个数据连接器。脚本化数据连接可能需要更新以便继续正确工作。
- 重新运行导入更新连接的最轻松方式是使用 Analytics 升级版本中的数据访问窗口手动执行导入。从日志复制 ACCESSDATA 命令并使用它更新您的脚本。
说明
在连接到数据源并重新运行导入之前,请清除连接器缓存以冲刷现有的表名称集。
在数据访问窗口的现有连接选项卡中,在连接器名称旁边选择
> 清除缓存。 - 更新域规范您还可能需要更新脚本主体中的域规范以匹配数据源或 ODBC 驱动程序中的表架构更改。可能的更改包括域名称、域数据类型、域和记录长度。
- 检查任何过滤的结果您还应该检查您在数据导入过程中应用的任何过滤的结果。您还应该检查您在数据导入过程中应用的任何过滤的结果。
Apache Cassandra 数据连接器更改
下面列出了对 Apache Cassandra 数据连接器进行的具体更改。
| Analytics 版本 | 更改 |
|---|---|
|
14.2 |
该连接器不再支持连接到 Apache Cassandra 2.0。 可以建立到 Apache Cassandra 2.1、2.2 和 3.0 的连接。 |