Google BigQuery Standard SQL

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

Компонент Google BigQuery SQL обеспечивает доступ к инфраструктуре Cloud BigQuery (opens in a new tab) через API клиентских служб Google (opens in a new tab) .

Текущая реализация поддерживает только стандартные запросы SQL DML (opens in a new tab) .

Пользователям Maven необходимо добавить следующую зависимость в свой pom.xml для этого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-google-bigquery</artifactId>
    <!-- use the same version as your Camel core version -->
    <version>x.x.x</version>
</dependency>

Authentication Configuration

Аутентификация компонента Google BigQuery предназначена для использования с учётными записями сервисов GCP. Подробнее см. в руководстве по аутентификации Google Cloud Platform. (opens in a new tab)

Учетные данные безопасности Google можно задать явно, указав путь к расположению файла учетных данных GCP.

Или они устанавливаются неявно, когда фабрика соединений прибегает к учетным данным приложения по умолчанию (opens in a new tab) .

Имея ключ учётной записи сервиса, вы можете предоставить учётные данные для аутентификации коду вашего приложения. Учётные данные безопасности Google можно установить через конечную точку компонента:

String endpoint = "google-bigquery-sql://project-id:query?serviceAccountKey=/home/user/Downloads/my-key.json";

Если вы не хотите указывать путь к файловой системе, вы также можете использовать содержимое файла учетных данных аутентификации в кодировке base64.

String endpoint = "google-bigquery-sql://project-id:query?serviceAccountKey=base64:<base64 encoded>";

Или установив переменную окружения GOOGLE_APPLICATION_CREDENTIALS:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"

URI Format

google-bigquery-sql://project-id:query?[options]

Examples:

google-bigquery-sql://project-17248459:delete * from test.table where id=@myId

где

  • Параметры в форме ${name} извлекаются из заголовков сообщений и формируют переведенный запрос.

  • Параметры в формате @name извлекаются из тела или заголовков сообщения и отправляются в Google Bigquery. Тип com.google.cloud.bigquery.StandardSQLTypeNameпараметра определяется по его типу с помощью<T> QueryParameterValue<T>.of(T value, Class<T> type)

Вы можете экспортировать свои SQL-запросы в файлы в classpath или файловой системе, как показано ниже:

google-bigquery-sql://project-17248459::classpath:delete.sql

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

Компонент Google BigQuery Standard SQL поддерживает 4 параметра, перечисленных ниже.

connectionFactory (producer)

  • Autowired ConnectionFactory для подключения к сервису Bigquery. Если не указано, будет использовано подключение по умолчанию.

  • По умолчанию:

  • Тип: GoogleBigQueryConnectionFactory

lazyStartProducer (producer)

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

projectId (producer)

  • Идентификатор проекта Google Cloud.

  • По умолчанию:

  • Тип: String

autowiredEnabled (advanced)

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: boolean

Endpoint Options

Конечная точка Google BigQuery Standard SQL настраивается с использованием синтаксиса URI:

google-bigquery-sql:projectId:queryString

Со следующими параметрами пути и запроса :

Path Parameters (2 parameters)

projectId (common)

  • Требуется идентификатор проекта Google Cloud.

  • По умолчанию:

  • Тип: String

queryString (common)

  • Требуется стандартный SQL-запрос BigQuery.

  • По умолчанию:

  • Тип: String

Query Parameters (4 parameters)

connectionFactory (producer)

  • Тип: Autowired ConnectionFactory для подключения к сервису Bigquery. Если не указано, будет использовано подключение по умолчанию.

  • По умолчанию:

  • Тип: GoogleBigQueryConnectionFactory

pageToken (producer)

  • Токен страницы, возвращаемый предыдущим вызовом, для запроса следующей страницы результатов.

  • По умолчанию:

  • Тип: String

lazyStartProducer (producer (advanced))

  • Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

serviceAccountKey (security)

  • Ключ учетной записи службы в формате JSON для аутентификации приложения как учетной записи службы на облачной платформе Google.

  • По умолчанию:

  • Тип: String

Message Headers

Компонент Google BigQuery Standard SQL поддерживает 4 заголовка сообщений, которые перечислены ниже:

CamelGoogleBigQueryTranslatedQuery (producer)

Constant: TRANSLATED_QUERY (opens in a new tab)

  • Предварительно обработанный текст запроса.

  • По умолчанию:

  • Тип: String

CamelGoogleBigQueryJobId (producer)

Constant: JOB_ID (opens in a new tab)

  • Тип: Пользовательский JobId для использования.

  • По умолчанию:

  • Тип: JobId

CamelGoogleBigQueryPageToken (producer)

Constant: PAGE_TOKEN (opens in a new tab)

  • Токен страницы для получения определённой страницы результатов из BigQuery. Если не задан, возвращается первая страница.

  • По умолчанию:

  • Тип: String

CamelGoogleBigQueryNextPageToken (producer)

Constant: NEXT_PAGE_TOKEN (opens in a new tab)

  • Тип: Токен следующей страницы, возвращаемый BigQuery. Используйте этот токен в заголовке CamelGoogleBigQueryPageToken последующего запроса для получения следующей страницы результатов.

  • По умолчанию:

  • Тип: String

Producer Endpoints

Конечная точка Google BigQuery SQL ожидает, что полезная нагрузка будет либо пустой, либо будет представлять собой карту параметров запроса.

Spring Boot Auto-Configuration

При использовании google-bigquery-sql с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-google-bigquery-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Компонент поддерживает 11 опций, которые перечислены ниже.

camel.component.google-bigquery-sql.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: Boolean

camel.component.google-bigquery-sql.connection-factory

  • ConnectionFactory для подключения к сервису Bigquery. Если не указано, будет использовано значение по умолчанию. Параметр имеет тип org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory.

  • По умолчанию:

  • Тип: GoogleBigQueryConnectionFactory

camel.component.google-bigquery-sql.enabled

  • Включить ли автоматическую настройку компонента google-bigquery-sql. По умолчанию эта опция включена.

  • По умолчанию:

  • Тип: Boolean

camel.component.google-bigquery-sql.lazy-start-producer

  • Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: Boolean

camel.component.google-bigquery-sql.project-id

  • Идентификатор проекта Google Cloud.

  • По умолчанию:

  • Тип: String

camel.component.google-bigquery.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: Boolean

camel.component.google-bigquery.connection-factory

  • ConnectionFactory для подключения к сервису Bigquery. Если не указано, будет использовано значение по умолчанию. Параметр имеет тип org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory.

  • По умолчанию:

  • Тип: GoogleBigQueryConnectionFactory

camel.component.google-bigquery.dataset-id

  • Идентификатор набора данных BigQuery.

  • По умолчанию:

  • Тип: String

camel.component.google-bigquery.enabled

  • Тип: Включить ли автоматическую настройку компонента google-bigquery. По умолчанию эта опция включена.

  • По умолчанию:

  • Тип: Boolean

camel.component.google-bigquery.lazy-start-producer

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: Boolean

camel.component.google-bigquery.project-id

  • Идентификатор проекта Google Cloud.

  • По умолчанию:

  • Тип: String