@Internal public class TableImpl extends Object implements Table
Table.| Modifier and Type | Method and Description |
|---|---|
Table |
addColumns(org.apache.flink.table.expressions.Expression... fields)
Adds additional columns.
|
Table |
addOrReplaceColumns(org.apache.flink.table.expressions.Expression... fields)
Adds additional columns.
|
AggregatedTable |
aggregate(org.apache.flink.table.expressions.Expression aggregateFunction)
Performs a global aggregate operation with an aggregate function.
|
Table |
as(org.apache.flink.table.expressions.Expression... fields)
Renames the fields of the expression result.
|
Table |
as(String field,
String... fields)
Renames the fields of the expression result.
|
static TableImpl |
createTable(TableEnvironmentInternal tableEnvironment,
QueryOperation operationTree,
OperationTreeBuilder operationTreeBuilder,
FunctionLookup functionLookup) |
org.apache.flink.table.functions.TemporalTableFunction |
createTemporalTableFunction(org.apache.flink.table.expressions.Expression timeAttribute,
org.apache.flink.table.expressions.Expression primaryKey)
Creates
TemporalTableFunction backed up by this table as a history table. |
Table |
distinct()
Removes duplicate values and returns only distinct (different) values.
|
Table |
dropColumns(org.apache.flink.table.expressions.Expression... fields)
Drops existing columns.
|
TableResult |
execute()
Executes this object.
|
String |
explain(ExplainDetail... extraDetails)
Returns the AST of this object and the execution plan to compute the result of the given
statement.
|
Table |
fetch(int fetch)
Limits a (possibly sorted) result to the first n rows.
|
Table |
filter(org.apache.flink.table.expressions.Expression predicate)
Filters out elements that don't pass the filter predicate.
|
FlatAggregateTable |
flatAggregate(org.apache.flink.table.expressions.Expression tableAggregateFunction)
Perform a global flatAggregate without groupBy.
|
Table |
flatMap(org.apache.flink.table.expressions.Expression tableFunction)
Performs a flatMap operation with an user-defined table function or built-in table function.
|
Table |
fullOuterJoin(Table right,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins two
Tables. |
QueryOperation |
getQueryOperation()
Returns underlying logical representation of this table.
|
org.apache.flink.table.catalog.ResolvedSchema |
getResolvedSchema()
Returns the resolved schema of this table.
|
TableEnvironment |
getTableEnvironment() |
GroupedTable |
groupBy(org.apache.flink.table.expressions.Expression... fields)
Groups the elements on some grouping keys.
|
TablePipeline |
insertInto(String tablePath)
Declares that the pipeline defined by the given
Table object should be written to a
table (backed by a DynamicTableSink) that was registered under the specified path. |
TablePipeline |
insertInto(String tablePath,
boolean overwrite)
Declares that the pipeline defined by the given
Table object should be written to a
table (backed by a DynamicTableSink) that was registered under the specified path. |
TablePipeline |
insertInto(TableDescriptor descriptor)
Declares that the pipeline defined by the given
Table object should be written to a
table (backed by a DynamicTableSink) expressed via the given TableDescriptor. |
TablePipeline |
insertInto(TableDescriptor descriptor,
boolean overwrite)
Declares that the pipeline defined by the given
Table object should be written to a
table (backed by a DynamicTableSink) expressed via the given TableDescriptor. |
Table |
intersect(Table right)
Intersects two
Tables with duplicate records removed. |
Table |
intersectAll(Table right)
Intersects two
Tables. |
Table |
join(Table right)
Joins two
Tables. |
Table |
join(Table right,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins two
Tables. |
Table |
joinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall)
Joins this
Table with an user-defined TableFunction. |
Table |
joinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins this
Table with an user-defined TableFunction. |
Table |
leftOuterJoin(Table right)
Joins two
Tables. |
Table |
leftOuterJoin(Table right,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins two
Tables. |
Table |
leftOuterJoinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall)
Joins this
Table with an user-defined TableFunction. |
Table |
leftOuterJoinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins this
Table with an user-defined TableFunction. |
Table |
map(org.apache.flink.table.expressions.Expression mapFunction)
Performs a map operation with an user-defined scalar function or built-in scalar function.
|
Table |
minus(Table right)
Minus of two
Tables with duplicate records removed. |
Table |
minusAll(Table right)
Minus of two
Tables. |
Table |
offset(int offset)
Limits a (possibly sorted) result from an offset position.
|
Table |
orderBy(org.apache.flink.table.expressions.Expression... fields)
Sorts the given
Table. |
void |
printSchema()
Prints the schema of this table to the console in a summary format.
|
Table |
renameColumns(org.apache.flink.table.expressions.Expression... fields)
Renames existing columns.
|
Table |
rightOuterJoin(Table right,
org.apache.flink.table.expressions.Expression joinPredicate)
Joins two
Tables. |
Table |
select(org.apache.flink.table.expressions.Expression... fields)
Performs a selection operation.
|
String |
toString() |
Table |
union(Table right)
Unions two
Tables with duplicate records removed. |
Table |
unionAll(Table right)
Unions two
Tables. |
Table |
where(org.apache.flink.table.expressions.Expression predicate)
Filters out elements that don't pass the filter predicate.
|
GroupWindowedTable |
window(GroupWindow groupWindow)
Groups the records of a table by assigning them to windows defined by a time or row interval.
|
OverWindowedTable |
window(OverWindow... overWindows)
Defines over-windows on the records of a table.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitexecuteInsert, executeInsert, executeInsert, executeInsert, getSchema, limit, limitprintExplainpublic TableEnvironment getTableEnvironment()
public static TableImpl createTable(TableEnvironmentInternal tableEnvironment, QueryOperation operationTree, OperationTreeBuilder operationTreeBuilder, FunctionLookup functionLookup)
public org.apache.flink.table.catalog.ResolvedSchema getResolvedSchema()
TablegetResolvedSchema in interface Tablepublic void printSchema()
TableprintSchema in interface Tablepublic QueryOperation getQueryOperation()
TablegetQueryOperation in interface Tablepublic Table select(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.select($("key"), $("value").avg().plus(" The average").as("average"));
Scala Example:
tab.select($"key", $"value".avg + " The average" as "average")
public org.apache.flink.table.functions.TemporalTableFunction createTemporalTableFunction(org.apache.flink.table.expressions.Expression timeAttribute,
org.apache.flink.table.expressions.Expression primaryKey)
TableTemporalTableFunction backed up by this table as a history table. Temporal
Tables represent a concept of a table that changes over time and for which Flink keeps track
of those changes. TemporalTableFunction provides a way how to access those data.
For more information please check Flink's documentation on Temporal Tables.
Currently TemporalTableFunctions are only supported in streaming.
createTemporalTableFunction in interface TabletimeAttribute - Must points to a time indicator. Provides a way to compare which records
are a newer or older version.primaryKey - Defines the primary key. With primary key it is possible to update a row or
to delete it.TemporalTableFunction which is an instance of TableFunction. It takes
one single argument, the timeAttribute, for which it returns matching version of
the Table, from which TemporalTableFunction was created.public Table as(String field, String... fields)
TableExample:
tab.as("a", "b")
public Table as(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.as($("a"), $("b"))
Scala Example:
tab.as($"a", $"b")
public Table filter(org.apache.flink.table.expressions.Expression predicate)
TableJava Example:
tab.filter($("name").isEqual("Fred"));
Scala Example:
tab.filter($"name" === "Fred")
public Table where(org.apache.flink.table.expressions.Expression predicate)
TableJava Example:
tab.where($("name").isEqual("Fred"));
Scala Example:
tab.where($"name" === "Fred")
public GroupedTable groupBy(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.groupBy($("key")).select($("key"), $("value").avg());
Scala Example:
tab.groupBy($"key").select($"key", $"value".avg)
public Table distinct()
TableExample:
tab.select($("key"), $("value")).distinct();
public Table join(Table right)
TableTables. Similar to a SQL join. The fields of the two joined operations must
not overlap, use as to rename fields if necessary. You can use where and select
clauses after a join to further specify the behaviour of the join.
Note: Both tables must be bound to the same TableEnvironment .
Example:
left.join(right)
.where($("a").isEqual($("b")).and($("c").isGreater(3))
.select($("a"), $("b"), $("d"));
public Table join(Table right, org.apache.flink.table.expressions.Expression joinPredicate)
TableTables. Similar to a SQL join. The fields of the two joined operations must
not overlap, use as to rename fields if necessary.
Note: Both tables must be bound to the same TableEnvironment .
Java Example:
left.join(right, $("a").isEqual($("b")))
.select($("a"), $("b"), $("d"));
Scala Example:
left.join(right, $"a" === $"b")
.select($"a", $"b", $"d")
public Table leftOuterJoin(Table right)
TableTables. Similar to a SQL left outer join. The fields of the two joined
operations must not overlap, use as to rename fields if necessary.
Note: Both tables must be bound to the same TableEnvironment and its TableConfig must have null check enabled (default).
Example:
left.leftOuterJoin(right)
.select($("a"), $("b"), $("d"));
leftOuterJoin in interface Tablepublic Table leftOuterJoin(Table right, org.apache.flink.table.expressions.Expression joinPredicate)
TableTables. Similar to a SQL left outer join. The fields of the two joined
operations must not overlap, use as to rename fields if necessary.
Note: Both tables must be bound to the same TableEnvironment and its TableConfig must have null check enabled (default).
Java Example:
left.leftOuterJoin(right, $("a").isEqual($("b")))
.select($("a"), $("b"), $("d"));
Scala Example:
left.leftOuterJoin(right, $"a" === $"b")
.select($"a", $"b", $"d")
leftOuterJoin in interface Tablepublic Table rightOuterJoin(Table right, org.apache.flink.table.expressions.Expression joinPredicate)
TableTables. Similar to a SQL right outer join. The fields of the two joined
operations must not overlap, use as to rename fields if necessary.
Note: Both tables must be bound to the same TableEnvironment and its TableConfig must have null check enabled (default).
Java Example:
left.rightOuterJoin(right, $("a").isEqual($("b")))
.select($("a"), $("b"), $("d"));
Scala Example:
left.rightOuterJoin(right, $"a" === $"b")
.select($"a", $"b", $"d")
rightOuterJoin in interface Tablepublic Table fullOuterJoin(Table right, org.apache.flink.table.expressions.Expression joinPredicate)
TableTables. Similar to a SQL full outer join. The fields of the two joined
operations must not overlap, use as to rename fields if necessary.
Note: Both tables must be bound to the same TableEnvironment and its TableConfig must have null check enabled (default).
Java Example:
left.fullOuterJoin(right, $("a").isEqual($("b")))
.select($("a"), $("b"), $("d"));
Scala Example:
left.fullOuterJoin(right, $"a" === $"b")
.select($"a", $"b", $"d")
fullOuterJoin in interface Tablepublic Table joinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall)
TableTable with an user-defined TableFunction. This join is similar to
a SQL inner join with ON TRUE predicate but works with a table function. Each row of the
table is joined with all rows produced by the table function.
Java Example:
class MySplitUDTF extends TableFunction<String> {
public void eval(String str) {
str.split("#").forEach(this::collect);
}
}
table.joinLateral(call(MySplitUDTF.class, $("c")).as("s"))
.select($("a"), $("b"), $("c"), $("s"));
Scala Example:
class MySplitUDTF extends TableFunction[String] {
def eval(str: String): Unit = {
str.split("#").foreach(collect)
}
}
val split = new MySplitUDTF()
table.joinLateral(split($"c") as "s")
.select($"a", $"b", $"c", $"s")
joinLateral in interface Tablepublic Table joinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall, org.apache.flink.table.expressions.Expression joinPredicate)
TableTable with an user-defined TableFunction. This join is similar to
a SQL inner join but works with a table function. Each row of the table is joined with all
rows produced by the table function.
Java Example:
class MySplitUDTF extends TableFunction<String> {
public void eval(String str) {
str.split("#").forEach(this::collect);
}
}
table.joinLateral(call(MySplitUDTF.class, $("c")).as("s"), $("a").isEqual($("s")))
.select($("a"), $("b"), $("c"), $("s"));
Scala Example:
class MySplitUDTF extends TableFunction[String] {
def eval(str: String): Unit = {
str.split("#").foreach(collect)
}
}
val split = new MySplitUDTF()
table.joinLateral(split($"c") as "s", $"a" === $"s")
.select($"a", $"b", $"c", $"s")
joinLateral in interface Tablepublic Table leftOuterJoinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall)
TableTable with an user-defined TableFunction. This join is similar to
a SQL left outer join with ON TRUE predicate but works with a table function. Each row of the
table is joined with all rows produced by the table function. If the table function does not
produce any row, the outer row is padded with nulls.
Java Example:
class MySplitUDTF extends TableFunction<String> {
public void eval(String str) {
str.split("#").forEach(this::collect);
}
}
table.leftOuterJoinLateral(call(MySplitUDTF.class, $("c")).as("s"))
.select($("a"), $("b"), $("c"), $("s"));
Scala Example:
class MySplitUDTF extends TableFunction[String] {
def eval(str: String): Unit = {
str.split("#").foreach(collect)
}
}
val split = new MySplitUDTF()
table.leftOuterJoinLateral(split($"c") as "s")
.select($"a", $"b", $"c", $"s")
leftOuterJoinLateral in interface Tablepublic Table leftOuterJoinLateral(org.apache.flink.table.expressions.Expression tableFunctionCall, org.apache.flink.table.expressions.Expression joinPredicate)
TableTable with an user-defined TableFunction. This join is similar to
a SQL left outer join with ON TRUE predicate but works with a table function. Each row of the
table is joined with all rows produced by the table function. If the table function does not
produce any row, the outer row is padded with nulls.
Java Example:
class MySplitUDTF extends TableFunction<String> {
public void eval(String str) {
str.split("#").forEach(this::collect);
}
}
table.leftOuterJoinLateral(call(MySplitUDTF.class, $("c")).as("s"), $("a").isEqual($("s")))
.select($("a"), $("b"), $("c"), $("s"));
Scala Example:
class MySplitUDTF extends TableFunction[String] {
def eval(str: String): Unit = {
str.split("#").foreach(collect)
}
}
val split = new MySplitUDTF()
table.leftOuterJoinLateral(split($"c") as "s", $"a" === $"s")
.select($"a", $"b", $"c", $"s")
leftOuterJoinLateral in interface Tablepublic Table minus(Table right)
TableTables with duplicate records removed. Similar to a SQL EXCEPT clause.
Minus returns records from the left table that do not exist in the right table. Duplicate
records in the left table are returned exactly once, i.e., duplicates are removed. Both
tables must have identical field types.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.minus(right);
public Table minusAll(Table right)
TableTables. Similar to a SQL EXCEPT ALL. Similar to a SQL EXCEPT ALL clause.
MinusAll returns the records that do not exist in the right table. A record that is present n
times in the left table and m times in the right table is returned (n - m) times, i.e., as
many duplicates as are present in the right table are removed. Both tables must have
identical field types.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.minusAll(right);
public Table union(Table right)
TableTables with duplicate records removed. Similar to a SQL UNION. The fields
of the two union operations must fully overlap.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.union(right);
public Table unionAll(Table right)
TableTables. Similar to a SQL UNION ALL. The fields of the two union operations
must fully overlap.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.unionAll(right);
public Table intersect(Table right)
TableTables with duplicate records removed. Intersect returns records that
exist in both tables. If a record is present in one or both tables more than once, it is
returned just once, i.e., the resulting table has no duplicate records. Similar to a SQL
INTERSECT. The fields of the two intersect operations must fully overlap.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.intersect(right);
public Table intersectAll(Table right)
TableTables. IntersectAll returns records that exist in both tables. If a
record is present in both tables more than once, it is returned as many times as it is
present in both tables, i.e., the resulting table might have duplicate records. Similar to an
SQL INTERSECT ALL. The fields of the two intersect operations must fully overlap.
Note: Both tables must be bound to the same TableEnvironment.
Example:
left.intersectAll(right);
intersectAll in interface Tablepublic Table orderBy(org.apache.flink.table.expressions.Expression... fields)
TableTable. Similar to SQL ORDER BY.
The resulting Table is globally sorted across all parallel partitions.
Java Example:
tab.orderBy($("name").desc());
Scala Example:
tab.orderBy($"name".desc)
For unbounded tables, this operation requires a sorting on a time attribute or a subsequent fetch operation.
public Table offset(int offset)
TableThis method can be combined with a preceding Table.orderBy(Expression...) call for a
deterministic order and a subsequent Table.fetch(int) call to return n rows after skipping
the first o rows.
// skips the first 3 rows and returns all following rows.
tab.orderBy($("name").desc()).offset(3);
// skips the first 10 rows and returns the next 5 rows.
tab.orderBy($("name").desc()).offset(10).fetch(5);
For unbounded tables, this operation requires a subsequent fetch operation.
public Table fetch(int fetch)
TableThis method can be combined with a preceding Table.orderBy(Expression...) call for a
deterministic order and Table.offset(int) call to return n rows after skipping the first o
rows.
// returns the first 3 records.
tab.orderBy($("name").desc()).fetch(3);
// skips the first 10 rows and returns the next 5 rows.
tab.orderBy($("name").desc()).offset(10).fetch(5);
public GroupWindowedTable window(GroupWindow groupWindow)
TableFor streaming tables of infinite size, grouping into windows is required to define finite groups on which group-based aggregates can be computed.
For batch tables of finite size, windowing essentially provides shortcuts for time-based groupBy.
Note: Computing windowed aggregates on a streaming table is only a parallel
operation if additional grouping attributes are added to the groupBy(...) clause. If
the groupBy(...) only references a GroupWindow alias, the streamed table will be
processed by a single task, i.e., with parallelism 1.
public OverWindowedTable window(OverWindow... overWindows)
TableAn over-window defines for each record an interval of records over which aggregation functions can be computed.
Java Example:
table
.window(Over.partitionBy($("c")).orderBy($("rowTime")).preceding(lit(10).seconds()).as("ow")
.select($("c"), $("b").count().over($("ow")), $("e").sum().over($("ow")));
Scala Example:
table
.window(Over partitionBy $"c" orderBy $"rowTime" preceding 10.seconds as "ow")
.select($"c", $"b".count over $"ow", $"e".sum over $"ow")
Note: Computing over window aggregates on a streaming table is only a parallel operation if the window is partitioned. Otherwise, the whole stream will be processed by a single task, i.e., with parallelism 1.
Note: Over-windows for batch tables are currently not supported.
public Table addColumns(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.addColumns(
$("a").plus(1).as("a1"),
concat($("b"), "sunny").as("b1")
);
Scala Example:
tab.addColumns(
$"a" + 1 as "a1",
concat($"b", "sunny") as "b1"
)
addColumns in interface Tablepublic Table addOrReplaceColumns(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.addOrReplaceColumns(
$("a").plus(1).as("a1"),
concat($("b"), "sunny").as("b1")
);
Scala Example:
tab.addOrReplaceColumns(
$"a" + 1 as "a1",
concat($"b", "sunny") as "b1"
)
addOrReplaceColumns in interface Tablepublic Table renameColumns(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.renameColumns(
$("a").as("a1"),
$("b").as("b1")
);
Scala Example:
tab.renameColumns(
$"a" as "a1",
$"b" as "b1"
)
renameColumns in interface Tablepublic Table dropColumns(org.apache.flink.table.expressions.Expression... fields)
TableJava Example:
tab.dropColumns($("a"), $("b"));
Scala Example:
tab.dropColumns($"a", $"b")
dropColumns in interface Tablepublic Table map(org.apache.flink.table.expressions.Expression mapFunction)
TableJava Example:
tab.map(call(MyMapFunction.class, $("c")))
Scala Example:
val func = new MyMapFunction()
tab.map(func($"c"))
public Table flatMap(org.apache.flink.table.expressions.Expression tableFunction)
TableJava Example:
tab.flatMap(call(MyFlatMapFunction.class, $("c")))
Scala Example:
val func = new MyFlatMapFunction()
tab.flatMap(func($"c"))
public AggregatedTable aggregate(org.apache.flink.table.expressions.Expression aggregateFunction)
TableTable.aggregate(Expression) with a select statement. The output will be flattened if the
output type is a composite type.
Java Example:
tab.aggregate(call(MyAggregateFunction.class, $("a"), $("b")).as("f0", "f1", "f2"))
.select($("f0"), $("f1"));
Scala Example:
val aggFunc = new MyAggregateFunction
table.aggregate(aggFunc($"a", $"b") as ("f0", "f1", "f2"))
.select($"f0", $"f1")
public FlatAggregateTable flatAggregate(org.apache.flink.table.expressions.Expression tableAggregateFunction)
TableJava Example:
tab.flatAggregate(call(MyTableAggregateFunction.class, $("a"), $("b")).as("x", "y", "z"))
.select($("x"), $("y"), $("z"));
Scala Example:
val tableAggFunc: TableAggregateFunction = new MyTableAggregateFunction
tab.flatAggregate(tableAggFunc($"a", $"b") as ("x", "y", "z"))
.select($"x", $"y", $"z")
flatAggregate in interface Tablepublic TablePipeline insertInto(String tablePath)
TableTable object should be written to a
table (backed by a DynamicTableSink) that was registered under the specified path.
See the documentation of TableEnvironment.useDatabase(String) or TableEnvironment.useCatalog(String) for the rules on the path resolution.
Example:
Table table = tableEnv.sqlQuery("SELECT * FROM MyTable");
TablePipeline tablePipeline = table.insertInto("MySinkTable");
TableResult tableResult = tablePipeline.execute();
tableResult.await();
One can execute the returned TablePipeline using Executable.execute(),
or compile it to a CompiledPlan using Compilable.compilePlan().
If multiple pipelines should insert data into one or more sink tables as part of a single
execution, use a StatementSet (see TableEnvironment.createStatementSet()).
insertInto in interface TabletablePath - The path of the registered table (backed by a DynamicTableSink).public TablePipeline insertInto(String tablePath, boolean overwrite)
TableTable object should be written to a
table (backed by a DynamicTableSink) that was registered under the specified path.
See the documentation of TableEnvironment.useDatabase(String) or TableEnvironment.useCatalog(String) for the rules on the path resolution.
Example:
Table table = tableEnv.sqlQuery("SELECT * FROM MyTable");
TablePipeline tablePipeline = table.insertInto("MySinkTable", true);
TableResult tableResult = tablePipeline.execute();
tableResult.await();
One can execute the returned TablePipeline using Executable.execute(),
or compile it to a CompiledPlan using Compilable.compilePlan().
If multiple pipelines should insert data into one or more sink tables as part of a single
execution, use a StatementSet (see TableEnvironment.createStatementSet()).
insertInto in interface TabletablePath - The path of the registered table (backed by a DynamicTableSink).overwrite - Indicates whether existing data should be overwritten.public TablePipeline insertInto(TableDescriptor descriptor)
TableTable object should be written to a
table (backed by a DynamicTableSink) expressed via the given TableDescriptor.
The descriptor won't be registered in the catalog, but it will be
propagated directly in the operation tree. Note that calling this method multiple times, even
with the same descriptor, results in multiple sink tables instances.
This method allows to declare a Schema for the sink descriptor. The declaration is
similar to a CREATE TABLE DDL in SQL and allows to:
DataType
It is possible to declare a schema without physical/regular columns. In this case, those columns will be automatically derived and implicitly put at the beginning of the schema declaration.
Examples:
Schema schema = Schema.newBuilder()
.column("f0", DataTypes.STRING())
.build();
Table table = tableEnv.from(TableDescriptor.forConnector("datagen")
.schema(schema)
.build());
table.insertInto(TableDescriptor.forConnector("blackhole")
.schema(schema)
.build());
One can execute the returned TablePipeline using Executable.execute(),
or compile it to a CompiledPlan using Compilable.compilePlan().
If multiple pipelines should insert data into one or more sink tables as part of a single
execution, use a StatementSet (see TableEnvironment.createStatementSet()).
insertInto in interface Tabledescriptor - Descriptor describing the sink table into which data should be inserted.public TablePipeline insertInto(TableDescriptor descriptor, boolean overwrite)
TableTable object should be written to a
table (backed by a DynamicTableSink) expressed via the given TableDescriptor.
The descriptor won't be registered in the catalog, but it will be
propagated directly in the operation tree. Note that calling this method multiple times, even
with the same descriptor, results in multiple sink tables being registered.
This method allows to declare a Schema for the sink descriptor. The declaration is
similar to a CREATE TABLE DDL in SQL and allows to:
DataType
It is possible to declare a schema without physical/regular columns. In this case, those columns will be automatically derived and implicitly put at the beginning of the schema declaration.
Examples:
Schema schema = Schema.newBuilder()
.column("f0", DataTypes.STRING())
.build();
Table table = tableEnv.from(TableDescriptor.forConnector("datagen")
.schema(schema)
.build());
table.insertInto(TableDescriptor.forConnector("blackhole")
.schema(schema)
.build(), true);
One can execute the returned TablePipeline using Executable.execute(),
or compile it to a CompiledPlan using Compilable.compilePlan().
If multiple pipelines should insert data into one or more sink tables as part of a single
execution, use a StatementSet (see TableEnvironment.createStatementSet()).
insertInto in interface Tabledescriptor - Descriptor describing the sink table into which data should be inserted.overwrite - Indicates whether existing data should be overwritten.public TableResult execute()
ExecutableBy default, all DML operations are executed asynchronously. Use TableResult.await() or TableResult.getJobClient() to monitor the execution. Set
TableConfigOptions.TABLE_DML_SYNC for always synchronous execution.
execute in interface Executablepublic String explain(ExplainDetail... extraDetails)
Explainableexplain in interface Explainable<Table>extraDetails - The extra explain details which the result of this method should include,
e.g. estimated cost, changelog mode for streamingCopyright © 2014–2023 The Apache Software Foundation. All rights reserved.