跳到正文

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_pathCA_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_LEVEL1 以开启 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_lmdblmdb:///home/user/my_lmdb?map_size=2GB

内存

内存连接方案的形式为 mem://

存储是 Arctic 实例本地的。