这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
Azure 上的 Eon 模式数据库
您可以在 Azure 上托管的群集上创建
Eon 模式数据库。在此配置中,您的数据库将其数据以公共方式存储在 Azure Blob 存储中。请参阅 Eon 模式,了解有关此数据库模式的详细信息。
Azure 上的 Eon 模式数据库支持 Azure 存储中内置的一些加密功能。您可以透明地使用其静态加密功能,无需配置 Vertica 即可利用它。您可以使用 Microsoft 管理的密钥或客户管理的密钥进行存储加密。Vertica 不支持 Azure 存储的客户端加密和使用客户提供的密钥进行加密。有关 Azure 存储中的静态加密功能的详细信息,请参阅 Azure 文档中的 Azure 数据静态加密页面。
此部分介绍如何创建在 Azure 云上运行的 Eon 模式数据库。
1 - Azure 上 Eon 模式的先决条件
在 Azure 上创建 Eon 模式数据库之前,必须具有数据库群集和 Azure Blob 存储容器来存储数据库的数据。
群集要求
在 Azure 上创建 Eon 模式数据库之前,必须配置一个群集来托管它。有关选择 VM 配置以及群集开始时应使用的节点数的建议,请参阅为 Eon 模式配置 Vertica 群集。
存储需求
Azure 上的 Eon 模式数据库将其数据以公共方式存储在 Azure Blob 存储中。Vertica 仅支持用于公共数据存储的块 Blob 存储,不支持追加或页 Blob 存储。
您必须创建供 Vertica 独占使用的存储路径。此路径可以是 Blob 容器,也可以是 Blob 容器中的文件夹。此路径不得包含任何文件。如果您尝试使用包含文件的容器或文件夹创建 Eon 模式数据库,则 admintools 会返回错误。
您使用 azb://
架构向 Vertica 传递存储路径的 URI。有关此 URI 的格式,请参阅 Azure Blob 存储对象存储。
您还必须配置存储容器,以便 Vertica 有权访问它。根据您使用的身份验证方法,您可能需要向 Vertica 提供凭据才能访问容器。Vertica 可以使用以下方法之一对 Blob 存储容器进行身份验证:
-
使用 Azure 托管标识。这种身份验证方法是透明的,您无需向 Vertica 添加任何身份验证配置信息。Vertica 自动使用绑定到运行它的 VM 的托管标识,来对 Blob 存储容器进行身份验证。有关详细信息,请参阅 Azure 文档中的 Azure AD - Azure 资源托管标识文档页面。
如果您为其他两种受支持的身份验证方法中的任何一种提供凭据,Vertica 将使用它们,而不是使用绑定到 VM 的托管标识进行身份验证。
注意
如果 Azure VM 绑定了多个托管标识,则必须告知 Vertica 在对 Blob 存储容器进行身份验证时使用哪个标识。Vertica 从运行它的 VM 上的标记集获取要使用的标识。
在您的 VM 上,创建一个标记,其键名为 VerticaManagedIdentityClientId,其值是绑定到您的 VM 的托管标识的名称。有关详细信息,请参阅 Azure 文档中的使用标记来组织 Azure 资源和管理层次结构页面。
-
使用对 Blob 存储容器具有完全访问权限的服务帐户的帐户名称和访问密钥凭据。在这种情况下,您可以在创建 Eon 模式数据库时向 Vertica 提供凭据。有关详细信息,请参阅创建身份验证文件。
-
使用共享访问签名 (SAS) 授予 Vertica 对存储容器的访问权限。请参阅 Azure 文档中的使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限。有关详细信息,请参阅创建身份验证文件。
有关 Vertica 如何访问 Azure Blob 存储的详细信息,请参阅 Azure Blob 存储对象存储。
2 - 在 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'