Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Обновление версии PostgreSQL
    • Изменение настроек кластера и базы данных
    • Подключение к DataLens
    • Управление хостами PostgreSQL
    • Управление базами данных
    • Управление PostgreSQL-расширениями
    • Управление пользователями БД
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Практические руководства
    • Создание кластера PostgreSQL для 1С
    • Выгрузка базы данных в Yandex Data Proc
    • Анализ производительности и оптимизация
    • Репликация и миграция
      • Логическая репликация PostgreSQL
      • Миграция базы данных в Managed Service for PostgreSQL
      • Миграция базы данных из Managed Service for PostgreSQL
      • Создание логической реплики Amazon RDS для PostgreSQL в Managed Service for PostgreSQL
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for PostgreSQL
    • Квоты и лимиты
    • Хранилище в Managed Service for PostgreSQL
    • Резервные копии
    • Назначение ролей
    • Управление соединениями
    • Репликация
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки PostgreSQL
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • Database
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Подключение
    • Изменение кластера
    • Настройки параметров кластера
    • Перемещение и восстановление кластера
    • Мониторинг и логи
    • Все вопросы на одной странице
  1. Практические руководства
  2. Выгрузка базы данных в Yandex Data Proc

Выгрузка базы данных в Yandex Data Proc

Статья создана
Yandex Cloud
  • Перед началом работы
  • Подготовка кластера-источника
  • Импорт базы данных
    • Импорт в Yandex Object Storage
    • Импорт в директорию HDFS
    • Импорт в Apache Hive
    • Импорт в Apache HBase
  • Проверка корректности импорта
    • Проверка импорта в Yandex Object Storage
    • Проверка импорта в директорию HDFS
    • Проверка импорта в Apache Hive
    • Проверка импорта в Apache HBase
  • Удаление созданных ресурсов

Утилита Sqoop позволяет импортировать базы данных в кластер Yandex Data Proc. В зависимости от конфигурации кластера Yandex Data Proc вы можете выполнить импорт в:

  • бакет Yandex Object Storage;
  • директорию HDFS;
  • Apache Hive;
  • Apache HBase.

Чтобы импортировать базы данных кластера-источника с помощью Sqoop в кластер-приемник Yandex Data Proc:

  1. Подготовьте кластер-источник.
  2. Выполните импорт.
  3. Проверьте корректность импорта.

Перед началом работы

Примечание

Разместите кластеры и виртуальную машину в одной облачной сети.

  1. Создайте кластер Yandex Managed Service for PostgreSQL любой подходящей вам конфигурации со следующими настройками:

    • с базой данных db1;
    • с пользователем user1.
  2. Чтобы импортировать данные в бакет Yandex Object Storage:

    1. Создайте бакет с именем my-bucket.
    2. Создайте сервисный аккаунт с именем bucket-sa.
    3. Выдайте этому сервисному аккаунту права на запись в бакет my-bucket.
  3. Создайте кластер Yandex Data Proc любой подходящей вам конфигурации.

    Укажите настройки, соответствующие хранилищу, в которое будут импортированы данные:

    Бакет Yandex Object Storage
    Директория HDFS
    Apache Hive
    Apache HBase
    • Сервисный аккаунт — bucket-sa.
    • Имя бакета — my-bucket.
    • Сервисы — Sqoop.

    Сервисы:

    • HBase,
    • HDFS,
    • Sqoop,
    • Yarn,
    • Zookeeper.
    • Сервисы:

      • HDFS,
      • Hive,
      • Mapreduce,
      • Sqoop,
      • Yarn.
    • Свойства — ключ hive:hive.execution.engine со значением mr.

    Сервисы:

    • HBase,
    • HDFS,
    • Sqoop,
    • Yarn,
    • Zookeeper.
  4. Создайте виртуальную машину для подключения к кластеру-источнику и Yandex Data Proc.

  5. Настройте группы безопасности кластеров и виртуальной машины, чтобы разрешить подключение:

    • к виртуальной машине и кластеру Yandex Data Proc;
    • к кластеру Yandex Managed Service for PostgreSQL.

Подготовка кластера-источника

  1. Подключитесь к базе данных db1 кластера Yandex Managed Service for PostgreSQL от имени пользователя user1.
  2. Наполните базу тестовыми данными. В качестве примера используется простая таблица с именами и возрастом людей:
    1. Создайте таблицу:

      CREATE TABLE persons (
          Name VARCHAR(30) NOT NULL,
          Age INTEGER DEFAULT 0,
          PRIMARY KEY (Name)
      );
      
    2. Наполните таблицу данными:

      INSERT INTO persons (Name, Age) VALUES
          ('Anna', 19),
          ('Michael', 65),
          ('Fred', 28),
          ('Alsou', 50),
          ('Max', 27),
          ('John', 34),
          ('Dmitry', 42),
          ('Oleg', 19),
          ('Alina', 20),
          ('Maria', 28);
      

