You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wayang.apache.org by rp...@apache.org on 2022/06/14 21:18:10 UTC
[incubator-wayang] 03/06: [TERADATA] Teradata Platform and Plugin
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 <ro...@databloom.ai>
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();
+ }
+}