Начало работы с адаптером Spanner Cassandra,Начало работы с адаптером Spanner Cassandra,Начало работы с адаптером Spanner Cassandra

1. Введение

Spanner — это полностью управляемая, горизонтально масштабируемая, глобально распределенная служба базы данных, которая отлично подходит как для реляционных, так и для нереляционных рабочих нагрузок.

Интерфейс Cassandra от Spanner позволяет вам воспользоваться полностью управляемой, масштабируемой и высокодоступной инфраструктурой Spanner, используя знакомые инструменты и синтаксис Cassandra.

Чему вы научитесь

  • Как настроить экземпляр Spanner и базу данных.
  • Как преобразовать схему и модель данных Cassandra.
  • Как выполнить массовый экспорт исторических данных из Cassandra в Spanner.
  • Как указать в своем приложении Spanner вместо Cassandra.

Что вам понадобится

  • Проект Google Cloud, подключенный к платежной учетной записи.
  • Получите доступ к машине с установленным и настроенным gcloud CLI или используйте Google Cloud Shell .
  • Веб-браузер, например Chrome или Firefox .

2. Настройка и требования

Создать проект GCP

Войдите в Google Cloud Console и создайте новый проект или используйте существующий. Если у вас ещё нет учётной записи Gmail или Google Workspace, вам необходимо её создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — отображаемое имя участников проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любой момент.
  • Идентификатор проекта уникален для всех проектов Google Cloud и неизменяем (нельзя изменить после установки). Cloud Console автоматически генерирует уникальную строку; обычно вам не важно, какой именно. В большинстве практических работ вам потребуется указать идентификатор проекта (обычно обозначаемый как PROJECT_ID ). Если вам не нравится сгенерированный идентификатор, вы можете сгенерировать другой случайный идентификатор. Вы также можете попробовать использовать свой собственный идентификатор и посмотреть, доступен ли он. После этого шага его нельзя будет изменить, и он останется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трёх значениях можно узнать в документации .

Настройка выставления счетов

Далее вам необходимо следовать руководству пользователя по управлению выставлением счетов и включить выставление счетов в Cloud Console . Новые пользователи Google Cloud могут воспользоваться бесплатной пробной версией стоимостью 300 долларов США . Чтобы избежать списания средств после окончания этого руководства, вы можете отключить экземпляр Spanner в конце работы над кодом, выполнив шаг 9 «Очистка».

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лабораторной работе вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud Console нажмите значок Cloud Shell на верхней правой панели инструментов:

55efc1aaa7a4d3ad.png

Подготовка и подключение к среде займёт всего несколько минут. После завершения вы увидите примерно следующее:

7ffe5cbb04455448.png

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объёмом 5 ГБ и работает в облаке Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять в браузере. Вам не нужно ничего устанавливать.

Следующий

Далее вам предстоит развернуть кластер Cassandra.

3. Развертывание кластера Cassandra (Origin)

Для этой лабораторной работы мы настроим кластер Cassandra с одним узлом на Compute Engine.

1. Создайте виртуальную машину GCE для Cassandra

Чтобы создать экземпляр, используйте команду gcloud compute instances create из облачной оболочки, подготовленной ранее.

gcloud compute instances create cassandra-origin \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB \
--zone=us-central1-a

2. Установите Кассандру

Перейдите в VM Instances со страницы Navigation menu , следуя инструкциям ниже: перейти к экземплярам виртуальной машины .

Найдите виртуальную машину cassandra-origin и подключитесь к ней с помощью SSH, как показано:

ssh в экземпляр виртуальной машины .

Выполните следующие команды для установки Cassandra на созданную вами виртуальную машину, к которой вы подключились по sshed.

Установить Java (зависимость Cassandra)

sudo apt-get update
sudo apt-get install -y openjdk-11-jre-headless

Добавить репозиторий Cassandra

echo "deb [signed-by=/etc/apt/keyrings/apache-cassandra.asc] https://debian.cassandra.apache.org 41x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

sudo curl -o /etc/apt/keyrings/apache-cassandra.asc https://downloads.apache.org/cassandra/KEYS

Установить Кассандру

sudo apt-get update
sudo apt-get install -y cassandra

Установите адрес прослушивания для службы Cassandra.

