95장. ElSQL Component


Camel 버전 2.16에서 사용 가능

elsql: 구성 요소는 ElSql 을 사용하여 SQL 쿼리를 정의하는 기존 SQL 구성 요소의 확장입니다. 

이 구성 요소는 실제 SQL 처리를 위해 뒤따르는 spring-jdbc 를 사용합니다.

이 구성 요소는 Transactional Client 로 사용될 수 있습니다.

Maven 사용자는 이 구성 요소의 pom.xml 에 다음 종속성을 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-elsql</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

SQL 구성 요소는 다음 끝점 URI 표기법을 사용합니다.

sql:elSqlName:resourceUri[?options]
Copy to Clipboard Toggle word wrap

?option=value&option=value&…​ 형식의 URI에 쿼리 옵션을추가할 수 있습니다.

SQL 쿼리에 대한 매개변수는 elsql 매핑 파일에서 매개변수 이름이 지정되며, 지정된 우선 순위에 따라 Camel 메시지에서 해당 키에 매핑됩니다.

  1. Camel 2.16.1: 메시지 본문에서 간단한 표현인 경우.
  2. 메시지 헤더에서 'java.util.Map'3.인 경우 메시지 본문에서

named 매개변수를 확인할 수 없는 경우 예외가 발생합니다.

95.1. 옵션

ElSQL 구성 요소는 아래에 나열된 5가지 옵션을 지원합니다.

Expand
이름설명Default유형

databaseVendor (common)

벤더별 com.opengamma.elsql.ElSqlConfig를 사용하려면

 

ElSqlDatabaseVendor

데이터 소스 (공용)

데이터베이스와 통신하는 데 사용할 DataSource를 설정합니다.

 

DataSource

elSqlConfig (advanced)

구성된 특정 ElSqlConfig를 사용합니다. 대신 databaseVendor 옵션을 사용하는 것이 좋습니다.

 

ElSqlConfig

resourceUri (공용)

사용할 elsql SQL 문을 포함하는 리소스 파일입니다. 쉼표로 구분된 여러 리소스를 지정할 수 있습니다. 리소스는 기본적으로 classpath에 로드되므로 file: 앞에 파일 시스템에서 로드할 수 있습니다. 구성 요소에서 이 옵션을 설정할 수 있으며 끝점에서 이 옵션을 구성할 필요가 없습니다.

 

문자열

resolvePropertyECDHEholders (advanced)

구성 요소가 시작할 때 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

ElSQL 끝점은 URI 구문을 사용하여 구성됩니다.

elsql:elsqlName:resourceUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

95.1.1. 경로 매개변수 (2 매개변수):

Expand
이름설명Default유형

elsqlName

필수: 사용할 elsql의 이름(elsql 파일에서 NAMED)

 

문자열

resourceUri

사용할 elsql SQL 문을 포함하는 리소스 파일입니다. 쉼표로 구분된 여러 리소스를 지정할 수 있습니다. 리소스는 기본적으로 classpath에 로드되므로 file: 앞에 파일 시스템에서 로드할 수 있습니다. 구성 요소에서 이 옵션을 설정할 수 있으며 끝점에서 이 옵션을 구성할 필요가 없습니다.

 

문자열

95.1.2. 쿼리 매개변수 (47 매개변수):

Expand
이름설명Default유형

allowNamedParameters (common)

쿼리에 이름이 지정된 매개변수를 사용할 수 있는지 여부입니다.

true

boolean

databaseVendor (common)

벤더별 com.opengamma.elsql.ElSqlConfig를 사용하려면

 

ElSqlDatabaseVendor

데이터 소스 (공용)

데이터베이스와 통신하는 데 사용할 DataSource를 설정합니다.

 

DataSource

dataSourceRef (common)

더 이상 사용되지 않는 경우 데이터베이스와 통신하는 데 사용할 DataSource에서 조회할 참조를 설정합니다.

 

문자열

outputClass (공용)

outputType=SelectOne 때 변환으로 사용할 전체 패키지 및 클래스 이름을 지정합니다.

 

문자열

outputHeader (공용)

