在 Azure 上手动创建 Eon 模式数据库
满足在 Azure 上使用 Eon 模式数据库的群集和存储要求后,就可以创建 Eon 模式数据库了。可以使用 admintools create_db
工具创建 Eon 模式数据库。
创建身份验证文件
如果您的数据库将使用托管标识向 Azure 存储容器进行身份验证,则无需向 create_db
工具提供任何其他配置信息。
如果您的数据库不使用托管标识,则必须向 create_db
提供配置文件中的身份验证信息。它必须至少包含 AzureStorageCredentials 参数,该参数定义 Vertica 将用于访问 Blob 存储的一个或多个帐户名称和密钥。它还可以包含 AzureStorageEnpointConfig 参数,该参数定义要使用的备用终结点,而不是默认 Azure 主机名。如果使用 Azure 存储模拟器(例如 Azurite)创建测试环境,则此选项很有用。
重要
Vertica 官方不支持将 Azure 存储仿真器作为公共存储位置。下表定义了可以在这两个参数中设置的值。
- AzureStorageCredentials
- JSON 对象的集合,其中每个对象指定一个端点的连接凭据。此参数优先于 Azure 托管标识。
该集合必须至少包含一个对象,并且可能会包含多个对象。每个对象必须至少指定
accountName
或blobEndpoint
之一,并且至少指定accountKey
或sharedAccessSignature
之一。accountName
:如果未指定,则使用blobEndpoint
标签。blobEndpoint
:带有可选端口的主机名 (host:port
)。如果未指定,则使用account.blob.core.windows.net
。accountKey
:帐户或端点的访问密钥。sharedAccessSignature
:用于更精细访问控制的访问令牌(如果 Azure 端点正在使用)。
- AzureStorageEndpointConfig
- JSON 对象的集合,其中每个对象指定一个端点的配置元素。每个对象必须至少指定
accountName
或blobEndpoint
之一。accountName
:如果未指定,则使用blobEndpoint
标签。blobEndpoint
:带有可选端口的主机名 (host:port
)。如果未指定,则使用account.blob.core.windows.net
。protocol
:HTTPS(默认)或 HTTP。isMultiAccountEndpoint
:如果端点支持多个帐户,则为 true,否则为 false(默认为 false)。要使用多帐户访问权限,则必须在 URI 中包含帐户名称。如果 URI 路径包含帐户,则系统将假定此值为 true,但显式设置为 false 则除外。
身份验证配置文件是一个包含配置参数名称及其值的文本文件。这些值采用 JSON 格式。该文件的名称并不重要。以下示例使用文件名 auth_params.conf
。
以下示例是托管在 Azure 上的存储帐户的配置文件。存储帐户名称为 mystore,键值为占位符。在您自己的配置文件中,您必须提供存储帐户的访问密钥。您可以通过右键单击 Azure 存储资源管理器中的存储帐户并选择复制主键 (Copy Primary Key) 来找到此值。
AzureStorageCredentials=[{"accountName": "mystore", "accountKey": "access-key"}]
以下示例显示了一个配置文件,该文件定义了使用 Azurite 存储系统托管在本地系统上的存储容器的帐户。默认情况下,用户帐户和密钥是 Azurite 提供的“已知”帐户。由于此配置使用备用存储终结点,因此它还定义了 AzureStorageEndpointConfig 参数。除了重申帐户名称和终结点定义之外,此示例还将协议设置为非加密 HTTP。
重要
为了清楚起见,此示例对 JSON 值的内容进行了换行。在实际的配置文件中,不能对这些值进行换行。它们必须在一行上。AzureStorageCredentials=[{"accountName": "devstoreaccount1", "blobEndpoint": "127.0.0.1:10000 ",
"accountKey":
"Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
}]
AzureStorageEndpointConfig=[{"accountName": "devstoreaccount1",
"blobEndpoint": "127.0.0.1:10000", "protocol": "http"}]
创建 Eon 模式数据库
可以使用 admintools create_db
工具创建 Eon 模式数据库。您传递给此工具的必需实参包括:
create_db
的其他一些常见可选实参包括:
要查看 create_db 工具的所有实参,请运行以下命令:
admintools -t create_db --help
以下示例演示了如何使用以下设置创建 Eon 模式数据库:
-
Vertica 将使用名为 mystore 的存储帐户。
-
公共数据将存储在名为
verticadb
的目录中,该目录位于名为db_blobs
的存储容器中。 -
Vertica 访问存储容器所需的身份验证信息位于当前目录中名为
auth_params.conf
的文件中。此文件的内容显示在创建身份验证文件下的第一个示例中。 -
群集中节点的主机名是 node01 到 node03。
$ admintools -t create_db \
--communal-storage-location=azb://mystore/db_blobs/verticadb \
-x auth_params.conf -s node01,node02,node03 \
-d verticadb --depot-path /vertica/depot --shard-count 3 \
-p 'mypassword'