Kudu
Поддерживается только производитель
Компонент Kudu поддерживает хранение и извлечение данных из/в Apache Kudu (opens in a new tab) , бесплатное столбчатое хранилище данных с открытым исходным кодом экосистемы Apache Hadoop.
Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-kudu</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>Prerequisites
Вам необходимо запустить корректный экземпляр Kudu. Подробнее см. на сайте Apache Kudu (opens in a new tab) .
Configuring Options
Компоненты Camel настраиваются на двух отдельных уровнях:
-
уровень компонентов
-
уровень конечной точки
Configuring Component Options
На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевого подключения и т. д.
У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.
Вы можете настроить компоненты, используя:
-
Компонент DSL (opens in a new tab) .
-
в файле конфигурации (
application.propertiesфайлы*.yaml, и т.д.). -
непосредственно в коде Java.
Configuring Endpoint Options
Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.
Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.
Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .
Заполнители свойств обеспечивают несколько преимуществ:
-
Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Они позволяют вынести конфигурацию за пределы кода.
-
Они помогают коду стать более гибким и пригодным для повторного использования.
В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.
Component Options
Компонент Kudu поддерживает 3 параметра, которые перечислены ниже.
lazyStartProducer (producer)
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean
autowiredEnabled (advanced)
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: boolean
kuduClient (advanced)
-
Autowired : использование существующего экземпляра клиента Kudu вместо создания отдельного клиента для каждой конечной точки. Это позволяет настраивать различные аспекты конфигурации клиента.
-
По умолчанию:
-
Тип: KuduClient
Endpoint Options
Конечная точка Kudu настраивается с использованием синтаксиса URI:
kudu:host:port/tableName
Со следующими параметрами пути и запроса :
Path Parameters (3 parameters)
host (common)
-
Требуемый хост сервера для подключения.
-
По умолчанию:
-
Тип: String
port (common)
-
Тип: Требуемый порт сервера для подключения.
-
По умолчанию:
-
Тип: String
tableName (common)
-
Таблица для подключения.
-
По умолчанию:
-
Тип: String
Query Parameters (2 parameters)
operation (producer)
-
Тип: Операция, которую необходимо выполнить.
Значения перечисления:
-
INSERT
-
DELETE
-
UPDATE
-
UPSERT
-
CREATE_TABLE
-
SCAN
-
-
По умолчанию:
-
Тип: KuduOperations
lazyStartProducer (producer (advanced))
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean
Message Headers
Компонент Kudu поддерживает 5 заголовков сообщений, которые перечислены ниже:
CamelKuduSchema (producer)
Constant: CAMEL_KUDU_SCHEMA (opens in a new tab)
-
Схема.
-
По умолчанию:
-
Тип: Schema
CamelKuduTableOptions (producer)
Constant: CAMEL_KUDU_TABLE_OPTIONS (opens in a new tab)
-
Параметры создания таблицы.
-
По умолчанию:
-
Тип: CreateTableOptions
CamelKuduScanColumnNames (producer)
Constant: CAMEL_KUDU_SCAN_COLUMN_NAMES (opens in a new tab)
-
Тип: Прогнозируемые имена столбцов для операции сканирования.
-
По умолчанию:
-
Тип: List
CamelKuduScanPredicate (producer)
Constant: CAMEL_KUDU_SCAN_PREDICATE (opens in a new tab)
-
Предикат для операции сканирования.
-
По умолчанию:
-
Тип: KuduPredicate
CamelKuduScanLimit (producer)
Constant: CAMEL_KUDU_SCAN_LIMIT (opens in a new tab)
-
Тип: Ограничение на количество строк для операции сканирования.
-
По умолчанию:
-
Тип: long
Usage
Input Body formats
Insert, delete, update, and upsert
Формат входных данных должен быть java.util.Map<String, Object>. Эта карта будет представлять строку таблицы, элементами которой являются столбцы, где ключ -- имя столбца, а значение -- значение столбца.
Output Body formats
Scan
Формат выходного текста будет иметь вид java.util.List<java.util.Map<String, Object>>. Каждый элемент списка будет отдельной строкой таблицы. Каждая строка представляет собой , Map<String, Object>элементами которой будут каждая пара имени столбца и значения столбца для этой строки.
Spring Boot Auto-Configuration
При использовании kudu с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-kudu-starter</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>Компонент поддерживает 4 опции, которые перечислены ниже.
camel.component.kudu.autowired-enabled
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: Boolean
camel.component.kudu.enabled
-
Включить ли автоматическую настройку компонента Kudu. По умолчанию эта опция включена.
-
По умолчанию:
-
Тип: Boolean
camel.component.kudu.kudu-client
-
Использовать существующий экземпляр клиента Kudu вместо создания отдельного клиента для каждой конечной точки. Это позволяет настраивать различные аспекты конфигурации клиента. Параметр имеет тип org.apache.kudu.client.KuduClient.
-
По умолчанию:
-
Тип: KuduClient
camel.component.kudu.lazy-start-producer
-
Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: Boolean