메시지 본문이 아닌 헤더에 쿼리 결과를 저장합니다. 기본적으로 outputHeader == null 및 쿼리 결과는 메시지 본문에 저장되고 메시지 본문의 기존 콘텐츠가 삭제됩니다. outputHeader를 설정하면 쿼리 결과를 저장하기 위해 헤더의 이름으로 값이 사용되며 원래 메시지 본문이 유지됩니다.

 

문자열

OutputType (공용)

다음과 같은 방법으로 쿼리에 단일 열만 있는 경우 (예: COUNT( ) FROM PROJECT) 쿼리에 Long object.b가 반환되면 쿼리에서 해당 결과의 맵을 반환합니다.c는 다음과 같은 방식으로 단일 Java 개체로 SelectOne을 출력합니다. 그런 다음 열 이름과 일치하는 모든 set0:0 개체를 호출하여 쿼리 결과를 JavaBean 개체로 변환합니다. This will assume your class has a default constructor to create instance with.d) 쿼리 결과를 두 개 이상의 행이 발생하는 경우 Iterator를 사용하여 쿼리 결과를 쿼리 결과를 throw합니다.StreamList streams the result of the query using an Iteratorator, if the class has a default constructor to create instance with.d) If the query result in more than one rows, it throws an non-unique result streams the result of the query using an Iterator 스트리밍 모드에서 Splitter EIP와 함께 사용하여 ResultSet을 스트리밍 방식으로 처리할 수 있습니다.

SelectList

SqlOutputType

구분자 (공용)

명명된 매개 변수를 사용하는 경우 Map 유형이 대신 사용됩니다.The separator to use when parameter values is taken from message body (if the body is a String type), to be inserted at # placeholders.Notice if you use named parameters, then a Map type is used instead. 기본값은 쉼표입니다.

,

knative

breakBatchOnConsumeFail (consumer)

onConsume에 실패할 경우 배치를 중단할지 여부를 설정합니다.

false

boolean

bridgeErrorHandler (consumer)

소비자가 수신되는 메시지를 선택하려고 하는 동안 예외가 발생했음을 나타내는 Camel 라우팅 오류 처리기에 소비자를 브리징할 수 있습니다. 즉, 소비자가 수신되는 메시지를 선택하려고 하는 동안 예외가 발생되거나 이제 메시지로 처리되고 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.Exception handler를 사용하여 WARN 또는 ERROR 수준에서 로깅되고 무시됩니다.

false

boolean

expectedUpdateCount (consumer)

onConsume를 사용할 때 유효성을 검사할 예상 업데이트 수를 설정합니다.

-1

int

maxMessagesPerPoll (consumer)

폴링할 최대 메시지 수를 설정합니다.

 

int

onConsume (consumer)

각 행을 처리한 후 이 쿼리를 실행할 수 있습니다.After processing each row then this query can be executed, if the Exchange was processed successfully, for example to mark the row as processed. 쿼리에 매개 변수가 있을 수 있습니다.

 

문자열

onConsumeBatchComplete (consumer)

전체 일괄 처리를 수행한 후 이 쿼리를 대규모 업데이트 행 등에 실행할 수 있습니다. 쿼리에 매개 변수가 있을 수 없습니다.

 

문자열

onConsumeFailed (consumer)

각 행을 처리한 후 이 쿼리를 실행할 수 있습니다.After processing each row then this query can be executed, if the Exchange failed, for example to mark the row as failed. 쿼리에 매개 변수가 있을 수 있습니다.

 

문자열

routeEmptyResultSet (consumer)

빈 결과 집합을 다음 홉으로 보낼 수 있는지 여부를 설정합니다. 기본값은 false입니다. 따라서 빈 결과 집합이 필터링됩니다.

false

boolean

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지(인체 없음)를 보낼 수 있습니다.

false

boolean

Transacted (consumer)

트랜잭션을 활성화하거나 비활성화합니다. 그런 다음 교환 처리가 실패하면 소비자가 추가 교환을 처리하여 롤백을 초래합니다.

false

boolean

Use dayerator (consumer)

결과값을 경로로 전달해야 하는 방법을 설정합니다. 목록 또는 개별 오브젝트로 전달을 나타냅니다. 기본값은 true입니다.

