Копирование данных из Cassandra с помощью Фабрики данных Azure или Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в конвейере Фабрики данных Azure или Azure Synapse Analytics копировать данные из базы данных Cassandra. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.
Поддерживаемые возможности
Соединитель Cassandra предназначен для поддержки следующих возможностей:
Поддерживаемые возможности | IR |
---|---|
Действие копирования (источник/-) | (1) (2) |
Действие поиска | (1) (2) |
① Среда выполнения интеграции 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:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для Cassandra с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для Cassandra в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу Cassandra и выберите соединитель 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 | C |
3 | а |
3 | E |
Свойства действия поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия Copy, приведен в таблице Поддерживаемые хранилища данных и форматы.