Class BigtableTableProvider

java.lang.Object
org.apache.beam.sdk.extensions.sql.meta.provider.InMemoryMetaTableProvider
org.apache.beam.sdk.extensions.sql.meta.provider.bigtable.BigtableTableProvider
All Implemented Interfaces:
TableProvider

@Internal @AutoService(TableProvider.class) public class BigtableTableProvider extends InMemoryMetaTableProvider
TableProvider for BigtableTable.

A sample of BigTable table is:

invalid input: '{@code
   CREATE EXTERNAL TABLE beamTable(
     key VARCHAR NOT NULL,
     familyTest ROW<
       boolColumn BOOLEAN NOT NULL,
       longColumnWithTsAndLabels ROW<
         val BIGINT NOT NULL,
         timestampMicros BIGINT NOT NULL,
         labels VARCHAR
       > NOT NULL,
       stringArrayColumn ARRAY<VARCHAR> NOT NULL,
       doubleColumn DOUBLE NOT NULL,
       binaryColumn BINARY NOT NULL
     > NOT NULL
   )
   TYPE 'bigtable'
   LOCATION 'googleapis.com/bigtable/projects/<project_id>/instances/<instance_id>/tables/<table_name>'
 </pre>

 <p>Flat-schema table is also supported. It requires an additional property "columnsMapping" which
 describes which familyColumn describes which value in the form "familyName:columnQualifier":

 <pre>{@code
   CREATE EXTERNAL TABLE beamTable(
     key VARCHAR NOT NULL,
     boolColumn BOOLEAN NOT NULL,
     longColumn BIGINT NOT NULL,
     stringColumn VARCHAR NOT NULL,
     doubleColumn DOUBLE NOT NULL,
     binaryColumn BINARY NOT NULL
   )
   TYPE 'bigtable'
   LOCATION 'googleapis.com/bigtable/projects/<project_id>/instances/<instance_id>/tables/<table_name>'
   TBLPROPERTIES '{
     "columnsMapping": "f:boolColumn,f:longColumn,f:stringColumn,f2:doubleColumn,f2:binaryColumn"
   }'
 </pre>'
  • Constructor Details

    • BigtableTableProvider

      public BigtableTableProvider()
  • Method Details

    • getTableType

      public String getTableType()
      Description copied from interface: TableProvider
      Gets the table type this provider handles.
    • buildBeamSqlTable

      public BeamSqlTable buildBeamSqlTable(Table table)
      Description copied from interface: TableProvider
      Build a BeamSqlTable using the given table meta info.