@Override
    public Set<ConfigOption<?>> optionalOptions() {
        Set<ConfigOption<?>> options = new HashSet<>();
        options.add(FileSystemOptions.PARTITION_DEFAULT_NAME);
        options.add(FileSystemOptions.SINK_ROLLING_POLICY_FILE_SIZE);
        options.add(FileSystemOptions.SINK_ROLLING_POLICY_ROLLOVER_INTERVAL);
        options.add(FileSystemOptions.SINK_ROLLING_POLICY_CHECK_INTERVAL);
        options.add(FileSystemOptions.SINK_SHUFFLE_BY_PARTITION);
        options.add(FileSystemOptions.PARTITION_TIME_EXTRACTOR_KIND);
        options.add(FileSystemOptions.PARTITION_TIME_EXTRACTOR_CLASS);
        options.add(FileSystemOptions.PARTITION_TIME_EXTRACTOR_TIMESTAMP_PATTERN);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_TRIGGER);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_DELAY);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_WATERMARK_TIME_ZONE);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_POLICY_KIND);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_POLICY_CLASS);
        options.add(FileSystemOptions.SINK_PARTITION_COMMIT_SUCCESS_FILE_NAME);
        options.add(FileSystemOptions.AUTO_COMPACTION);
        options.add(FileSystemOptions.COMPACTION_FILE_SIZE);
        options.add(FileSystemOptions.SINK_PARALLELISM);
        options.add(INLONG_METRIC);
        options.add(INLONG_AUDIT);
        options.add(IGNORE_ALL_CHANGELOG);
        options.add(AUDIT_KEYS);
        return options;
    }
File system {@link TableFactory}.

<p>1.The partition information should be in the file system path, whether it's a temporary table
or a catalog table. 2.Support insert into (append) and insert overwrite. 3.Support static and
dynamic partition inserting.

copy from flink-table-runtime-blink:1.13.2-rc2
Add inlong metric option and inlong audit option for computing metric
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/filesystem/src/main/java/org/apache/inlong/sort/filesystem/FileSystemTableFactory.java