跳到主要内容
版本: 最新版本-3.5

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"
);