我正在尝试弄清楚如何使用查询运算符通过 Mule4 流程中的 BigQuery 连接器 1.1.5 向 BigQuery 发送简单的选择查询
文档没有说明查询应该以什么格式发送。 BigQuery 连接器 1.1.5 文档
这是我的流程:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:google-drive="http://www.mulesoft.org/schema/mule/google-drive"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:os="http://www.mulesoft.org/schema/mule/os"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:bigquery="http://www.mulesoft.org/schema/mule/bigquery"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:secure-properties="http://www.mulesoft.org/schema/mule/secure-properties" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/bigquery http://www.mulesoft.org/schema/mule/bigquery/current/mule-bigquery.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/os http://www.mulesoft.org/schema/mule/os/current/mule-os.xsd
http://www.mulesoft.org/schema/mule/secure-properties http://www.mulesoft.org/schema/mule/secure-properties/current/mule-secure-properties.xsd
http://www.mulesoft.org/schema/mule/google-drive http://www.mulesoft.org/schema/mule/google-drive/current/mule-google-drive.xsd">
<flow name="queryFlow">
<http:listener doc:name="Listener"
path="/query" config-ref="HTTP_Listener_config1"/>
<bigquery:query doc:name="Run Query create schema" responseTimeout="300" responseTimeoutUnit="SECONDS" config-ref="BigQueryConfiguration">
<bigquery:query-values-content ><![CDATA[{
"query": "select id from bcs-dfs-eng-sbx.raw_salesforce.stg_opportunity"
}]]></bigquery:query-values-content>
</bigquery:query>
<logger level="INFO" doc:name="Logger" message="#[%dw 2.0 output application/json --- payload]" />
</flow>
</mule>
当我尝试运行此代码时,代码已部署,但在查询步骤中抛出错误,如下所示:
*******************************************************************************************************
* - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS + - - *
*******************************************************************************************************
* sf-test-query * default * DEPLOYED *
*******************************************************************************************************
INFO 2024-03-04 12:33:30,304 [[MuleRuntime].uber.02: [sf-test-query].uber@org.mule.runtime.module.extension.internal.runtime.source.ExtensionMessageSource.lambda$reallyDoStart$17:462 @2a75b6da] [processor: ; event: ] org.mule.runtime.module.extension.internal.runtime.source.ExtensionMessageSource: Message source 'listener' on flow 'queryFlow' successfully started
INFO 2024-03-04 12:33:47,175 [[MuleRuntime].uber.03: [sf-test-query].queryFlow.BLOCKING @427d2583] [processor: queryFlow/processors/0; event: b8f540a0-da55-11ee-aff2-acde48001122] com.mulesoft.connectors.google.bigquery.internal.operation.QueryPagedOperation: Query value content : java.io.ByteArrayInputStream@46dcc995
ERROR 2024-03-04 12:33:47,736 [[MuleRuntime].uber.03: [sf-test-query].queryFlow.BLOCKING @427d2583] [processor: queryFlow/processors/0; event: b8f540a0-da55-11ee-aff2-acde48001122] com.mulesoft.connectors.google.bigquery.internal.service.paging.RestPagingProvider: Could not get Page results
java.util.concurrent.ExecutionException: Request returned status code 400
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[?:1.8.0_382]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) ~[?:1.8.0_382]
at com.mulesoft.connectors.google.bigquery.internal.service.paging.RestPagingProvider.getResult(RestPagingProvider.java:165) ~[mule4-google-bigquery-connector-1.1.5-mule-plugin.jar:?]
at com.mulesoft.connectors.google.bigquery.internal.service.paging.RestPagingProvider.doGetPage(RestPagingProvider.java:128) ~[mule4-google-bigquery-connector-1.1.5-mule-plugin.jar:?]
at com.mulesoft.connectors.google.bigquery.internal.service.paging.QueryPagingProvider.getPage(QueryPagingProvider.java:100) ~[mule4-google-bigquery-connector-1.1.5-mule-plugin.jar:?]
at com.mulesoft.connectors.google.bigquery.internal.service.paging.QueryPagingProvider.getPage(QueryPagingProvider.java:40) ~[mule4-google-bigquery-connector-1.1.5-mule-plugin.jar:?]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderWrapper.getPage(PagingProviderWrapper.java:78) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderProducer.withConnection(PagingProviderProducer.java:162) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderProducer.withConnection(PagingProviderProducer.java:155) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderProducer.performWithConnection(PagingProviderProducer.java:146) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderProducer.produce(PagingProviderProducer.java:105) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingProviderProducer.produce(PagingProviderProducer.java:55) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.core.api.streaming.iterator.ListConsumer.loadNextPage(ListConsumer.java:80) ~[mule-core-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingResultTransformer.applyChecked(PagingResultTransformer.java:61) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.streaming.PagingResultTransformer.applyChecked(PagingResultTransformer.java:28) ~[mule-module-extensions-support-4.5.1.jar:4.5.1]
at org.mule.runtime.core.api.util.func.CheckedBiFunction.apply(CheckedBiFunction.java:19) ~[mule-core-4.5.1.jar:4.5.1]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator$TransformingExecutionCallbackDecorator.complete(DefaultExecutionMediator.java:341) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.TracedOperationExecutionCallback.complete(TracedOperationExecutionCallback.java:36) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.execution.CompletableMethodOperationExecutor.doExecute(CompletableMethodOperationExecutor.java:26) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.execution.AbstractCompletableMethodOperationExecutor.execute(AbstractCompletableMethodOperationExecutor.java:61) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.executeCommand(DefaultExecutionMediator.java:241) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.executeWithInterceptors(DefaultExecutionMediator.java:224) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$execute$1(DefaultExecutionMediator.java:131) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$new$0(DefaultExecutionMediator.java:76) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.withExecutionTemplate(DefaultExecutionMediator.java:320) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.execute(DefaultExecutionMediator.java:130) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.executeOperation(ComponentMessageProcessor.java:567) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.OAuthOperationMessageProcessor.executeOperation(OAuthOperationMessageProcessor.java:68) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.prepareAndExecuteOperation(ComponentMessageProcessor.java:811) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.lambda$onEventSynchronous$16(ComponentMessageProcessor.java:469) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.onEventSynchronous(ComponentMessageProcessor.java:476) ~[?:?]
at org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.lambda$createOuterFlux$6(ComponentMessageProcessor.java:385) ~[?:?]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:489) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:503) [reactor-core-3.4.22.jar:3.4.22]
at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:629) [mule-core-4.5.1.jar:4.5.1]
at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:624) [mule-core-4.5.1.jar:4.5.1]
at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.publisher.FluxSubscribeOnValue$ScheduledScalar.run(FluxSubscribeOnValue.java:180) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) [reactor-core-3.4.22.jar:3.4.22]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) [reactor-core-3.4.22.jar:3.4.22]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_382]
at org.mule.service.scheduler.internal.AbstractRunnableFutureDecorator.doRun(AbstractRunnableFutureDecorator.java:180) [mule-service-scheduler-1.5.0.jar:1.5.0]
at org.mule.service.scheduler.internal.RunnableFutureDecorator.run(RunnableFutureDecorator.java:55) [mule-service-scheduler-1.5.0.jar:1.5.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_382]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_382]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_382]
Caused by: com.mulesoft.connectors.google.bigquery.internal.error.exception.RequestException: Request returned status code 400
ERROR 2024-03-04 12:33:51,976 [[MuleRuntime].uber.03: [sf-test-query].queryFlow.BLOCKING @427d2583] [processor: queryFlow/processors/0; event: b8f540a0-da55-11ee-aff2-acde48001122] org.mule.runtime.core.privileged.exception.DefaultExceptionListener:
********************************************************************************
Message : Request returned status code 400
Element : queryFlow/processors/0 @ sf-test-query:test-query.xml:20 (Run Query create schema)
Element DSL : <bigquery:query doc:name="Run Query create schema" responseTimeout="300" responseTimeoutUnit="SECONDS" config-ref="BigQueryConfiguration">
<bigquery:query-values-content><![CDATA[
{
"query": "select id from bcs-dfs-eng-sbx.raw_salesforce.stg_opportunity"
}
]]></bigquery:query-values-content>
</bigquery:query>
Error type : BIGQUERY:BAD_REQUEST
FlowStack : at queryFlow(queryFlow/processors/0 @ sf-test-query:test-query.xml:20 (Run Query create schema))
(set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
INFO 2024-03-04 12:33:58,521 [[MuleRuntime].uber.03: [sf-test-query].queryFlow.BLOCKING @427d2583] [processor: queryFlow/processors/0; event: b968c2f0-da55-11ee-aff2-acde48001122] com.mulesoft.connectors.google.bigquery.internal.operation.QueryPagedOperation: Query value content : java.io.ByteArrayInputStream@7314ba8c
ERROR 2024-03-04 12:33:58,920 [[MuleRuntime].uber.03: [sf-test-query].queryFlow.BLOCKING @427d2583] [processor: queryFlow/processors/0; event: b968c2f0-da55-11ee-aff2-acde48001122] com.mulesoft.connectors.google.bigquery.internal.service.paging.RestPagingProvider: Could not get Page results
java.util.concurrent.ExecutionException: Request returned status code 400
我认为我缺少查询 BigQuery API 的格式以及是否应该在标头中发送任何其他信息。我在网上找不到任何具体的例子。
尝试下面, 我使用了具有相同语法的类似查询并且它有效。
%dw 2.0
output application/json
---
{
query: "select id from bcs-dfs-eng-sbx.raw_salesforce.stg_opportunity",
useLegacySql: false
}