-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Destination: Teradata Vantage #20428
Conversation
/test connector=connectors/destination-teradata
Build FailedTest summary info:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I submitted some changes to fix some issues. Your implementation of retrieveRecords was wrong that the reason tests were failing. Now the error looks something with JDBC batchExecute function from Teradata driver.
{"type":"LOG","log":{"level":"ERROR","message":"Something went wrong in the connector. See the logs for more
details.\nStack Trace: java.lang.RuntimeException: java.sql.BatchUpdateException: [Teradata JDBC Driver] [TeraJDBC
17.20.00.12] [Error 1338] [SQLState HY000] A failure occurred while executing a PreparedStatement batch request. Details
of the failure can be found in the exception chain that is accessible with getNextException.\n\tat
io.airbyte.integrations.destination.teradata.TeradataSqlOperations.lambda$insertRecordsInternal$0(
TeradataSqlOperations.java:64)\n\tat io.airbyte.db.jdbc.DefaultJdbcDatabase.execute(DefaultJdbcDatabase.java:46)
\n\tatio.airbyte.integrations.destination.teradata.TeradataSqlOperations.insertRecordsInternal(TeradataSqlOperations.java
:39)\n\tat io.airbyte.integrations.destination.jdbc.JdbcSqlOperations.insertRecords(JdbcSqlOperations.java:131)\n\tat
io.airbyte.integrations.destination.jdbc.JdbcBufferedConsumerFactory.lambda$recordWriterFunction$2(JdbcBufferedC
onsumerFactory.java:151)\n\tatio.airbyte.integrations.destination.record_buffer.InMemoryRecordBufferingStrategy.flushAll
(InMemoryRecordBufferingStrategy.java:86)\n\tatio.airbyte.integrations.destination.buffered_stream_consumer.BufferedSt
reamConsumer.close(BufferedStreamConsumer.java:172)\n\taio.airbyte.integrations.base.FailureTrackingAirbyte
MessageConsumer.close(FailureTrackingAirbyteMessageConsumer.java:64)\n\tat io.airbyte.integrations.base.IntegrationRunner.runInternal(
IntegrationRunner.java:149)\n\tat io.airbyte.integrations.base.IntegrationRunner.run(IntegrationRunner.java:98)\n\tat
io.airbyte.integrations.destination.teradata.TeradataDestination.main(TeradataDestination.java:34)\nCaused by:
java.sql.BatchUpdateException: [Teradata JDBC Driver] [TeraJDBC 17.20.00.12] [Error 1338] [SQLState HY000] A failure
occurred while executing a PreparedStatement batch request. Details of the failure can be found in the exception chain that
is accessible with getNextException.\n\tat
com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeBatchUpdateException(ErrorFactory.java:149)\n\tat
com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeBatchUpdateException(ErrorFactory.java:138)\n\tat
com.teradata.jdbc.jdbc_4.TDPreparedStatement.executeBatchDMLArray(TDPreparedStatement.java:304)\n\tat
com.teradata.jdbc.jdbc_4.TDPreparedStatement.executeBatch(TDPreparedStatement.java:2862)\n\tat
com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)\n\tat
com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)\n\tat io.airbyte.integrations.destination.teradata.TeradataSqlOperations.lambda$insertRecordsInternal$0(TeradataSqlOperations.java:58)\n\t... 10 more\nCaused by: java.sql.SQLException: [Teradata JDBC Driver] [TeraJDBC 17.20.00.12] [Error 1339] [SQLState HY000] A failure occurred while executing a PreparedStatement batch request. The parameter set was not executed and should be resubmitted individually using the PreparedStatement executeUpdate method.\n\tat com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDriverJDBCException(ErrorFactory.java:95)\n\tat com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDriverJDBCException(ErrorFactory.java:65)\n\tat com.teradata.jdbc.jdbc_4.statemachine.PreparedBatchStatementController.handleRunException(PreparedBatchStatementController.java:96)\n\tat com.teradata.jdbc.jdbc_4.statemachine.StatementController.runBody(StatementController.java:145)\n\tat com.teradata.jdbc.jdbc_4.statemachine.PreparedBatchStatementController.run(PreparedBatchStatementController.java:58)\n\tat com.teradata.jdbc.jdbc_4.TDStatement.executeStatement(TDStatement.java:389)\n\tat com.teradata.jdbc.jdbc_4.TDPreparedStatement.executeBatchDMLArray(TDPreparedStatement.java:284)\n\t... 14 more\n"}}
/test connector=connectors/destination-teradata
Build FailedTest summary info:
|
/test connector=connectors/destination-teradata
Build FailedTest summary info:
|
The issue is with space of database. The database added for test cases execution has less space than required. Increased size of the database space to get test cases success. |
|
||
| Version | Date | Pull Request | Subject | | ||
|:--------|:-----------|:--------------------------------------------------------------|:---------------------------------| | ||
| 0.1.0 | 2022-12-13 | https://github.com/airbytehq/airbyte/pull/20428 | New Destination Teradata Vantage | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@marcosmarxm can we use the 0.0.1 as initial version of teradata vantage connector instead of 0.1.0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Airbyte default is 0.1.0
/test connector=connectors/destination-teradata
Build PassedTest summary info:
|
|
||
| Version | Date | Pull Request | Subject | | ||
|:--------|:-----------|:--------------------------------------------------------------|:---------------------------------| | ||
| 0.1.0 | 2022-12-13 | https://github.com/airbytehq/airbyte/pull/20428 | New Destination Teradata Vantage | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Airbyte default is 0.1.0
Hello 👋:skin-tone-2: and thank you for your contribution! Airbyte has instituted a code freeze between 19 and 30 December, to make sure there are no disruptions during the holidays. If you have any questions or need further clarification, please don't hesitate to ping via Slack. |
@@ -0,0 +1,5 @@ | |||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
was this file supposed to be included? (looks like .gitignore above is trying to exclude this file). If you meant to include a sample config file please prefix the file name with sample_
and don't use real working credentials in it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, this file is not using in tests instead using secrets/config.json. Deleted the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the new connector! I think we can merge this. However, we cannot add this to Airbyte Cloud until we add enforcement of encryption in transit similar to how we do with all other JDBC databases.
The minimum change we need to add this connector to Airbyte Cloud is for it to enforce SSLMODE=require
(per Teradata JDBC driver documentation: https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/frameset.html). Ideally, it will also support other SSL modes, but that's not strictly required.
/test connector=connectors/destination-teradata
|
/test connector=connectors/destination-teradata
|
@SatishChGit looks like some integration tests started failing. It would be easier to see what's wrong if the tests printed out the mismatching data that they are validating. E.g.: instead of
have something like:
so that we can see what is wrong in the test output |
/test connector=connectors/destination-teradata
|
/test connector=connectors/destination-teradata |
This connector was merged here: #21160 |
What
Describe what the change is solving
Teradata Vantage is the complete cloud analytics and data platform with next-generation, cloud-native deployment and expanded analytics capabilities. This connector helps to load data to teradata from other sources and apply transformations through airbyte.
It helps to add screenshots if it affects the frontend.
doesn't effect the frontend
How
The current version of the connector provides importing data to teradata through airbyte. The implemented version of the connector will allow for overwrite and append sync modes. Tried to implement basic and dbt normalization but facing issues on normalization process. Currently, this connector able to load data to teradata into raw tables.
Recommended reading order
🚨 User Impact 🚨
No breaking changes. User can load data from any airbyte supported source to teradata through airbyte.
Pre-merge Checklist
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereUpdating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereConnector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changesTests
Unit
Integration
Integration/AcceptanceTests requires teradata vantage instance and able to access from machine, where these tests are running. Please follow Prerequisites section of https://github.com/SatishChGit/airbyte/blob/teradata_java_dest_conn/docs/integrations/destinations/teradata.md.
To run Integration/AcceptanceTests, this connector requires config.json and failureconfig.json json files under airbyte-integrations/connectors/destination-teradata/secrets
format of config.json and failureconfig.json is
{ "host" : "teradatainstancehostname", "username": "username", "password": "password", "schema" : "schemaname" }
Below three test cases are failing and need airbyte help to resolve these.
TeradataDestinationAcceptanceTest. [1] exchange_rate_messages.txt, exchange_rate_catalog.json
TeradataDestinationAcceptanceTest. [2] edge_case_messages.txt, edge_case_catalog.json
TeradataDestinationAcceptanceTest. [2] edge_case_messages.txt, edge_case_catalog.json
Acceptance
Put your acceptance tests output here.