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

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

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

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

Поддерживаемые возможности IR
Действие копирования (источник/-) ① ②
Действие поиска ① ②

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

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

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

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

Примечание.

Для выполнения действия в локальной среде выполнения интеграции Cassandra 3.x поддерживается в IR версии 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.

    Screenshot of the Cassandra connector.

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

    Screenshot of linked service configuration for Cassandra.

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

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

Свойства связанной службы

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

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

Примечание.

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

Пример:

{
    "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 Свойство type для набора данных должно иметь значение CassandraTable. Да
Пространство ключей Имя пространства ключей или схемы в базе данных Cassandra Нет (если для CassandraSource определено значение query)
tableName Имя таблицы в базе данных Cassandra Нет (если для CassandraSource определено значение query)

Пример:

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

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

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

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

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

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

Если используется SQL-запрос, то таблицу, к которой необходимо отправить запрос, укажите в формате имя_пространства_ключей.имя_таблицы.
Нет (если в наборе данных определены свойства tableName и keyspace)
consistencyLevel Определяет количество реплик, которые должны ответить на запрос на чтение перед возвращением данных в клиентское приложение. Чтобы выполнить запрос на чтение, база данных 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"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

Тип данных Cassandra Промежуточный тип данных службы
ASCII Строка
BIGINT Int64
BLOB-объект Byte[]
BOOLEAN Логический
DECIMAL Decimal
DOUBLE Двойной
FLOAT Одна
INET Строка
INT Int32
ТЕКСТ Строка
TIMESTAMP Дата/время
TIMEUUID GUID
UUID GUID
VARCHAR Строка
VARINT Десятичное число

Примечание.

Дополнительные сведения о типах коллекций (сопоставлениях, наборах, списках и т. д.) см. в разделе Работа с коллекциями с использованием виртуальной таблицы.

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

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

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

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

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

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

Пример

Ниже приведен пример таблицы ExampleTable в базе данных Cassandra. В этой таблице содержатся такие столбцы: столбец первичного ключа pk_int (целое число), текстовый столбец "Значение", столбец "Список", "Сопоставление" и StringSet.

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

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

Ниже приведен пример первой базовой виртуальной таблицы ExampleTable:

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

В этой таблице содержатся те же данные, что и в исходной, но без коллекций. Они развернуты в других виртуальных таблицах.

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

Таблица ExampleTable_vt_List:

pk_int List_index List_value
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 Map_key Map_value
1 S1 A
1 S2 б
3 S1 t

Таблица ExampleTable_vt_StringSet:

pk_int StringSet_value
1 A
1 Б
1 О
3 а
3 E

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

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

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