Здесь мы используем внутренний IP-адрес виртуальной машины Cassandra для дополнительной безопасности.

Запишите IP-адрес вашего хост-компьютера.

Вы можете либо использовать следующую команду в облачной оболочке, либо получить ее со страницы VM Instances облачной консоли.

gcloud compute instances describe cassandra-origin --format="get(networkInterfaces[0].networkIP)" --zone=us-central1-a

ИЛИ

ssh в экземпляр виртуальной машины .

Обновите адрес в файле конфигурации.

Вы можете использовать редактор по вашему выбору для обновления файла конфигурации Cassandra.

sudo vim /etc/cassandra/cassandra.yaml

измените rpc_address: на IP-адрес виртуальной машины, сохраните и закройте файл.

Включить службу Cassandra на виртуальной машине

sudo systemctl enable cassandra
sudo systemctl stop cassandra
sudo systemctl start cassandra
sudo systemctl status cassandra

3. Создайте пространство ключей и таблицу {create-keyspace-and-table}

Мы будем использовать пример таблицы «пользователи» и создадим пространство ключей под названием «аналитика».

export CQLSH_HOST=<IP of the VM added as rpc_address>
/usr/bin/cqlsh

Внутри cqlsh:

-- Create keyspace (adjust replication for production)
CREATE KEYSPACE analytics WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

-- Use the keyspace
USE analytics;

-- Create the users table
CREATE TABLE users (
    id  int PRIMARY KEY,
    active  boolean,
    username  text,
);

-- Insert 5 rows
INSERT INTO users (id, active, username) VALUES (1, true, 'd_knuth');
INSERT INTO users (id, active, username) VALUES (2, true, 'sanjay_ghemawat');
INSERT INTO users (id, active, username) VALUES (3, false, 'gracehopper');
INSERT INTO users (id, active, username) VALUES (4, true, 'brian_kernighan');
INSERT INTO users (id, active, username) VALUES (5, true, 'jeff_dean');
INSERT INTO users (id, active, username) VALUES (6, true, 'jaime_levy');
-- Select all users to verify the inserts.
SELECT * from users;
-- Exit cqlsh
EXIT;

Оставьте сеанс SSH открытым или запишите IP-адрес этой виртуальной машины ( hostname -I ).

Следующий

Далее вам предстоит настроить экземпляр и базу данных Cloud Spanner.

4. Создайте экземпляр Spanner (Target)

В Spanner экземпляр — это кластер вычислительных ресурсов и ресурсов хранения, на котором размещается одна или несколько баз данных Spanner. Для этой практической работы вам потребуется как минимум один экземпляр для размещения базы данных Spanner.

Проверьте версию gcloud SDK

Перед созданием экземпляра убедитесь, что gcloud SDK в Google Cloud Shell обновлен до необходимой версии — любой версии выше gcloud SDK 531.0.0 . Вы можете узнать версию gcloud SDK, выполнив команду ниже.

$ gcloud version | grep Google

Вот пример вывода:

Google Cloud SDK 489.0.0

Если используемая вами версия более ранняя, чем требуемая версия 531.0.0 ( 489.0.0 в предыдущем примере), то вам необходимо обновить Google Cloud SDK, выполнив следующую команду:

sudo apt-get update \
  && sudo apt-get --only-upgrade install google-cloud-cli-anthoscli google-cloud-cli-cloud-run-proxy kubectl google-cloud-cli-skaffold google-cloud-cli-cbt google-cloud-cli-docker-credential-gcr google-cloud-cli-spanner-migration-tool google-cloud-cli-cloud-build-local google-cloud-cli-pubsub-emulator google-cloud-cli-app-engine-python google-cloud-cli-kpt google-cloud-cli-bigtable-emulator google-cloud-cli-datastore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-app-engine-go google-cloud-cli-app-engine-python-extras google-cloud-cli-config-connector google-cloud-cli-package-go-module google-cloud-cli-istioctl google-cloud-cli-anthos-auth google-cloud-cli-gke-gcloud-auth-plugin google-cloud-cli-app-engine-grpc google-cloud-cli-kubectl-oidc google-cloud-cli-terraform-tools google-cloud-cli-nomos google-cloud-cli-local-extract google-cloud-cli-firestore-emulator google-cloud-cli-harbourbridge google-cloud-cli-log-streaming google-cloud-cli-minikube google-cloud-cli-app-engine-java google-cloud-cli-enterprise-certificate-proxy google-cloud-cli

