Поделиться через


Копирование данных из Cassandra с помощью Фабрики данных Azure или Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описывается, как с помощью действия копирования в конвейере Фабрики данных Azure или Azure Synapse Analytics копировать данные из базы данных Cassandra. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.

Это важно

Соединитель Cassandra версии 2.0 обеспечивает улучшенную поддержку Cassandra. Если в решении используется соединитель Cassandra версии 1.0, обновите соединитель Cassandra до 31 июля 2025 г. Дополнительные сведения о разнице между версией 2.0 и версией 1.0 см. в этом разделе .

Поддерживаемые возможности

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

Поддерживаемые возможности ИНФРАКРАСНЫЙ
Копирование (источник/-) (1) (2)
Операция поиска (1) (2)

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

Список хранилищ данных, которые поддерживаются в качестве источников/приемников, см. в таблице Поддерживаемые хранилища данных.

В частности, этот соединитель Cassandra поддерживает:

  • Cassandra версии 3.x.x и 4.x.x для версии 2.0.
  • Cassandra версии 2.x и 3.x для версии 1.0.
  • Копирование данных с использованием базовой или анонимной проверки подлинности.

Примечание.

Для выполнения действий в среде выполнения интеграции на собственных серверах поддерживается Cassandra 3.x, начиная с версии среды выполнения интеграции 3.7 и выше.

Предварительные условия

Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.

Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.

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

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

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

Начало работы

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы для Cassandra с помощью пользовательского интерфейса

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

  1. Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":

  2. Выполните поиск по запросу Cassandra и выберите соединитель Cassandra.

    Снимок экрана: соединитель Cassandra.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана: конфигурация связанной службы для Cassandra.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей фабрики данных, специфичных для соединителя Cassandra.

Свойства связанного сервиса

Для связанной службы Cassandra поддерживаются следующие свойства:

Недвижимость Описание: Обязательное поле
тип Для свойства type необходимо задать значение Cassandra. Да
версия Версия, которую вы укажете. Да для версии 2.0.
хост Один или несколько IP-адресов или имен узлов серверов Cassandra.
Укажите через запятую список IP-адресов или имен узлов для одновременного подключения ко всем серверам.
Да
порт TCP-порт, используемый сервером Cassandra для прослушивания клиентских подключений Нет (значение по умолчанию — 9042)
тип аутентификации Тип проверки подлинности, используемый для подключения к базе данных Cassandra.
Допустимые значения: Базовый, Анонимный.
Да
имя пользователя Укажите имя пользователя для учетной записи пользователя Да (если для свойства authenticationType задано значение Basic)
пароль Укажите пароль для учетной записи пользователя. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да (если для свойства authenticationType задано значение Basic)
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. Нет

Примечание.

В настоящее время подключение к Cassandra по протоколу SSL не поддерживается.

Пример: версия 2.0

