Search in sources :

Example 6 with Table

use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.

the class BigtableTableCreationFailuresTest method testCreateWithoutLocationFails.

@Test
public void testCreateWithoutLocationFails() {
    String createTable = "CREATE EXTERNAL TABLE fail(key VARCHAR, something VARCHAR) \n" + "TYPE bigtable \n";
    cli.execute(createTable);
    Table table = metaStore.getTables().get("fail");
    IllegalStateException e = assertThrows(IllegalStateException.class, () -> tableProvider.buildBeamSqlTable(table));
    checkMessage(e.getMessage(), "LOCATION");
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) Test(org.junit.Test)

Example 7 with Table

use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.

the class BigtableTableCreationFailuresTest method testCreatePropertiesDontMatchSchema.

@Test
public void testCreatePropertiesDontMatchSchema() {
    String createTable = "CREATE EXTERNAL TABLE fail(key VARCHAR, q BIGINT, qq BINARY) \n" + "TYPE bigtable \n" + "LOCATION '" + location() + "' \n" + "TBLPROPERTIES '{\"columnsMapping\": \"f:b,f:c\"}'";
    cli.execute(createTable);
    Table table = metaStore.getTables().get("fail");
    IllegalStateException e = assertThrows(IllegalStateException.class, () -> tableProvider.buildBeamSqlTable(table));
    checkMessage(e.getMessage(), "does not fit to schema field names");
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) Test(org.junit.Test)

Example 8 with Table

use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.

the class BigtableTableCreationFailuresTest method testCreateWrongKeyTypeFails.

@Test
public void testCreateWrongKeyTypeFails() {
    String createTable = "CREATE EXTERNAL TABLE fail(key FLOAT) \n" + "TYPE bigtable \n" + "LOCATION '" + location() + "'";
    cli.execute(createTable);
    Table table = metaStore.getTables().get("fail");
    IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> tableProvider.buildBeamSqlTable(table));
    checkMessage(e.getMessage(), "key field type should be STRING but was FLOAT");
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) Test(org.junit.Test)

Example 9 with Table

use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.

the class KafkaTableProviderIT method testFake2.

@Test
@SuppressWarnings("FutureReturnValueIgnored")
public void testFake2() throws BeamKafkaTable.NoEstimationException {
    Table table = Table.builder().name("kafka_table").comment("kafka table").location(buildLocation()).schema(TEST_TABLE_SCHEMA).type("kafka").properties(JSON.parseObject(objectsProvider.getKafkaPropertiesString())).build();
    BeamKafkaTable kafkaTable = (BeamKafkaTable) new KafkaTableProvider().buildBeamSqlTable(table);
    produceSomeRecordsWithDelay(100, 20);
    double rate1 = kafkaTable.computeRate(20);
    produceSomeRecordsWithDelay(100, 10);
    double rate2 = kafkaTable.computeRate(20);
    Assert.assertTrue(rate2 > rate1);
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) Test(org.junit.Test)

Example 10 with Table

use of org.apache.beam.sdk.extensions.sql.meta.Table in project beam by apache.

the class KafkaTableProviderTest method testBuildBeamSqlProtoTable.

@Test
public void testBuildBeamSqlProtoTable() {
    Table table = mockProtoTable("hello", PayloadMessages.SimpleMessage.class);
    BeamSqlTable sqlTable = provider.buildBeamSqlTable(table);
    assertNotNull(sqlTable);
    assertTrue(sqlTable instanceof BeamKafkaTable);
    BeamKafkaTable kafkaTable = (BeamKafkaTable) sqlTable;
    assertEquals(LOCATION_BROKER, kafkaTable.getBootstrapServers());
    assertEquals(ImmutableList.of(LOCATION_TOPIC), kafkaTable.getTopics());
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) BeamSqlTable(org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable) BeamSqlTable(org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable) PayloadMessages(org.apache.beam.sdk.extensions.protobuf.PayloadMessages) Test(org.junit.Test)

Aggregations

Table (org.apache.beam.sdk.extensions.sql.meta.Table)65 Test (org.junit.Test)49 BeamSqlTable (org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable)37 Schema (org.apache.beam.sdk.schemas.Schema)9 Before (org.junit.Before)9 InMemoryMetaStore (org.apache.beam.sdk.extensions.sql.meta.store.InMemoryMetaStore)8 TestTableProvider (org.apache.beam.sdk.extensions.sql.meta.provider.test.TestTableProvider)7 TextTableProvider (org.apache.beam.sdk.extensions.sql.meta.provider.text.TextTableProvider)5 BeamTableStatistics (org.apache.beam.sdk.extensions.sql.impl.BeamTableStatistics)4 JSONObject (com.alibaba.fastjson.JSONObject)3 Row (org.apache.beam.sdk.values.Row)3 TableFieldSchema (com.google.api.services.bigquery.model.TableFieldSchema)2 TableRow (com.google.api.services.bigquery.model.TableRow)2 TableSchema (com.google.api.services.bigquery.model.TableSchema)2 Property (com.pholser.junit.quickcheck.Property)2 List (java.util.List)2 BeamSqlCli (org.apache.beam.sdk.extensions.sql.BeamSqlCli)2 InvalidTableException (org.apache.beam.sdk.extensions.sql.meta.provider.InvalidTableException)2 BigtableTableTestUtils.createReadTable (org.apache.beam.sdk.extensions.sql.meta.provider.bigtable.BigtableTableTestUtils.createReadTable)2 TCompactProtocol (org.apache.thrift.protocol.TCompactProtocol)2