Включить API Spanner

В Cloud Shell убедитесь, что настроен идентификатор вашего проекта. Используйте первую команду ниже, чтобы узнать текущий настроенный идентификатор проекта. Если результат не соответствует ожидаемому, вторая команда ниже установит правильный.

gcloud config get-value project
gcloud config set project [YOUR-DESIRED-PROJECT-ID]

Настройте регион по умолчанию на us-central1 . Вы можете изменить его на другой регион, поддерживаемый региональными настройками Spanner.

gcloud config set compute/region us-central1

Включите API Spanner:

gcloud services enable spanner.googleapis.com

Создайте экземпляр Spanner

В этом разделе вы создадите бесплатный пробный экземпляр или подготовленный экземпляр . В этой лабораторной работе используется идентификатор экземпляра адаптера Cassandra Spanner cassandra-adapter-demo , заданный как переменная SPANNER_INSTANCE_ID с помощью командной строки export . При желании вы можете выбрать собственный идентификатор экземпляра.

Создайте бесплатный пробный экземпляр Spanner

Бесплатный 90-дневный пробный экземпляр Spanner доступен любому пользователю учётной записи Google, в проекте которого включена функция Cloud Billing. Плата не взимается, если вы не решите обновить свой бесплатный пробный экземпляр до платного. В бесплатном пробном экземпляре поддерживается адаптер Spanner Cassandra. Если вы соответствуете требованиям, создайте бесплатный пробный экземпляр, открыв Cloud Shell и выполнив следующую команду:

export SPANNER_INSTANCE_ID=cassandra-adapter-demo
export SPANNER_REGION=regional-us-central1
gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"

Вывод команды:

gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"
Creating instance...done.

5. Перенесите схему Cassandra и модель данных в Spanner.

Начальный и решающий этап переноса данных из базы данных Cassandra в Spanner включает преобразование существующей схемы Cassandra для соответствия требованиям Spanner к структуре и типу данных.

Чтобы упростить этот сложный процесс миграции схемы, используйте любой из двух ценных инструментов с открытым исходным кодом, предоставляемых Spanner:

  1. Инструмент миграции Spanner : этот инструмент помогает мигрировать схему, подключаясь к существующей базе данных Cassandra и перенося её в Spanner. Этот инструмент доступен в составе gcloud cli .
  2. Инструмент для миграции схем Spanner Cassandra : этот инструмент поможет вам преобразовать экспортированный DDL-файл из Cassandra в Spanner. Вы можете использовать любой из этих двух инструментов для выполнения этой лабораторной работы. В этой лабораторной работе мы воспользуемся инструментом миграции Spanner для переноса схемы.

Инструмент миграции Spanner

Инструмент миграции Spanner помогает переносить схемы из различных источников данных, таких как MySQL, Postgres, Cassandra и т. д.

Хотя для целей этой лабораторной работы мы будем использовать CLI этого инструмента, мы настоятельно рекомендуем изучить и использовать версию инструмента на основе пользовательского интерфейса, которая также поможет вам вносить изменения в схему Spanner перед ее применением.

Обратите внимание, что если утилита spanner-migration-tool запущена в Cloud Shell, у неё может не быть доступа к внутреннему IP-адресу вашей виртуальной машины Cassandra. Поэтому мы рекомендуем запустить её на виртуальной машине, где установлена Cassandra.

Выполните следующие действия на виртуальной машине, где установлена Cassandra.

Установить инструмент миграции Spanner

sudo apt-get update
sudo apt-get install --upgrade google-cloud-sdk-spanner-migration-tool

Если у вас возникли проблемы с установкой, обратитесь к разделу installation-spanner-migration-tool для получения подробных инструкций.

Обновить учетные данные Gcloud

gcloud auth login
gcloud auth application-default login

Схема миграции

