Interface DynamicTableSource

  • All Known Subinterfaces:
    LookupTableSource, ScanTableSource
    All Known Implementing Classes:
    DataGenTableSource, FileSystemTableSource, HiveLookupTableSource, HiveTableSource, PythonDynamicTableSource, SocketDynamicTableSource, TestScanTableSourceWithWatermarkPushDown

    @PublicEvolving
    public interface DynamicTableSource
    Source of a dynamic table from an external storage system.

    Dynamic tables are the core concept of Flink's Table & SQL API for processing both bounded and unbounded data in a unified fashion. By definition, a dynamic table can change over time.

    When reading a dynamic table, the content can either be considered as:

    • A changelog (finite or infinite) for which all changes are consumed continuously until the changelog is exhausted. See ScanTableSource for more information.
    • A continuously changing or very large external table whose content is usually never read entirely but queried for individual values when necessary. See LookupTableSource for more information.

    Note: Both interfaces can be implemented at the same time. The planner decides about their usage depending on the specified query.

    Instances of the above-mentioned interfaces can be seen as factories that eventually produce concrete runtime implementation for reading the actual data.

    Depending on the optionally declared abilities such as SupportsProjectionPushDown or SupportsFilterPushDown, the planner might apply changes to an instance and thus mutates the produced runtime implementation.

    • Method Detail

      • copy

        DynamicTableSource copy()
        Creates a copy of this instance during planning. The copy should be a deep copy of all mutable members.
      • asSummaryString

        String asSummaryString()
        Returns a string that summarizes this source for printing to a console or log.