Arctic URI¶
提供给 Arctic 实例的 URI 用于指定存储后端及其配置。
S3¶
S3 URI 连接方案的形式为 s3(s)://<s3 end point>:<s3 bucket>[?options]。
如果与安全端点通信,请使用 s3s 作为协议。
Options 是一个查询字符串,用于指定连接特定选项,形式为使用 & 连接的 <name>=<value> 对。
S3 的可用选项
| 选项 | 描述 |
|---|---|
| port | 用于 S3 连接的端口 |
| region | S3 区域 |
| use_virtual_addressing | 是否使用虚拟寻址访问 S3 存储桶 |
| access | S3 访问密钥 |
| secret | S3 秘密访问密钥 |
| path_prefix | S3 存储桶内用于数据存储的路径 |
| aws_auth | AWS 认证方法。如果设置为 default (或为了向后兼容设置为 true),将通过 AWS 默认凭证提供者链计算端点认证。如果设置为 sts,将使用 AWS Security Token Service (STS) 作为认证方法。如果未提供任何选项,将不使用 AWS 认证,您应在 URI 中指定 access 和 secret。关于 sts 的更多信息请参见 此处 |
| aws_profile | 仅当 aws_auth 设置为 sts 时有效。与 AWS Security Token Service (STS) 一起使用的 AWS profile。关于 sts 的更多信息请参见 此处 |
注意:连接到 AWS 时,如果给定的端点指定了区域且未设置 region,则 region 可以自动从端点推断出来。
Azure¶
Azure URI 连接方案的形式为 azure://[options]。它基于 Azure 连接字符串,并包含用于配置 ArcticDB 的额外选项。更多详情请参阅 Azure。
options 是一个字符串,用于指定连接特定选项,形式为使用 ; 连接的 <name>=<value> 对(最后一个键值对不应包含末尾的 ;)。
ArcticDB 特定的额外选项
| 选项 | 描述 |
|---|---|
| Container | 用于 blob 的 Azure 容器 |
| Path_prefix | Azure 容器内用于数据存储的路径 |
| CA_cert_path | (仅限 Linux 平台) Azure CA 证书路径。如果未设置,将使用 python ssl.get_default_verify_paths().cafile。如果在提供的路径中找不到证书,将抛出不包含有意义错误代码的 Azure 异常。更多详情请参阅 此处。例如,Failed to iterate azure blobs 'C' 0:。 |
| CA_cert_dir | (仅限 Linux 平台) Azure CA 证书目录。如果未设置,将使用 python ssl.get_default_verify_paths().capath。仅当对应的哈希文件 存在时,证书才能使用。如果在提供的路径中找不到证书,将抛出不包含有意义错误代码的 Azure 异常。更多详情请参阅 此处。例如,Failed to iterate azure blobs 'C' 0:。 |
对于非 Linux 平台,不能设置 CA_cert_path 和 CA_cert_dir。请使用操作系统设置配置 CA 证书相关选项。对于 Windows,请参阅 此处
异常:Azure 异常消息总是以 {AZURE_SDK_HTTP_STATUS_CODE}:{AZURE_SDK_REASON_PHRASE} 结尾。
提供的状态码详情请参阅 azure-sdk-for-cpp。
请注意,由于 Azure C++ SDK 中的一个 bug,Azure 可能在异常中不提供有意义的状态码和原因短语。要调试这些情况,请设置环境变量 export AZURE_LOG_LEVEL 为 1 以开启 SDK 调试日志记录。
LMDB¶
LMDB 连接方案的形式为 lmdb:///<path to store LMDB files>[?options]。
Options 是一个查询字符串,用于指定连接特定选项,形式为使用 & 连接的 <name>=<value> 对。
| 选项 | 描述 |
|---|---|
| map_size | LMDB map 大小(参见 此处)。字符串。支持的格式有 "150MB" / "20GB" / "3TB" 唯一支持的单位是 MB / GB / TB。 在 Windows 和 MacOS 上,LMDB 将实例化一个此大小的文件,因此您需要将其设置为系统有足够空间的合理值,并且它有一个较小的默认值(约 1GB)。在 Linux 上,这是 LMDB 使用空间的上限,默认值较大(约 100GB)。 ArcticDB 为每个 library 创建一个 LMDB 数据库,因此 map_size 将是每个 library 的大小。 |
连接字符串示例包括 lmdb:///home/user/my_lmdb 或 lmdb:///home/user/my_lmdb?map_size=2GB。
内存¶
内存连接方案的形式为 mem://。
存储是 Arctic 实例本地的。