export CASSANDRA_HOST=`<ip address of the VM used as rpc_address above>`
export PROJECT=`<PROJECT_ID>`
gcloud alpha spanner migrate schema \
  --source=cassandra \
  --source-profile="host=${CASSANDRA_HOST},user=cassandra,password=cassandra,port=9042,keyspace=analytics,datacenter=datacenter1" \
  --target-profile="project=${PROJECT},instance=cassandra-adapter-demo,dbName=analytics" \
  --project=${PROJECT}

Проверить Spanner DDL

gcloud spanner databases ddl describe analytics --instance=cassandra-adapter-demo

По завершении миграции схемы вывод этой команды должен быть следующим:

CREATE TABLE users (
  active BOOL OPTIONS (
    cassandra_type = 'boolean'
  ),
  id INT64 NOT NULL OPTIONS (
    cassandra_type = 'int'
  ),
  username STRING(MAX) OPTIONS (
    cassandra_type = 'text'
  ),
) PRIMARY KEY(id);

(Необязательно) Посмотреть преобразованный DDL

Вы можете просмотреть преобразованный DDL и повторно применить его в Spanner (если вам нужны дополнительные изменения)

cat `ls -t cassandra_*schema.ddl.txt  | head -n 1`

Вывод этой команды будет следующим:

CREATE TABLE `users` (
        `active` BOOL OPTIONS (cassandra_type = 'boolean'),
        `id` INT64 NOT NULL  OPTIONS (cassandra_type = 'int'),
        `username` STRING(MAX) OPTIONS (cassandra_type = 'text'),
) PRIMARY KEY (`id`)

(Необязательно) Посмотрите отчет о конверсии

cat `ls -t cassandra_*report.txt  | head -n 1`

В отчёте о преобразовании указаны проблемы, на которые следует обратить внимание. Например, если максимальная точность столбца в исходном коде и Spanner не совпадает, это будет указано здесь.

6. Массовый экспорт исторических данных

Чтобы выполнить массовую миграцию, вам необходимо:

  1. Предоставьте или повторно используйте существующий контейнер GCS.
  2. Загрузите файл конфигурации драйвера Cassandra в контейнер.
  3. Запустить массовую миграцию.

Хотя вы можете запустить массовую миграцию либо из Cloud Shell, либо из новой подготовленной виртуальной машины, мы рекомендуем использовать виртуальную машину для этой лабораторной работы, поскольку некоторые шаги, такие как создание файла конфигурации, приведут к сохранению файлов в локальном хранилище.

Подготовьте контейнер GCS.

К концу этого шага вы должны были подготовить контейнер GCS и экспортировать путь к нему в переменную CASSANDRA_BUCKET_NAME . Если вы хотите повторно использовать существующий контейнер, просто экспортируйте путь.

if [ -z ${CASSANDRA_BUCKET_NAME} ]; then
  export CASSANDRA_BUCKET_NAME="gs://cassandra-demo-$(date +%Y-%m-%d-%H-%M-%S)-$(head /dev/urandom | tr -dc a-z | head -c 20)"
  gcloud storage buckets create "${CASSANDRA_BUCKET_NAME}"
else
  echo "using existing bucket ${CASSANDRA_BUCKET_NAME}"
fi

Создать и загрузить файл конфигурации драйвера

Здесь мы загружаем очень простой файл конфигурации драйвера Cassandra. Полный формат файла можно найти здесь .

# Configuration for the Cassandra instance and GCS bucket
INSTANCE_NAME="cassandra-origin"
ZONE="us-central1-a"
CASSANDRA_PORT="9042"

# Retrieve the internal IP address of the Cassandra instance
CASSANDRA_IP=$(gcloud compute instances describe "${INSTANCE_NAME}" \
    --format="get(networkInterfaces[0].networkIP)" \
    --zone="${ZONE}")

# Check if the IP was successfully retrieved
if [[ -z "${CASSANDRA_IP}" ]]; then
    echo "Error: Could not retrieve Cassandra instance IP."
    exit 1
fi

# Define the full contact point
CONTACT_POINT="${CASSANDRA_IP}:${CASSANDRA_PORT}"

