public interface TableProvider
TableProvider
handles the metadata CRUD of a specified kind of tables.
So there will be a provider to handle textfile(CSV) based tables, there is a provider to handle MySQL based tables, a provider to handle Casandra based tables etc.
Note: all implementations marked with @AutoService(TableProvider.class)
are
automatically loaded by CLI or other cases when JdbcDriver
is used with default
connection parameters.
Modifier and Type | Method and Description |
---|---|
BeamSqlTable |
buildBeamSqlTable(Table table)
Build a
BeamSqlTable using the given table meta info. |
void |
createTable(Table table)
Creates a table.
|
void |
dropTable(java.lang.String tableName)
Drops a table.
|
default TableProvider |
getSubProvider(java.lang.String name)
Returns a sub-provider, e.g.
|
default java.util.Set<java.lang.String> |
getSubProviders()
Returns all sub-providers, e.g.
|
default Table |
getTable(java.lang.String tableName)
Get a specific table from this provider it is present, or null if it is not present.
|
java.util.Map<java.lang.String,Table> |
getTables()
Get all tables from this provider.
|
java.lang.String |
getTableType()
Gets the table type this provider handles.
|
java.lang.String getTableType()
void createTable(Table table)
void dropTable(java.lang.String tableName)
tableName
- java.util.Map<java.lang.String,Table> getTables()
@Nullable default Table getTable(java.lang.String tableName)
BeamSqlTable buildBeamSqlTable(Table table)
BeamSqlTable
using the given table meta info.default java.util.Set<java.lang.String> getSubProviders()
BeamCalciteSchema
.default TableProvider getSubProvider(java.lang.String name)
BeamCalciteSchema
.