private static PartitionStrategy buildPartitionStrategyForKeyMappings( Map<Integer, FieldMapping> keyMappings) { PartitionStrategy.Builder builder = new PartitionStrategy.Builder(); for (Integer index : new TreeSet<Integer>(keyMappings.keySet())) { builder.identity(keyMappings.get(index).getFieldName()); } return builder.build(); }
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredString("field") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .hash("array", 48) .build()) .build(); } });
@Override public void run() { new DatasetDescriptor.Builder() .schema(Schema.createArray(Schema.create(Schema.Type.FLOAT))) .partitionStrategy(new PartitionStrategy.Builder() .hash("array", 48) .build()) .build(); } });
@Override public void run() { new PartitionStrategy.Builder() .identity("number", "num") .identity("number2", "num") .build(); } });
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .identity("s", "part") .identity("s", "part2") .identity("s", "part3") .build(), PROVIDED_TEST_SCHEMA); } });
@Override public void run() { new DatasetDescriptor.Builder() .schema(USER_SCHEMA) .partitionStrategy(new PartitionStrategy.Builder() .year("created_at") .build()) .build(); } }
@Test public void testExpressionRoundTrip() { PartitionStrategy strategy = new PartitionStrategy.Builder() .dateFormat("timestamp", "day", "yyyy-MM-dd") .build(); PartitionStrategy copy = Accessor.getDefault().fromExpression( Accessor.getDefault().toExpression(strategy)); Assert.assertEquals(strategy, copy); } }
@Test @SuppressWarnings("deprecation") public void testIntIdentity() { PartitionStrategy intIdStrategy = new PartitionStrategy.Builder() .identity("intField") .build(); PartitionStrategy copy = new PartitionExpression( PartitionExpression.toExpression(intIdStrategy), true).evaluate(); Assert.assertEquals(intIdStrategy, copy); }
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredInt("number") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .range("number", "m", "z") .build()) .build(); } });
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredString("username") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .range("number", 5, 10, 15) .build()) .build(); } });
@Override public void run() { new DatasetDescriptor.Builder() .schema((Schema) null) .partitionStrategy(new PartitionStrategy.Builder() .hash("array", 48) .build()) .build(); } });
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .dateFormat("l", "part", "yyyy-MM-dd") .build(), PROVIDED_TEST_SCHEMA); } });
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .identity("s", "part") .build(), PROVIDED_TEST_SCHEMA); } });
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .identity("i", "part") .build(), PROVIDED_TEST_SCHEMA); } });
@Override public void run() { Compatibility.checkDescriptor( new DatasetDescriptor.Builder() .schema(schema) .partitionStrategy(new PartitionStrategy.Builder() .day("timestamp") .identity("number", "day") .build()) .build()); } });
@Test public void testRange() { PartitionStrategy rangeStrategy = new PartitionStrategy.Builder() .range("color", "blue", "green", "orange", "red", "white") .build(); PartitionStrategy copy = new PartitionExpression( PartitionExpression.toExpression(rangeStrategy), true).evaluate(); Assert.assertEquals(rangeStrategy, copy); }
@Test public void testHour() { checkParser(new PartitionStrategy.Builder().hour("time").build(), "[ {\"type\": \"hour\", \"source\": \"time\"} ]"); checkParser(new PartitionStrategy.Builder().hour("time", "h").build(), "[ {\"type\": \"hour\", \"source\": \"time\", \"name\": \"h\"} ]"); }
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredInt("timestamp") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .year("timestamp").month("timestamp").day("timestamp") .build()) .build(); } });
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .identity("s", "other") .build(), PROVIDED_TEST_SCHEMA); } });
@Test public void testIntRange() { PartitionStrategy intRangeStrategy = new PartitionStrategy.Builder() .range("intField", 5, 10, 15, 20, 25) .build(); PartitionStrategy copy = new PartitionExpression( PartitionExpression.toExpression(intRangeStrategy), true).evaluate(); Assert.assertEquals(intRangeStrategy, copy); }