# Create a temporary file with the specified content
TMP_FILE=$(mktemp)
cat <<EOF > "${TMP_FILE}"
# Reference configuration for the DataStax Java driver for Apache Cassandra®.
# This file is in HOCON format, see https://github.com/typesafehub/config/blob/master/HOCON.md.
datastax-java-driver {
  basic.contact-points = ["${CONTACT_POINT}"]
  basic.session-keyspace = analytics
  basic.load-balancing-policy.local-datacenter = datacenter1
  advanced.auth-provider {
    class = PlainTextAuthProvider
    username = cassandra
    password = cassandra
  }
}
EOF

# Upload the temporary file to the specified GCS bucket
if gsutil cp "${TMP_FILE}" "${CASSANDRA_BUCKET_NAME}/cassandra.conf"; then
    echo "Successfully uploaded ${TMP_FILE} to ${CASSANDRA_BUCKET_NAME}/cassandra.conf"

    # Concatenate (cat) the uploaded file from GCS
    echo "Displaying the content of the uploaded file:"
    gsutil cat "${CASSANDRA_BUCKET_NAME}/cassandra.conf"
else
    echo "Error: Failed to upload file to GCS."
fi

# Clean up the temporary file
rm "${TMP_FILE}"

Выполнить массовую миграцию

Это пример команды для запуска массовой миграции данных в Spanner. Для реальных производственных сценариев вам потребуется настроить тип и количество машин в соответствии с желаемым масштабом и пропускной способностью. Полный список параметров см. в файле README_Sourcedb_to_Spanner.md#cassandra-to-spanner-bulk-migration.

gcloud dataflow flex-template run "sourcedb-to-spanner-flex-job" \
  --project "`gcloud config get-value project`" \
  --region "us-central1" \
  --max-workers "2" \
  --num-workers "1" \
  --worker-machine-type "e2-standard-8" \
  --template-file-gcs-location "gs://dataflow-templates-us-central1/latest/flex/Sourcedb_to_Spanner_Flex" \
  --additional-experiments="[\"disable_runner_v2\"]" \
  --parameters "sourceDbDialect=CASSANDRA" \
  --parameters "insertOnlyModeForSpannerMutations=true" \
  --parameters "sourceConfigURL=$CASSANDRA_BUCKET_NAME/cassandra.conf" \
  --parameters "instanceId=cassandra-adapter-demo" \
  --parameters "databaseId=analytics" \
  --parameters "projectId=`gcloud config get-value project`" \
  --parameters "outputDirectory=$CASSANDRA_BUCKET_NAME/output" \
  --parameters "batchSizeForSpannerMutations=1"

В результате будет сгенерирован следующий вывод. Запишите сгенерированный id и используйте его для запроса статуса задания потока данных.

job:
  createTime: '2025-08-08T09:41:09.820267Z'
  currentStateTime: '1970-01-01T00:00:00Z'
  id: 2025-08-08_02_41_09-17637291823018196600
  location: us-central1
  name: sourcedb-to-spanner-flex-job
  projectId: span-cloud-ck-testing-external
  startTime: '2025-08-08T09:41:09.820267Z'

Выполните следующую команду, чтобы проверить статус задания, и дождитесь, пока статус изменится на JOB_STATE_DONE .

gcloud dataflow jobs describe --region=us-central1 <dataflow job id> | grep "currentState:"

Первоначально задание будет находиться в состоянии очереди, например

currentState: JOB_STATE_QUEUED

Пока задание находится в очереди/выполняется, мы настоятельно рекомендуем вам изучить страницу Dataflow/Jobs в пользовательском интерфейсе Cloud Console, чтобы отслеживать выполнение задания.

После завершения состояние задания изменится на:

currentState: JOB_STATE_DONE

7. Направьте свое приложение в Spanner (Cutover)

После тщательной проверки точности и целостности данных после этапа миграции ключевым этапом становится перенос операционных функций вашего приложения из прежней системы Cassandra в новую базу данных Spanner. Этот критически важный переходный период обычно называют « переключением ».

Фаза переключения знаменует собой момент, когда трафик активных приложений перенаправляется из исходного кластера Cassandra и напрямую подключается к надежной и масштабируемой инфраструктуре Spanner. Этот переход демонстрирует, насколько легко приложения могут использовать возможности Spanner, особенно при использовании интерфейса Spanner Cassandra.

Интерфейс Spanner Cassandra упрощает процесс переключения. Он в первую очередь заключается в настройке клиентских приложений для использования собственного клиента Spanner Cassandra для всех операций с данными. Вместо взаимодействия с базой данных Cassandra (исходной), ваши приложения будут автоматически считывать и записывать данные непосредственно в Spanner (целевой). Этот фундаментальный сдвиг в подключении обычно достигается за счет использования SpannerCqlSessionBuilder — ключевого компонента библиотеки Spanner Cassandra Client, который упрощает установление соединений с вашим экземпляром Spanner. Это фактически перенаправляет весь поток данных вашего приложения в Spanner.

Для приложений Java, уже использующих библиотеку cassandra-java-driver , интеграция клиента Spanner Cassandra Java Client требует внесения лишь незначительных изменений в инициализацию CqlSession .

Получение зависимости google-cloud-spanner-cassandra

Чтобы начать использовать клиент Spanner Cassandra, необходимо включить его зависимость в свой проект. Артефакты google-cloud-spanner-cassandra опубликованы в Maven Central в группе с идентификатором com.google.cloud . Добавьте следующую новую зависимость в существующий раздел <dependencies> вашего проекта Java. Вот упрощённый пример включения зависимости google-cloud-spanner-cassandra :

<!-- native Spanner Cassandra Client -->
<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-cassandra</artifactId>
    <version>0.2.0</version>
  </dependency>
</dependencies>

Измените конфигурацию подключения для подключения к Spanner

После добавления необходимой зависимости следующим шагом будет изменение конфигурации подключения для подключения к базе данных Spanner.

Типичное приложение, взаимодействующее с кластером Cassandra, для установления соединения часто использует код, подобный следующему:

CqlSession session = CqlSession.builder()
        .addContactPoint(new InetSocketAddress("127.0.0.1", 9042))
        .withLocalDatacenter("datacenter1")
        .withAuthCredentials("username", "password")
        .build();

Чтобы перенаправить это соединение в Spanner, необходимо изменить логику создания CqlSession . Вместо прямого использования стандартного CqlSessionBuilder из cassandra-java-driver , вы будете использовать SpannerCqlSession.builder() предоставляемый клиентом Spanner Cassandra. Вот наглядный пример изменения кода соединения:

String databaseUri = "projects/<your-gcp-project>/instances/<your-spanner-instance>/databases/<your-spanner-database>";

CqlSession session = SpannerCqlSession.builder()
        .setDatabaseUri(databaseUri)
        .addContactPoint(new InetSocketAddress("localhost", 9042))
        .withLocalDatacenter("datacenter1")
        .build();

Создав экземпляр CqlSession с помощью SpannerCqlSession.builder() и указав правильный databaseUri , ваше приложение теперь будет устанавливать соединение через клиент Spanner Cassandra с целевой базой данных Spanner. Это ключевое изменение гарантирует, что все последующие операции чтения и записи, выполняемые вашим приложением, будут направляться и обслуживаться Spanner, фактически завершая первоначальное переключение. На этом этапе ваше приложение должно продолжать работать как и ожидалось, теперь благодаря масштабируемости и надежности Spanner.

Под капотом: как работает клиент Spanner Cassandra

Клиент Spanner Cassandra действует как локальный TCP-прокси, перехватывая необработанные байты протокола Cassandra, отправляемые драйвером или клиентским инструментом. Затем он преобразует эти байты вместе с необходимыми метаданными в сообщения gRPC для взаимодействия со Spanner. Ответы Spanner преобразуются обратно в формат Cassandra Wire и отправляются исходному драйверу или инструменту.

26D34akkBHcMFFe.png

Как только вы убедитесь, что Spanner правильно обслуживает весь трафик, вы сможете:

  • Вывести из эксплуатации исходный кластер Кассандра.

8. Уборка (по желанию)

Чтобы очистить код, просто перейдите в раздел Spanner консоли Cloud Console и удалите экземпляр cassandra-adapter-demo который мы создали в кодовой лаборатории.

76D34akkJRcMFMr.png

Удалить базу данных Cassandra (если она установлена локально или сохранена)

Если вы установили Cassandra вне созданной здесь виртуальной машины Compute Engine, выполните соответствующие шаги для удаления данных или удаления Cassandra.

9. Поздравляем!

Что дальше?