{
    "name": "CassandraLinkedService",
    "properties": {
        "type": "Cassandra",
        "version": "2.0", 
        "typeProperties": {
            "host": "<host>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: версия 1.0

{
    "name": "CassandraLinkedService",
    "properties": {
        "type": "Cassandra",
        "typeProperties": {
            "host": "<host>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. Этот раздел содержит список свойств, поддерживаемых набором данных Cassandra.

Чтобы скопировать данные из Cassandra, установите для свойства type набора данных значение CassandraTable. Поддерживаются следующие свойства:

Недвижимость Описание: Обязательное поле
тип Свойство type для набора данных должно иметь значение CassandraTable. Да
Ключевое пространство Имя пространства ключей или схемы в базе данных Cassandra Нет (если для "CassandraSource" указано значение "query")
имяТаблицы Имя таблицы в базе данных Cassandra Нет (если для "CassandraSource" указано значение "query")

Пример:

{
    "name": "CassandraDataset",
    "properties": {
        "type": "CassandraTable",
        "typeProperties": {
            "keySpace": "<keyspace name>",
            "tableName": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Cassandra linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Свойства действия копирования

Полный список разделов и свойств, доступных для определения действий, см. в статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником Cassandra.

Cassandra в качестве источника

Если вы используете версию 2.0 для копирования данных из Cassandra, задайте тип источника в действии копирования в CassandraSource. В разделе source операции копирования поддерживаются следующие свойства:

Недвижимость Описание: Обязательное поле
тип Свойство type источника действия копирования должно иметь значение CassandraSource. Да
запрос Используйте пользовательский запрос для чтения данных. Запрос CQL, см. справочник по CQL. Нет (если в наборе данных определены свойства tableName и keyspace)
уровень согласованности Уровень консистентности определяет количество реплик, которые должны ответить на запрос на чтение перед возвращением данных в клиентское приложение. База данных Cassandra проверяет указанное количество реплик данных, чтобы удовлетворить запрос на чтение. Дополнительные сведения см. в статье Configuring data consistency (Настройка согласованности данных).

Допустимые значения: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM и LOCAL_ONE.
Нет (значение по умолчанию — ONE)

Пример:

"activities":[
    {
        "name": "CopyFromCassandra",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cassandra input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CassandraSource",
                "query": "select id, firstname, lastname from mykeyspace.mytable",
                "consistencyLevel": "one"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Если вы используете версию 1.0 для копирования данных из Cassandra, задайте тип источника в действии копирования как CassandraSource. В разделе source операции копирования поддерживаются следующие свойства:

Недвижимость Описание: Обязательное поле
тип Свойство type источника действия копирования должно иметь значение CassandraSource. Да
запрос Используйте пользовательский запрос для чтения данных. Запрос SQL-92 или CQL. Ознакомьтесь со справочником по CQL.

Если используется SQL-запрос, то таблицу, к которой необходимо отправить запрос, укажите в формате имя_пространства_ключей.имя_таблицы.
Нет (если в наборе данных определены свойства tableName и keyspace)
уровень согласованности Уровень консистентности определяет количество реплик, которые должны ответить на запрос на чтение перед возвращением данных в клиентское приложение. База данных Cassandra проверяет указанное количество реплик данных, чтобы удовлетворить запрос на чтение. Дополнительные сведения см. в статье Configuring data consistency (Настройка согласованности данных).

Допустимые значения: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM и LOCAL_ONE.
Нет (значение по умолчанию — ONE)

Сопоставление типов данных для Cassandra

При копировании данных из Cassandra используются следующие сопоставления типов данных Cassandra с промежуточными типами данных, используемыми службой для внутренних целей. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и сопоставление типов данных с приемником, см. в разделе Схемы и сопоставление типов данных.

Тип данных Cassandra Тип данных промежуточной службы (для версии 2.0) Тип данных промежуточной службы (для версии 1.0)
ASCII Строка Строка
БИГИНТ Int64 Int64
BLOB-объект Байт[] Байт[]
Булевый Логический Логический
Дата Дата/время Дата/время
ДЕСЯТИЧНЫЙ Десятичный Десятичный
ДВОЙНОЙ Двойной Двойной
плавающий Один Один
инет Строка Строка
ИНТ Int32 Int32
СМОЛЛИНТ Коротко Int16
ТЕКСТ Строка Строка
TIMESTAMP Дата/время Дата/время
TIMEUUID GUID GUID
TINYINT SByte Int16
Универсальный уникальный идентификатор (UUID) GUID GUID
VARCHAR Строка Строка
VARINT Десятичный Десятичный

Примечание.

Типы коллекций (сопоставление, набор, список и т. д.) в версии 1.0 см. в разделе Работа с типами коллекций Cassandra с помощью виртуальной таблицы при использовании версии 1.0.

Пользовательские типы не поддерживаются.

Длина столбца двоичного кода и столбца строки не может превышать 4000 знаков.

Работа с коллекциями при использовании версии 2.0

При использовании версии 2.0 для копирования данных из базы данных Cassandra виртуальные таблицы для типов коллекций не создаются. Исходную таблицу можно скопировать в приемник в исходном типе в формате JSON.

Пример

Пример таблицы ExampleTable в базе данных Cassandra содержит следующие столбцы: столбец первичного ключа pk_int (целое число), текстовый столбец value, столбец списка, столбец отображения и столбец множества (названный StringSet).

pk_int Значение Список Карта набор строк
1 пример значения 1 ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 пример значения 3 ["100", "101", "102", "105"] {"S1": "т"} {"A", "E"}

Данные можно считывать непосредственно из исходной таблицы, а значения столбцов сохраняются в исходном формате JSON, как показано в следующей таблице:

pk_int Значение Список Карта набор строк
1 пример значения 1 ["1", "2", "3"] {"S1": "a", "S2": "b"} ["A", "B", "C"]
3 пример значения 3 ["100", "101", "102", "105"] {"S1": "т"} ["A", "E"]

Работа с коллекциями с помощью виртуальной таблицы при использовании версии 1.0

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

  • Базовая таблица, в которой содержатся те же данные, что и в исходной таблице, кроме столбцов коллекции. Название основной таблицы совпадает с названием реальной таблицы, которую она представляет.
  • Виртуальная таблица для каждого столбца коллекции, раскрывающая вложенные данные. Виртуальные таблицы, представляющие коллекции, именуются с использованием имени исходной таблицы, разделителя "vt" и имени столбца.

Виртуальные таблицы ссылаются на данные в исходной таблице, что позволяет драйверу подключаться к денормализованным данным. Дополнительные сведения см. в разделе "Пример". Доступ к содержимому коллекций Cassandra можно получить при помощи отправки запроса и соединения виртуальных таблиц.

Пример

Пример таблицы ExampleTable в базе данных Cassandra содержит следующие столбцы: столбец первичного ключа pk_int (целое число), текстовый столбец value, столбец списка, столбец отображения и столбец множества (названный StringSet).

pk_int Значение Список Карта набор строк
1 пример значения 1 ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 пример значения 3 ["100", "101", "102", "105"] {"S1": "т"} {"A", "E"}

Для представления такой одной таблицы драйвер создает несколько виртуальных таблиц. Столбцы внешнего ключа в виртуальных таблицах ссылаются на столбцы первичного ключа в исходных таблицах и указывают, какая строка исходной таблицы соответствует строке виртуальной таблицы.

Первая виртуальная таблица, базовая таблица с названием "ExampleTable", представлена в следующей таблице:

pk_int Значение
1 пример значения 1
3 пример значения 3

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

Ниже приведены виртуальные таблицы, в которых ренормализированы данные из столбцов "Список", "Сопоставление" и StringSet. Столбцы, имена которых заканчиваются на _index или _key, указывают на позицию данных в исходном списке или отображении. Столбцы, имена которых заканчиваются на _value, содержат развернутые данные из коллекции.

Таблица "ExampleTable_vt_List":

pk_int Индекс_списка Значение_списка
1 0 1
1 1 2
1 2 3
3 0 100
3 1 101
3 2 102
3 3 103

Таблица ExampleTable_vt_Map:

pk_int Ключ карты Значение_карты
1 С1 А
1 S2 б
3 С1 t

Таблица ExampleTable_vt_StringSet:

pk_int StringSet_value
1 А
1 Б
1 С
3 А
3 Е

Свойства операции поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Обновление соединителя Cassandra

Ниже приведены действия, которые помогут обновить соединитель Cassandra:

  1. На странице "Изменить связанную службу " выберите версию 2.0 и настройте связанную службу, указав свойства связанной службы.

  2. В версии 2.0 query источник операции копирования поддерживает только запрос CQL, а не запрос SQL-92. Дополнительные сведения см. в Cassandra как источник.

  3. Сопоставление типов данных для версии 2.0 отличается от сопоставления типов данных для версии 1.0. Чтобы узнать о последнем обновлении сопоставления типов данных, см. в разделе Сопоставление типов данных для Cassandra.

Различия между Cassandra версии 2.0 и версией 1.0

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

Версия 2.0 Версия 1.0
Поддержка запроса CQL. Поддержка запроса SQL-92 или CQL-запроса.
Поддержка указания keyspace и tableName отдельно в наборе данных. Поддержка редактирования keyspace при выборе опции "ввести имя таблицы в наборе данных вручную".
Виртуальные таблицы не создаются для типов коллекций. Дополнительные сведения см. в статье "Работа с коллекциями при использовании версии 2.0". Виртуальные таблицы создаются для типов коллекций. Дополнительные сведения см. в Работа с типами коллекций Cassandra с помощью виртуальной таблицы для версии 1.0.
Следующие сопоставления применяются для типов данных Cassandra к промежуточным типам данных службы.

СМОЛИНТ -> Шорт
TINYINT -> SByte
Следующие сопоставления применяются для типов данных Cassandra к промежуточным типам данных службы.

SMALLINT -> Int16
TINYINT -> Int16

Список хранилищ данных, поддерживаемых в качестве источников и приемников для действия копирования, см. в Поддерживаемые хранилища данных.