[
https://issues.apache.org/jira/browse/FLINK-20936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Flink Jira Bot updated FLINK-20936:
-----------------------------------
Labels: auto-deprioritized-major auto-deprioritized-minor (was:
auto-deprioritized-major stale-minor)
Priority: Not a Priority (was: Minor)
This issue was labeled "stale-minor" 7 days ago and has not received any
updates so it is being deprioritized. If this ticket is actually Minor, please
raise the priority and ask a committer to assign you the issue or revive the
public discussion.
> Improvements in custom partition extractor
> -------------------------------------------
>
> Key: FLINK-20936
> URL: https://issues.apache.org/jira/browse/FLINK-20936
> Project: Flink
> Issue Type: Improvement
> Components: Connectors / Hive
> Affects Versions: 1.12.0
> Environment: flink 1.12.0
> jdk 1.8
> Reporter: zhoukui
> Priority: Not a Priority
> Labels: auto-deprioritized-major, auto-deprioritized-minor
>
> In flink1.12.0, I saw PartitionTimeExtractor is a constructor without
> parameters, why not take the parameter “extractorPattern". See the source
> code below:
> {code:java}
> @Experimental
> public interface PartitionTimeExtractor extends Serializable {
> String DEFAULT = "default";
> String CUSTOM = "custom";
> /**
> * Extract time from partition keys and values.
> */
> LocalDateTime extract(List<String> partitionKeys, List<String>
> partitionValues);
> static PartitionTimeExtractor create(
> ClassLoader userClassLoader,
> String extractorKind,
> String extractorClass,
> String extractorPattern) {
> switch (extractorKind) {
> case DEFAULT:
> return new DefaultPartTimeExtractor(extractorPattern);
> case CUSTOM:
> try
> { Class<?> aClass = userClassLoader.loadClass(extractorClass); return
> (PartitionTimeExtractor) aClass.newInstance(); }
> catch (ClassNotFoundException | IllegalAccessException |
> InstantiationException e)
> { throw new RuntimeException( "Can not new instance for custom class from " +
> extractorClass, e); }
> default:
> throw new UnsupportedOperationException(
> "Unsupported extractor kind: " + extractorKind);
> }
> }
> }
> {code}
> Would it be more reasonable to bring a parameter construction method? as
> follows:
> try
> { Class<?> aClass = userClassLoader.loadClass(extractorClass); Constructor<?>
> declaredConstructor = aClass.getDeclaredConstructor(String.class);
> return (PartitionTimeExtractor)
> declaredConstructor.newInstance(extractorPattern); }
> catch (ClassNotFoundException | IllegalAccessException |
> InstantiationException | NoSuchMethodException | InvocationTargetException e)
> { throw new RuntimeException( "Can not new instance for custom class from " +
> extractorClass, e); }
--
This message was sent by Atlassian Jira
(v8.20.1#820001)