Перейти к основному содержимому
Версия: 2.0.x

CREATE REPOSITORY

Создает репозиторий в удаленной системе хранения, который используется для хранения снимков данных для резервного копирования и восстановления данных.

подсказка

Для обзора резервного копирования и восстановления, пожалуйста, см. руководство по резервному копированию и восстановлению.

ВНИМАНИЕ

Только пользователи с привилегией ADMIN могут создавать репозиторий.

Подробные инструкции по удалению репозитория см. в DROP REPOSITORY.

Синтаксис

CREATE [READ ONLY] REPOSITORY <repository_name>
WITH BROKER
ON LOCATION "<repository_location>"
PROPERTIES ("key"="value", ...)

Параметры

ПараметрОписание
READ ONLYСоздать репозиторий только для чтения. Обратите внимание, что вы можете только восстанавливать данные из репозитория только для чтения. При создании одного и того же репозитория для двух cluster для миграции данных вы можете создать репозиторий только для чтения для нового cluster и предоставить ему только права RESTORE.
repository_nameИмя репозитория. О соглашениях по именованию см. Системные ограничения.
repository_locationРасположение репозитория в удаленной системе хранения.
PROPERTIESМетод учетных данных для доступа к удаленной системе хранения.

PROPERTIES:

Selena поддерживает создание репозиториев в HDFS, AWS S3 и Google GCS.

  • Для HDFS:

    • "username": Имя пользователя учетной записи, которую вы хотите использовать для доступа к NameNode cluster HDFS.
    • "password": Пароль учетной записи, которую вы хотите использовать для доступа к NameNode cluster HDFS.
  • Для AWS S3:

    • "aws.s3.use_instance_profile": Разрешить ли использовать instance profile и assumed role в качестве методов учетных данных для доступа к AWS S3. По умолчанию: false.

      • Если вы используете учетные данные на основе IAM пользователя (Access Key и Secret Key) для доступа к AWS S3, вам не нужно указывать этот параметр, и вам нужно указать "aws.s3.access_key", "aws.s3.secret_key" и "aws.s3.region".
      • Если вы используете Instance Profile для доступа к AWS S3, вам нужно установить этот параметр в true и указать "aws.s3.region".
      • Если вы используете Assumed Role для доступа к AWS S3, вам нужно установить этот параметр в true и указать "aws.s3.iam_role_arn" и "aws.s3.region".
    • "aws.s3.access_key": Access Key ID, который вы можете использовать для доступа к Amazon S3 bucket.

    • "aws.s3.secret_key": Secret Access Key, который вы можете использовать для доступа к Amazon S3 bucket.

    • "aws.s3.iam_role_arn": ARN IAM роли, которая имеет привилегии на AWS S3 bucket, где хранятся ваши файлы данных. Если вы хотите использовать assumed role в качестве метода учетных данных для доступа к AWS S3, вы должны указать этот параметр. Затем Selena примет эту роль при анализе ваших данных Hive с помощью Hive catalog.

    • "aws.s3.region": Регион, в котором находится ваш AWS S3 bucket. Пример: us-west-1.

ПРИМЕЧАНИЕ

Selena поддерживает создание репозиториев в AWS S3 только по протоколу S3A. Поэтому при создании репозиториев в AWS S3 вы должны заменить s3:// в S3 URI, который вы передаете как расположение репозитория в ON LOCATION, на s3a://.

  • Для Google GCS:
    • "fs.s3a.access.key": Access Key, который вы можете использовать для доступа к Google GCS bucket.
    • "fs.s3a.secret.key": Secret Key, который вы можете использовать для доступа к Google GCS bucket.
    • "fs.s3a.endpoint": Endpoint, который вы можете использовать для доступа к Google GCS bucket. Не указывайте https в адресе endpoint.

ПРИМЕЧАНИЕ

Selena поддерживает создание репозиториев в Google GCS только по протоколу S3A. Поэтому при создании репозиториев в Google GCS вы должны заменить префикс в GCS URI, который вы передаете как расположение репозитория в ON LOCATION, на s3a://.

  • Для MinIO:
    • "aws.s3.access_key": Access Key, который вы можете использовать для доступа к MinIO bucket.
    • "aws.s3.secret_key": Secret Key, который вы можете использовать для доступа к MinIO bucket.
    • "aws.s3.endpoint": Endpoint, который вы можете использовать для доступа к MinIO bucket.

Примеры

Пример 1: Создать репозиторий с именем hdfs_repo в Apache™ Hadoop® cluster.

CREATE REPOSITORY hdfs_repo
WITH BROKER
ON LOCATION "hdfs://x.x.x.x:yyyy/repo_dir/backup"
PROPERTIES(
"username" = "xxxxxxxx",
"password" = "yyyyyyyy"
);

Пример 2: Создать репозиторий только для чтения с именем s3_repo в Amazon S3 bucket bucket_s3.

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: Создать репозиторий с именем gcs_repo в Google GCS bucket bucket_gcs.

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_repo в MinIO bucket bucket_minio.

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

Пример 5: Создать репозиторий с именем kerberos_repo в Apache™ Hadoop® cluster с включенным Kerberos.

CREATE REPOSITORY kerberos_repo
WITH BROKER
ON LOCATION "hdfs://nameservices1/user/hive/backup"
PROPERTIES(
"hadoop.security.authentication" = "kerberos",
"kerberos_principal" = "sr/cs01.selena.com@SELENA.COM",
"kerberos_keytab" = "/home/disk1/user1/sr.keytab"
);