use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.
the class BigtableFilterTest method buildUp.
@Before
public void buildUp() {
TestTableProvider tableProvider = new TestTableProvider();
Table table = getTable("TEST", PushDownOptions.NONE);
tableProvider.createTable(table);
tableProvider.addRows(table.getName(), row("key1", "firstName"), row("key2", "secondName"));
sqlEnv = BeamSqlEnv.builder(tableProvider).setPipelineOptions(PipelineOptionsFactory.create()).build();
}
use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.
the class BigtableTableFlatTest method testCreatesFlatSchemaCorrectly.
@Test
public void testCreatesFlatSchemaCorrectly() {
final String tableId = "flatTableSchema";
InMemoryMetaStore metaStore = new InMemoryMetaStore();
metaStore.registerProvider(new BigtableTableProvider());
BeamSqlCli cli = new BeamSqlCli().metaStore(metaStore);
cli.execute(createFlatTableString(tableId, location(tableId)));
Table table = metaStore.getTables().get(tableId);
assertNotNull(table);
assertEquals(TEST_FLAT_SCHEMA, table.getSchema());
JSONObject properties = table.getProperties();
assertTrue(properties.containsKey(COLUMNS_MAPPING));
assertEquals(columnsMappingString(), properties.getString(COLUMNS_MAPPING));
}
use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.
the class InMemoryMetaStoreTest method testCreateTable_duplicatedName.
@Test(expected = IllegalArgumentException.class)
public void testCreateTable_duplicatedName() throws Exception {
Table table = mockTable("person");
store.createTable(table);
store.createTable(table);
}
use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.
the class InMemoryMetaStoreTest method testBuildBeamSqlTable.
@Test
public void testBuildBeamSqlTable() throws Exception {
Table table = mockTable("hello");
store.createTable(table);
BeamSqlTable actualSqlTable = store.buildBeamSqlTable(table);
assertNotNull(actualSqlTable);
assertEquals(Schema.builder().addNullableField("id", Schema.FieldType.INT32).addNullableField("name", Schema.FieldType.STRING).build(), actualSqlTable.getSchema());
}
use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.
the class BeamSqlCliTest method testExecute_createTableWithPrefixArrayField.
@Test
public void testExecute_createTableWithPrefixArrayField() throws Exception {
InMemoryMetaStore metaStore = new InMemoryMetaStore();
metaStore.registerProvider(new TextTableProvider());
BeamSqlCli cli = new BeamSqlCli().metaStore(metaStore);
cli.execute("CREATE EXTERNAL TABLE person (\n" + "id int COMMENT 'id', \n" + "name varchar COMMENT 'name', \n" + "age int COMMENT 'age', \n" + "tags ARRAY<VARCHAR>, \n" + "matrix ARRAY<ARRAY<INTEGER>> \n" + ") \n" + "TYPE 'text' \n" + "COMMENT '' LOCATION '/home/admin/orders'");
Table table = metaStore.getTables().get("person");
assertNotNull(table);
assertEquals(Stream.of(Field.of("id", INTEGER).withDescription("id").withNullable(true), Field.of("name", VARCHAR).withDescription("name").withNullable(true), Field.of("age", INTEGER).withDescription("age").withNullable(true), Field.of("tags", Schema.FieldType.array(VARCHAR)).withNullable(true), Field.of("matrix", Schema.FieldType.array(Schema.FieldType.array(INTEGER))).withNullable(true)).collect(toSchema()), table.getSchema());
}
Aggregations