Search in sources :

Example 56 with Table

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

the class BigQueryRowCountIT method testNonEmptyTable.

@Test
public void testNonEmptyTable() {
    BigQueryTableProvider provider = new BigQueryTableProvider();
    Table table = getTable("testTable", bigQuery.tableSpec());
    pipeline.apply(Create.of(new TableRow().set("id", 1).set("name", "name1"), new TableRow().set("id", 2).set("name", "name2"), new TableRow().set("id", 3).set("name", "name3")).withCoder(TableRowJsonCoder.of())).apply(BigQueryIO.writeTableRows().to(bigQuery.tableSpec()).withSchema(new TableSchema().setFields(ImmutableList.of(new TableFieldSchema().setName("id").setType("INTEGER"), new TableFieldSchema().setName("name").setType("STRING")))).withoutValidation());
    pipeline.run().waitUntilFinish();
    BeamSqlTable sqlTable = provider.buildBeamSqlTable(table);
    BeamTableStatistics size1 = sqlTable.getTableStatistics(TestPipeline.testingPipelineOptions());
    assertNotNull(size1);
    assertEquals(3d, size1.getRowCount(), 0.1);
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) BeamSqlTable(org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable) TableSchema(com.google.api.services.bigquery.model.TableSchema) TableRow(com.google.api.services.bigquery.model.TableRow) BeamSqlTable(org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable) TableFieldSchema(com.google.api.services.bigquery.model.TableFieldSchema) BeamTableStatistics(org.apache.beam.sdk.extensions.sql.impl.BeamTableStatistics) Test(org.junit.Test)

Example 57 with Table

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

the class BigQueryRowCountIT method testFakeTable.

@Test
public void testFakeTable() {
    BigQueryTableProvider provider = new BigQueryTableProvider();
    Table table = getTable("fakeTable", "project:dataset.table");
    BeamSqlTable sqlTable = provider.buildBeamSqlTable(table);
    BeamTableStatistics size = sqlTable.getTableStatistics(TestPipeline.testingPipelineOptions());
    assertTrue(size.isUnknown());
}
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) BeamTableStatistics(org.apache.beam.sdk.extensions.sql.impl.BeamTableStatistics) Test(org.junit.Test)

Example 58 with Table

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

the class BigtableTableCreationFailuresTest method testCreateWithoutKeyFails.

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

Example 59 with Table

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

the class BigtableTableCreationFailuresTest method testShouldFailOnIncorrectLocation.

@Test
public void testShouldFailOnIncorrectLocation() {
    String createTable = "CREATE EXTERNAL TABLE fail(key VARCHAR, q BIGINT) \n" + "TYPE bigtable \n" + "LOCATION 'googleapis.com/incorrect/projects/fakeProject/instances/fakeInstance/tables/beamTable' \n" + "TBLPROPERTIES '{\"columnsMapping\": \"f:q\"}'";
    cli.execute(createTable);
    Table table = metaStore.getTables().get("fail");
    InvalidTableException e = assertThrows(InvalidTableException.class, () -> tableProvider.buildBeamSqlTable(table));
    checkMessage(e.getMessage(), "Bigtable location must be in the following format:");
}
Also used : Table(org.apache.beam.sdk.extensions.sql.meta.Table) InvalidTableException(org.apache.beam.sdk.extensions.sql.meta.provider.InvalidTableException) Test(org.junit.Test)

Example 60 with Table

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

the class IOPushDownRuleTest method buildUp.

@Before
public void buildUp() {
    TestTableProvider tableProvider = new TestTableProvider();
    Table table = getTable("TEST", PushDownOptions.PROJECT);
    tableProvider.createTable(table);
    tableProvider.addRows(table.getName(), row(BASIC_SCHEMA, 100, 1, "one", 100), row(BASIC_SCHEMA, 200, 2, "two", 200));
    sqlEnv = BeamSqlEnv.builder(tableProvider).setPipelineOptions(PipelineOptionsFactory.create()).setRuleSets(ImmutableList.of(RuleSets.ofList(defaultRules))).build();
}
Also used : TestTableProvider(org.apache.beam.sdk.extensions.sql.meta.provider.test.TestTableProvider) Table(org.apache.beam.sdk.extensions.sql.meta.Table) Before(org.junit.Before)

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