true

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 예외 처리기를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 예외를 처리하며 WARN 또는 ERROR 수준에서 로깅되고 무시됩니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Exchange를 생성하고 Camel에서 라우팅하기 전에 일반적으로 폴링 작업 중에 발생한 오류 처리를 제어하기 위해 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

processingStrategy (consumer)

플러그인을 사용하여 사용자 지정 org.apache.camel.component.sql.SqlProcessingStrategy를 사용하여 소비자가 행/전달을 처리할 때 쿼리를 실행할 수 있습니다.

 

SqlProcessingStrategy

일괄 처리 (producer)

배치 모드 사용 또는 비활성화

false

boolean

noop (producer)

설정하면 SQL 쿼리의 결과를 무시하고 기존 IN 메시지를 처리 중단을 위한 OUT 메시지로 사용합니다.

false

boolean

useMessageBodyForSql (producer)

메시지 본문을 SQL으로 사용한 다음 매개변수에 헤더를 사용할지 여부입니다. 이 옵션을 사용하면 uri의 SQL이 사용되지 않습니다.

false

boolean

alwaysPopulateStatement (advanced)

활성화된 경우 org.apache.camel.component.sql.SqlPrepareStatementStrategy의 populateStatement 메서드가 항상 호출됩니다. 이 값이 false인 경우 설정할 예상 매개 변수가 1개 이상인 경우에만 populateStatement가 호출됩니다. 예를 들어, 이렇게 하면 매개 변수가 없는 SQL 쿼리에 대한 메시지 본문/헤더를 읽지 않습니다.

false

boolean

elSqlConfig (advanced)

구성된 특정 ElSqlConfig를 사용합니다. 대신 databaseVendor 옵션을 사용하는 것이 좋습니다.

 

ElSqlConfig

parametersCount (advanced)

0보다 큰 값을 설정하면 Camel은 JDBC 메타데이터 API를 통해 쿼리하는 대신 이 수의 매개 변수 값을 사용합니다. JDBC 벤더가 올바른 매개변수 수를 반환할 수 없는 경우 사용자가 대신 재정의할 수 있는 경우 유용합니다.

 

int

자리 표시자 (고급)

SQL 쿼리에서 대체될 문자를 지정합니다. 이는 간단한 String.replaceAll() 작업이며 SQL 구문 분석과 관련이 없습니다. 인용된 문자열도 변경됩니다.

#

문자열

prepareStatementStrategy (advanced)

플러그인에서 사용자 지정 org.apache.camel.component.sql.SqlPrepareStatementStrategy를 사용하여 쿼리 및 준비 문의 준비를 제어할 수 있습니다.

 

FlexVolumePrepareStatement 전략

동기 (고급)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리(지원되는 경우)를 사용할 수 있는지 여부를 설정합니다.

false

boolean

templateOptions (고급)

맵에서 키/값으로 Spring JdbcTemplate을 구성합니다.

 

map

UsePlaceholder (advanced)

자리 표시자를 사용할지 여부를 설정하고 모든 자리 표시자 문자를 SQL 쿼리에 서명하여 교체할지 여부를 설정합니다.Sets whether to use placeholder and replace all placeholder characters with sign in the SQL queries.

true

boolean

backoffErrorThreshold (scheduler)

backoffMultipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

backoffMultipler가 시작되기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

행에 여러 개의 유휴 상태/errors가 있는 경우 예약된 폴링 소비자 백오프를 허용합니다. 그러면 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용 중인 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링 전 밀리초입니다. 60s(60초), 5m30s(5분 및 30초), 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화되면 이전에 폴링된 1개 이상의 메시지를 실행하면 ScheduledPollConsumer가 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전 밀리초입니다. 60s(60초), 5m30s(5분 및 30초), 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완전 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자에는 자체 단일 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면 다음을 수행합니다.

none

ScheduledPollConsumer Scheduler

schedulerProperties (scheduler)

사용자 정의 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

startScheduler (scheduler)

스케줄러를 자동으로 시작해야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 delay 옵션의 시간 단위입니다.

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

고정된 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 ScheduledExecutorService in JDK를 참조하십시오.

true

boolean

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat