Перенос данных из Cassandra в Azure Cosmos DB для учетной записи Apache Cassandra с помощью Arcion

ПРИМЕНИМО К: Кассандра

API для Cassandra в Azure Cosmos DB стал отличным выбором для корпоративных рабочих нагрузок, работающих в Apache Cassandra, по многим причинам, например:

  • Отсутствие дополнительных издержек при управлении и мониторинге: Она устраняет издержки на управление множеством параметров в файлах ОС, виртуальной машины Java и yaml и их взаимодействие.

  • Значительное сокращение затрат. Azure Cosmos DB позволяет уменьшить расходы, в том числе на виртуальные машины, пропускную способность и все применимые лицензии. Кроме того, вам не нужно управлять центрами обработки данных, серверами, SSD-накопителями, сетями и расходами на электроэнергию.

  • Возможность использования существующего кода и средств. Azure Cosmos DB предоставляет совместимость на уровне сетевого протокола с имеющимися пакетами SDK и средствами для Cassandra. Такая совместимость гарантирует, что вы сможете использовать существующую базу кода с Azure Cosmos DB для Apache Cassandra с тривиальными изменениями.

Существуют различные способы переноса рабочих нагрузок базы данных с одной платформы на другую. Arcion — это инструмент для безопасной и надежной миграции из разных СУБД на платформу Azure Cosmos DB без простоя. В этой статье описаны шаги, необходимые для переноса данных из базы данных Apache Cassandra в Azure Cosmos DB для Apache Cassandra с помощью Arcion.

Примечание

Это предложение Arcion в настоящее время находится на этапе бета-версии. Для получения дополнительных сведений обратитесь в службу поддержки Arcion.

Преимущества миграции с помощью Arcion

Решение для миграции Arcion позволяет поэтапно переносить сложные рабочие нагрузки. Вот некоторые ключевые аспекты плана миграции Arcion с нулевым временем простоя:

  • Это решение обеспечивает автоматическую миграцию бизнес-логики (таблиц, индексов, представлений) из базы данных Apache Cassandra в Azure Cosmos DB. Создавать схемы вручную не требуется.

  • Arcion поддерживает репликацию баз данных большого объема в параллельном режиме. Решение обеспечивает синхронизацию исходной и целевой платформ во время миграции с применением методики под названием Change-Data-Capture (CDC). С помощью CDC Arcion постоянно извлекает поток изменений из базы данных-источника (Apache Cassandra) и применяет их к целевой базе данных (Azure Cosmos DB).

  • Это решение является отказоустойчивым и обеспечивает создание ровно одного экземпляра каждого фрагмента данных даже при сбое оборудования или программного обеспечения в системе.

  • Оно обеспечивает защиту данных во время передачи благодаря таким методам обеспечения безопасности, как TLS и шифрование.

Этапы миграции

