You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Beam JIRA Bot (Jira)" <ji...@apache.org> on 2021/09/21 17:24:01 UTC
[jira] [Commented] (BEAM-8897) JdbcIO.readRows issue when type is
Numeric
[ https://issues.apache.org/jira/browse/BEAM-8897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17418242#comment-17418242 ]
Beam JIRA Bot commented on BEAM-8897:
-------------------------------------
This issue is P2 but has been unassigned without any comment for 60 days so it has been labeled "stale-P2". If this issue is still affecting you, we care! Please comment and remove the label. Otherwise, in 14 days the issue will be moved to P3.
Please see https://beam.apache.org/contribute/jira-priorities/ for a detailed explanation of what these priorities mean.
> JdbcIO.readRows issue when type is Numeric
> ------------------------------------------
>
> Key: BEAM-8897
> URL: https://issues.apache.org/jira/browse/BEAM-8897
> Project: Beam
> Issue Type: Bug
> Components: io-java-jdbc
> Affects Versions: 2.16.0
> Environment: Java 8
> Reporter: Mark Gates
> Priority: P2
> Labels: stale-P2
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> The actual use case is such that I am connecting to Oracle via JDBC making the query: "select 1 from dual". If I try this on real data with a Number type column the same issue occurs.
> The number type results in an exception. Example:
> {code:java}
> PCollection<Row> row = p.apply(
> JdbcIO.readRows()
> .withDataSourceProviderFn(JdbcIO.PoolableDataSourceProvider.of(configuration))
> .withQuery("select 1 as t1 from dual")
> .withFetchSize(10000)
> .withOutputParallelization(true));
> row.apply(ParDo.of(new DoFn<Row, Row>() {
> @ProcessElement
> public void processElement(@Element Row row, OutputReceiver<Row> out, ProcessContext pc) {
> System.out.println(row.getSchema().toString() + " : " + row.toString());
> out.output(row);
> }
> }));
> p.run().waitUntilFinish();
> {code}
> Exception:
> Exception in thread "main" org.apache.beam.sdk.Pipeline$PipelineExecutionException: java.lang.IllegalArgumentException
> at org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:348)
> at org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:318)
> at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:213)
> at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:67)
> at org.apache.beam.sdk.Pipeline.run(Pipeline.java:315)
> at org.apache.beam.sdk.Pipeline.run(Pipeline.java:301)
> at SimpleJdbc.main(SimpleJdbc.java:45)
> Caused by: java.lang.IllegalArgumentException
> at org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Preconditions.checkArgument(Preconditions.java:127)
> at org.apache.beam.sdk.io.jdbc.LogicalTypes$FixedPrecisionNumeric.toInputType(LogicalTypes.java:237)
> at org.apache.beam.sdk.io.jdbc.LogicalTypes$FixedPrecisionNumeric.toInputType(LogicalTypes.java:221)
> at org.apache.beam.sdk.io.jdbc.SchemaUtil.lambda$createLogicalTypeExtractor$ca0ab2ec$1(SchemaUtil.java:272)
> at org.apache.beam.sdk.io.jdbc.SchemaUtil$BeamRowMapper.mapRow(SchemaUtil.java:337)
> at org.apache.beam.sdk.io.jdbc.SchemaUtil$BeamRowMapper.mapRow(SchemaUtil.java:315)
> at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn.processElement(JdbcIO.java:854)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)