在 Azure 上手动创建 Eon 模式数据库

满足在 Azure 上使用 Eon 模式数据库的群集和存储要求后,就可以创建 Eon 模式数据库了。可以使用 admintools create_db 工具创建 Eon 模式数据库。

创建身份验证文件

如果您的数据库将使用托管标识向 Azure 存储容器进行身份验证,则无需向 create_db 工具提供任何其他配置信息。

如果您的数据库不使用托管标识,则必须向 create_db 提供配置文件中的身份验证信息。它必须至少包含 AzureStorageCredentials 参数,该参数定义 Vertica 将用于访问 Blob 存储的一个或多个帐户名称和密钥。它还可以包含 AzureStorageEnpointConfig 参数,该参数定义要使用的备用终结点,而不是默认 Azure 主机名。如果使用 Azure 存储模拟器(例如 Azurite)创建测试环境,则此选项很有用。

下表定义了可以在这两个参数中设置的值。

AzureStorageCredentials
JSON 对象的集合,其中每个对象指定一个端点的连接凭据。此参数优先于 Azure 托管标识。

该集合必须至少包含一个对象,并且可能会包含多个对象。每个对象必须至少指定 accountNameblobEndpoint 之一,并且至少指定 accountKeysharedAccessSignature 之一。

  • accountName:如果未指定,则使用 blobEndpoint 标签。
  • blobEndpoint:带有可选端口的主机名 (host:port)。如果未指定,则使用 account.blob.core.windows.net
  • accountKey:帐户或端点的访问密钥。
  • sharedAccessSignature:用于更精细访问控制的访问令牌(如果 Azure 端点正在使用)。
AzureStorageEndpointConfig
JSON 对象的集合,其中每个对象指定一个端点的配置元素。每个对象必须至少指定 accountNameblobEndpoint 之一。
  • 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。

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'