CREATE REPOSITORY
在远程存储系统中创建一个存储库,用于存储数据快照以进行数据备份和恢复。
有关备份和恢复的概述,请参阅备份和恢复指南。
注意
只有具有 ADMIN 权限的用户才能创建存储库。
有关删除存储库的详细说明,请参阅DROP REPOSITORY。
语法
CREATE [READ ONLY] REPOSITORY <repository_name>
WITH BROKER
ON LOCATION "<repository_location>"
PROPERTIES ("key"="value", ...)
参数
参数 | 描述 |
---|---|
只读 | 创建一个只读存储库。 请注意,您只能从只读存储库中恢复数据。 创建两个集群的相同存储库以迁移数据时,您可以为新集群创建一个只读存储库,并仅授予其 RESTORE 权限。 |
repository_name | 存储库名称。 有关命名约定,请参见系统限制。 |
repository_location | 存储库在远程存储系统中的位置。 |
PROPERTIES | 用于访问远程存储系统的凭证方法。 |
PROPERTIES:
StarRocks 支持在 HDFS、AWS S3 和 Google GCS 中创建存储库。
-
对于 HDFS
- "username":您要用来访问 HDFS 集群 NameNode 的帐户的用户名。
- "password":您要用来访问 HDFS 集群 NameNode 的帐户的密码。
-
对于 AWS S3
-
"aws.s3.use_instance_profile":是否允许使用实例配置文件和承担角色作为访问 AWS S3 的凭证方法。 默认值:
false
。- 如果您使用基于 IAM 用户的凭证(访问密钥和私有密钥)访问 AWS S3,则无需指定此参数,而是需要指定“aws.s3.access_key”、“aws.s3.secret_key”和“aws.s3.region”。
- 如果您使用实例配置文件访问 AWS S3,则需要将此参数设置为
true
,并指定“aws.s3.region”。 - 如果您使用承担角色访问 AWS S3,则需要将此参数设置为
true
,并指定“aws.s3.iam_role_arn”和“aws.s3.region”。
-
"aws.s3.access_key":您可用于访问 Amazon S3 存储桶的访问密钥 ID。
-
"aws.s3.secret_key":您可用于访问 Amazon S3 存储桶的私有访问密钥。
-
"aws.s3.iam_role_arn":有权访问您存储数据文件的 AWS S3 存储桶的 IAM 角色的 ARN。 如果您想要使用承担角色作为访问 AWS S3 的凭证方法,则必须指定此参数。 然后,StarRocks 会在使用 Hive catalog 分析 Hive 数据时承担此角色。
-
"aws.s3.region":您的 AWS S3 存储桶所在的区域。 示例:
us-west-1
。
-
注意
StarRocks 仅支持根据 S3A 协议在 AWS S3 中创建存储库。 因此,在 AWS S3 中创建存储库时,必须将您在
ON LOCATION
中作为存储库位置传递的 S3 URI 中的s3://
替换为s3a://
。
- 对于 Google GCS
- "fs.s3a.access.key":您可用于访问 Google GCS 存储桶的访问密钥。
- "fs.s3a.secret.key":您可用于访问 Google GCS 存储桶的私有密钥。
- "fs.s3a.endpoint":您可用于访问 Google GCS 存储桶的端点。 请勿在端点地址中指定
https
。
注意
StarRocks 仅支持根据 S3A 协议在 Google GCS 中创建存储库。 因此,在 Google GCS 中创建存储库时,必须将您在
ON LOCATION
中作为存储库位置传递的 GCS URI 中的前缀替换为s3a://
。
- 对于 MinIO
- "aws.s3.access_key":您可用于访问 MinIO 存储桶的访问密钥。
- "aws.s3.secret_key":您可用于访问 MinIO 存储桶的私有密钥。
- "aws.s3.endpoint":您可用于访问 MinIO 存储桶的端点。
示例
示例 1:在 Apache™ Hadoop® 集群中创建名为 hdfs_repo
的存储库。
CREATE REPOSITORY hdfs_repo
WITH BROKER
ON LOCATION "hdfs://x.x.x.x:yyyy/repo_dir/backup"
PROPERTIES(
"username" = "xxxxxxxx",
"password" = "yyyyyyyy"
);
示例 2:在 Amazon S3 存储桶 bucket_s3
中创建名为 s3_repo
的只读存储库。
CREATE READ ONLY REPOSITORY s3_repo
WITH BROKER
ON LOCATION "s3a://bucket_s3/backup"
PROPERTIES(
"aws.s3.access_key" = "XXXXXXXXXXXXXXXXX",
"aws.s3.secret_key" = "yyyyyyyyyyyyyyyyy",
"aws.s3.region" = "us-east-1"
);
示例 3:在 Google GCS 存储桶 bucket_gcs
中创建名为 gcs_repo
的存储库。
CREATE REPOSITORY gcs_repo
WITH BROKER
ON LOCATION "s3a://bucket_gcs/backup"
PROPERTIES(
"fs.s3a.access.key" = "xxxxxxxxxxxxxxxxxxxx",
"fs.s3a.secret.key" = "yyyyyyyyyyyyyyyyyyyy",
"fs.s3a.endpoint" = "storage.googleapis.com"
);
示例 4:在 MinIO 存储桶 bucket_minio
中创建名为 minio_repo
的存储库。
CREATE REPOSITORY minio_repo
WITH BROKER
ON LOCATION "s3://bucket_minio/backup"
PROPERTIES(
"aws.s3.access_key" = "XXXXXXXXXXXXXXXXX",
"aws.s3.secret_key" = "yyyyyyyyyyyyyyyyy",
"aws.s3.endpoint" = "http://minio:9000"
);