Импорт базы данных

Чтобы обеспечить параллелизм базы данных, Sqoop позволяет разделять импортируемые данные не только по первичному ключу, но и по другим столбцам таблицы. В примере разделение данных выполняется по столбцу age.

Пусть:

  • FQDN хоста подкластера Yandex Data Proc для хранения данных: rc1c-dataproc-d-vfw6fa8xqfukq23m.mdb.yandexcloud.net.
  • Имя базы данных Apache Hive: db-hive.
  • Имя семейства столбцов Apache HBase: family1.
  • Имена директорий в Yandex Object Storage и HDFS: import-directory.
  • Имена таблиц HBase и Hive: import-table.
  • Идентификатор кластера Yandex Managed Service for PostgreSQL: c9qgcd6lplrsjt9jhtuu.

Импорт в Yandex Object Storage

  1. Выполните все необходимые подготовительные шаги.

  2. Выполните команду:

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
        --connect "jdbc:postgresql://c-c9qgcd6lplrsjt9jhtuu.rw.mdb.yandexcloud.net:6432/db1" \
        --username "user1" \
        --P \
        --table "persons" \
        --target-dir "s3a://my-bucket/import-directory" \
        --split-by "age"
    

Импорт в директорию HDFS

  1. Выполните все необходимые подготовительные шаги.

  2. Выполните команду:

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
        --connect "jdbc:postgresql://c-c9qgcd6lplrsjt9jhtuu.rw.mdb.yandexcloud.net:6432/db1" \
        --username "user1" \
        --table "persons" \
        --target-dir "import-directory" \
        --P \
        --split-by "age"
    

Импорт в Apache Hive

  1. Выполните все необходимые подготовительные шаги.

  2. Выполните команду:

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
        --connect "jdbc:postgresql://c-c9qgcd6lplrsjt9jhtuu.rw.mdb.yandexcloud.net:6432/db1" \
        --username "user1" \
        --P \
        --table "persons" \
        --hive-import \
        --create-hive-table \
        --hive-database "db-hive" \
        --hive-table "import-table" \
        --split-by "age"
    

Импорт в Apache HBase

  1. Выполните все необходимые подготовительные шаги.

  2. Выполните команду:

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
        --connect "jdbc:postgresql://c-c9qgcd6lplrsjt9jhtuu.rw.mdb.yandexcloud.net:6432/db1" \
        --username "user1" \
        --P \
        --table "persons" \
        --hbase-create-table \
        --column-family "family1" \
        --hbase-table "import-table" \
        --split-by "age"
    

Проверка корректности импорта

Если импорт прошел успешно, вы увидите содержимое таблицы persons.

Проверка импорта в Yandex Object Storage

Скачайте из бакета my-bucket файлы с результатами импорта.

Проверка импорта в директорию HDFS

  1. Подключитесь по SSH к хосту подкластера Data Proc для хранения данных.

  2. Выполните команду:

    hdfs dfs -cat /user/root/import-directory/*
    

Проверка импорта в Apache Hive

  1. Подключитесь по SSH к хосту подкластера Data Proc для хранения данных.

  2. Выполните команду:

    hive -e "SELECT * FROM import-table;"
    

Проверка импорта в Apache HBase

  1. Подключитесь по SSH к хосту подкластера Data Proc для хранения данных.

  2. Выполните команду:

    echo -e "scan 'import-table'" | hbase shell -n
    

Удаление созданных ресурсов

Если созданные ресурсы вам больше не нужны, удалите их:

  1. Удалите виртуальную машину.

  2. Если вы зарезервировали для виртуальной машины публичный статический IP-адрес, освободите и удалите его.

  3. Удалите кластеры:

    • Yandex Managed Service for PostgreSQL;
    • Yandex Data Proc.
  4. Если вы создавали бакет Yandex Object Storage, удалите его.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Подготовка кластера-источника
  • Импорт базы данных
  • Импорт в Yandex Object Storage
  • Импорт в директорию HDFS
  • Импорт в Apache Hive
  • Импорт в Apache HBase
  • Проверка корректности импорта
  • Проверка импорта в Yandex Object Storage
  • Проверка импорта в директорию HDFS
  • Проверка импорта в Apache Hive
  • Проверка импорта в Apache HBase
  • Удаление созданных ресурсов