lirui-apache commented on a change in pull request #8965: [FLINK-13068][hive]
HiveTableSink should implement PartitionableTable…
URL: https://github.com/apache/flink/pull/8965#discussion_r300210415
##########
File path:
flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/batch/connectors/hive/HiveTableSink.java
##########
@@ -161,4 +164,37 @@ private String toStagingDir(String finalDir,
Configuration conf) throws IOExcept
fs.deleteOnExit(path);
return res;
}
+
+ @Override
+ public List<String> getPartitionFieldNames() {
+ return catalogTable.getPartitionKeys();
+ }
+
+ @Override
+ public void setStaticPartition(Map<String, String> partitions) {
+ // make it a LinkedHashMap to maintain partition column order
+ staticPartitionSpec = new LinkedHashMap<>();
+ for (String partitionCol : getPartitionFieldNames()) {
+ if (partitions.containsKey(partitionCol)) {
+ staticPartitionSpec.put(partitionCol,
partitions.get(partitionCol));
+ }
+ }
+ }
+
+ private void validatePartitionSpec() {
+ List<String> partitionCols = getPartitionFieldNames();
+ Preconditions.checkArgument(new
HashSet<>(partitionCols).containsAll(
+ staticPartitionSpec.keySet()), "Static
partition spec contains unknown partition column: " +
staticPartitionSpec.toString());
+ int numStaticPart = staticPartitionSpec.size();
+ if (numStaticPart < partitionCols.size()) {
+ for (String partitionCol : partitionCols) {
+ if
(!staticPartitionSpec.containsKey(partitionCol)) {
+
Preconditions.checkArgument(numStaticPart == 0,
+ "Dynamic partition
cannot appear before static partition");
+ } else {
+ numStaticPart--;
Review comment:
It actually does. We'll use it to make sure we don't see any dynamic
partition columns before we have seen all the static ones.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services