-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add Teradata connector #26731
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
base: master
Are you sure you want to change the base?
Add Teradata connector #26731
Conversation
|
||
import java.util.List; | ||
|
||
public record EnvironmentResponse( |
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.
add a compact constructor and add rnn check
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.
Same as others
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.
addressed
boolean destroyEnv, | ||
String region) | ||
{ | ||
this.token = token; |
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.
rnn check
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.
requirednotnull check added
public static final String BEARER = "Bearer "; | ||
|
||
private Headers() | ||
{ |
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.
nit:
private Headers()
{}
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.
addressed
|
||
@AfterAll | ||
public void cleanupTestDatabase() | ||
{ |
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.
we could use closeAfterClass
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.
updated with closeAfterClass
@Test | ||
public void testAddColumn() | ||
{ | ||
Assumptions.abort("Skipping as connector does not support column level write operations"); |
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.
static import
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.
Same other places
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.
addressed all applicable places
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 @chenjian2664 for your review. addressed all your review comments.
|
||
<dependency> | ||
<groupId>com.teradata.jdbc</groupId> | ||
<artifactId>terajdbc</artifactId> |
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.
Maven central lists this with "Teradata Generic Download License" license.
Is that license compatible for inclusion in Apache project?
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.
Hi @findepi, Thanks for pointing this out. The Teradata JDBC driver is distributed under the "Teradata Generic Download License" and is free to download and use.
We are currently using the same driver in the Airbyte project for the Teradata connector without issues.
That said, we are checking internally with our legal team to confirm whether this license is compatible for inclusion in Apache projects like Trino. We’ll get back to you as soon as we have a confirmation.
How will these tests be run on Trino CI? |
Thank you @findepi for your review. We need Trino team help to configure required environment variables to run Teradata connector integration tests and need to update Trino CI to include Teradata integration tests |
Description
This PR introduces the Teradata connector, enabling Trino to query and interact with Teradata data sources.
Key additions:
Implements the Teradata connector SPI with support for:
• Connection setup
• Schema retrieval
• Data type mapping
Adds integration tests against a Teradata ClearScape Analytics™ Experience instance to verify connection, query execution, and result mapping.
Updates documentation under connectors to include usage examples and configuration options.
This connector extends Trino’s ecosystem to support Teradata users, allowing them to leverage Trino’s distributed query engine for federated queries.
Additional context and related issues
The Teradata connector module has both unit tests and integration tests.
The integration tests require access to a Teradata ClearScape Analytics™ Experience.
You can follow the steps below to run the integration tests locally.
Prerequisites
Create a new ClearScape Analytics™ Experience account
If you don't already have one, sign up at:
Teradata ClearScape Analytics™ Experience
Login
Sign in with your new account at:
ClearScape Analytics™ Experience Login
Collect the API Token
Use the Copy API Token button in the UI to retrieve your token.
Define the following environment variables
Running Integration Tests
Once the environment variables are set, run the integration tests with:
./mvnw clean install -pl :trino-teradata
Release notes
( ) This is not user-visible or is docs only, and no release notes are required.
(x ) Release notes are required. Please propose a release note for me.
( ) Release notes are required, with the following suggested text: