This is an automated email from the ASF dual-hosted git repository. rpardomeza pushed a commit to branch blossom-teradata in repository https://gitbox.apache.org/repos/asf/incubator-wayang.git
commit c9c36d253a109088cecd8376085365a266dcc5ed Author: Rodrigo Pardo Meza <[email protected]> AuthorDate: Tue Jun 14 23:11:20 2022 +0200 [TERADATA] Teradata Platform and Plugin --- .../java/org/apache/wayang/teradata/Teradata.java | 123 +++++++++++++++++++++ .../wayang/teradata/platform/TeradataPlatform.java | 28 +++++ 2 files changed, 151 insertions(+) diff --git a/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/Teradata.java b/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/Teradata.java new file mode 100644 index 00000000..8ceddd77 --- /dev/null +++ b/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/Teradata.java @@ -0,0 +1,123 @@ +package org.apache.wayang.teradata; + +import org.apache.wayang.core.api.Configuration; +import org.apache.wayang.core.mapping.Mapping; +import org.apache.wayang.core.optimizer.channels.ChannelConversion; +import org.apache.wayang.core.platform.Platform; +import org.apache.wayang.core.plugin.Plugin; +import org.apache.wayang.java.Java; +import org.apache.wayang.java.platform.JavaPlatform; +import org.apache.wayang.spark.Spark; +import org.apache.wayang.spark.platform.SparkPlatform; +import org.apache.wayang.teradata.channels.ChannelConversions; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + +public class Teradata { + + private static final Plugin PLUGIN = new Plugin() { + + @Override + public Collection<Platform> getRequiredPlatforms() { + return Arrays.asList(Java.platform(), Spark.platform()); + } + + @Override + public Collection<Mapping> getMappings() { + return Collections.emptyList(); + } + + @Override + public Collection<ChannelConversion> getChannelConversions() { + return ChannelConversions.ALL; + } + + @Override + public void setProperties(Configuration configuration) { + + } + }; + + /** + * Retrieve a {@link Plugin} to use {link IEJoinOperator} and {link IESelfJoinOperator} on the + * {@link JavaPlatform} and {link SparkPlatform}. + * + * @return the {@link Plugin} + */ + public static Plugin plugin() { + return PLUGIN; + } + + /** + * Enables use with the {@link JavaPlatform}. + */ + private static final Plugin JAVA_PLUGIN = new Plugin() { + + @Override + public Collection<Platform> getRequiredPlatforms() { + return Collections.singleton(Java.platform()); + } + + @Override + public Collection<Mapping> getMappings() { + return null;// Mappings.javaMappings; + } + + @Override + public Collection<ChannelConversion> getChannelConversions() { + return Collections.emptyList(); + } + + @Override + public void setProperties(Configuration configuration) { + } + }; + + /** + * Retrieve a {@link Plugin} to use {link IEJoinOperator} and {link IESelfJoinOperator} on the + * and {@link JavaPlatform}. + * + * @return the {@link Plugin} + */ + public static Plugin javaPlugin() { + return JAVA_PLUGIN; + } + + /** + * Enables use with the {link SparkPlatform}. + */ + public static final Plugin SPARK_PLUGIN = new Plugin() { + + @Override + public Collection<Platform> getRequiredPlatforms() { + return Collections.singleton(Spark.platform()); + } + + @Override + public Collection<Mapping> getMappings() { + return null;//Mappings.sparkMappings; + } + + @Override + public Collection<ChannelConversion> getChannelConversions() { + return Collections.emptyList(); + } + + @Override + public void setProperties(Configuration configuration) { + } + }; + + /** + * Retrieve a {@link Plugin} to use {link IEJoinOperator} and {link IESelfJoinOperator} on the + * and {@link SparkPlatform}. + * + * @return the {@link Plugin} + */ + public static Plugin sparkPlugin() { + return SPARK_PLUGIN; + } + +} diff --git a/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/platform/TeradataPlatform.java b/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/platform/TeradataPlatform.java new file mode 100644 index 00000000..0ec1cbaf --- /dev/null +++ b/wayang-plugins/wayang-teradata/src/main/java/org/apache/wayang/teradata/platform/TeradataPlatform.java @@ -0,0 +1,28 @@ +package org.apache.wayang.teradata.platform; + +import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate; + +public class TeradataPlatform extends JdbcPlatformTemplate { + + private static final String PLATFORM_NAME = "Teradata"; + + private static final String CONFIG_NAME = "teradata"; + + private static TeradataPlatform instance = null; + + public static TeradataPlatform getInstance() { + if (instance == null) { + instance = new TeradataPlatform(); + } + return instance; + } + + protected TeradataPlatform() { + super(PLATFORM_NAME, CONFIG_NAME); + } + + @Override + protected String getJdbcDriverClassName() { + return com.teradata.jdbc.TeraDriver.class.getName(); + } +}
