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, вам необходимо её создать .
- Название проекта — отображаемое имя участников проекта. Это строка символов, не используемая 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 на верхней правой панели инструментов:
Подготовка и подключение к среде займёт всего несколько минут. После завершения вы увидите примерно следующее:
Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объёмом 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, как показано:
.
Выполните следующие команды для установки 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
ИЛИ
.
Обновите адрес в файле конфигурации.
Вы можете использовать редактор по вашему выбору для обновления файла конфигурации 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:
- Инструмент миграции Spanner : этот инструмент помогает мигрировать схему, подключаясь к существующей базе данных Cassandra и перенося её в Spanner. Этот инструмент доступен в составе
gcloud cli
. - Инструмент для миграции схем 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. Массовый экспорт исторических данных
Чтобы выполнить массовую миграцию, вам необходимо:
- Предоставьте или повторно используйте существующий контейнер GCS.
- Загрузите файл конфигурации драйвера Cassandra в контейнер.
- Запустить массовую миграцию.
Хотя вы можете запустить массовую миграцию либо из 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 и отправляются исходному драйверу или инструменту.
Как только вы убедитесь, что Spanner правильно обслуживает весь трафик, вы сможете:
- Вывести из эксплуатации исходный кластер Кассандра.
8. Уборка (по желанию)
Чтобы очистить код, просто перейдите в раздел Spanner консоли Cloud Console и удалите экземпляр cassandra-adapter-demo
который мы создали в кодовой лаборатории.
Удалить базу данных Cassandra (если она установлена локально или сохранена)
Если вы установили Cassandra вне созданной здесь виртуальной машины Compute Engine, выполните соответствующие шаги для удаления данных или удаления Cassandra.
9. Поздравляем!
Что дальше?
- Узнайте больше о Spanner .
- Узнайте больше об интерфейсе Cassandra .