В этом разделе описаны этапы настройки Arcion и переноса информации из базы данных Apache Cassandra для Azure Cosmos DB.

  1. На компьютере, где планируется установить средство репликации Arcion, добавьте сертификат безопасности. Этот сертификат нужен решению Arcion, чтобы установить TLS-подключение с указанной учетной записью Azure Cosmos DB. Чтобы добавить сертификат, выполните указанные ниже действия.

    wget https://cacert.omniroot.com/bc2025.crt
    mv bc2025.crt bc2025.cer
    keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
    
  2. Вы можете установить Arcion и двоичные файлы этого решения, запросив демонстрацию на веб-сайте Arcion. Кроме того, можно отправить электронное письмо команде данного решения.

    Загрузка средства репликации Arcion

    Файлы средства репликации Arcion

  3. В окне терминала CLI настройте конфигурацию базы данных-источника. Откройте файл конфигурации с помощью команды vi conf/conn/cassandra.yml и добавьте разделенный запятыми список IP-адресов узлов Cassandra, номер порта, имя пользователя, пароль и другие необходимые сведения. Ниже приведен пример файла конфигурации:

    type: CASSANDRA
    
    host: 172.17.0.2
    port: 9042
    
    username: 'cassandra'
    password: 'cassandra'
    
    max-connections: 30
    
    

    Откройте редактор подключения Cassandra

    Конфигурация подключения Cassandra

    Указав конфигурационные данные, сохраните и закройте файл.

  4. Также можно настроить файл фильтра базы данных-источника. Файл фильтра указывает, какие схемы или таблицы нужно перенести. Откройте файл конфигурации с помощью команды vi filter/cassandra_filter.yml и введите следующие конфигурационные данные:

    
    allow:
    -	schema: “io_arcion”
    Types: [TABLE]
    

    Задав конфигурацию фильтра базы данных, сохраните и закройте файл.

  5. Далее нужно настроить конфигурацию целевой базы данных. Перед определением конфигурации создайте учетную запись Azure Cosmos DB для Apache Cassandra , а затем создайте пространство ключей и таблицу для хранения перенесенных данных. Так как вы выполняете миграцию с Apache Cassandra на API для Cassandra в Azure Cosmos DB, можно использовать тот же ключ секции, который использовался с Apache cassandra.

  6. Перед переносом данных увеличьте пропускную способность контейнера до объема, необходимого для быстрого переноса приложения. Например, можно увеличить пропускную способность до 100000 ЕЗ/с. Масштабирование пропускной способности перед началом миграции поможет перенести данные за меньшее время.

    Масштабирование контейнера Azure Cosmos DB по всему

    После завершения миграции уменьшите пропускную способность. Оценить пропускную способность, необходимую после переноса данных, можно на основе объема хранимых данных и числа единиц запросов (ЕЗ), необходимых для каждой операции. Дополнительные сведения о том, как оценить требуемую пропускную способность, см. в статьях Обеспечение необходимой пропускной способности для контейнеров и баз данных и Оценка количества единиц запросов в секунду с помощью планировщика ресурсов Azure Cosmos DB.

  7. Получите точку контакта, порт, имя пользователя и основной пароль учетной записи Azure Cosmos DB из области Строка подключения . Эти значения будут использоваться в файле конфигурации.

  8. В окне терминала CLI настройте конфигурацию целевой базы данных. Откройте файл конфигурации с помощью команды vi conf/conn/cosmosdb.yml и добавьте разделенный запятыми список URI узлов, номер порта, имя пользователя, пароль и другие необходимые параметры. В примере показано содержимое файла конфигурации.

    type: COSMOSDB
    
    host: '<Azure Cosmos DB account’s Contact point>'
    port: 10350
    
    username: 'arciondemo'
    password: '<Your Azure Cosmos DB account’s primary password>'
    
    max-connections: 30
    
  9. Затем перенесите данные с помощью Arcion. Средство репликации Arcion можно запустить в полном режиме или в режиме моментального снимка.

    • Полный режим — в этом режиме средство репликации продолжает работу после миграции и отслеживает все изменения в исходной системе Apache Cassandra. Если он обнаруживает какие-либо изменения, они реплицируются в целевой учетной записи Azure Cosmos DB в режиме реального времени.

    • Режим моментального снимка — в этом режиме можно выполнить миграцию схемы и однократную репликацию данных. При этом репликация в режиме реального времени не поддерживается.

    С помощью двух описанных выше режимов миграцию можно выполнить с нулевым временем простоя.

  10. Чтобы перенести данные, используя терминал CLI в средстве репликации Arcion, выполните следующую команду:

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing
    

    В пользовательском интерфейсе средства репликации отображается ход выполнения. Когда миграция схемы будет завершена, а моментальный снимок создан, индикатор хода выполнения достигнет уровня 100 %. После завершения миграции можно проверить данные в целевой базе данных Azure Cosmos DB.

    Результаты переноса данных Cassandra

  11. Поскольку для миграции использовался полный режим, вы можете выполнять такие операции, как вставка, обновление и удаление данных, в исходной базе Apache Cassandra. Затем убедитесь, что они реплицируются в режиме реального времени в целевой базе данных Azure Cosmos DB. После миграции обязательно уменьшите пропускную способность, настроенную для контейнера Azure Cosmos DB.

  12. Вы можете в любой момент остановить средство репликации и перезапустить его с параметром --resume. Репликация возобновляется с момента остановки, при этом согласованность данных не нарушается. В команде ниже показано, как использовать параметр resume.

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing --resume
    

Дополнительные сведения о миграции данных в целевую систему и о миграции в режиме реального времени см. в демонстрационном примере для средства репликации Arcion.

Дальнейшие действия