default String getMetadataType(MetaField metaField) {
        if (!supportedMetaFields().contains(metaField)) {
            throw new UnsupportedOperationException(String.format("Unsupport meta field for %s: %s",
                    this.getClass().getSimpleName(), metaField));
        }
        String metadataType;
        switch (metaField) {
            case TABLE_NAME:
            case DATABASE_NAME:
            case OP_TYPE:
            case DATA_CANAL:
            case DATA:
            case DATA_DEBEZIUM:
            case COLLECTION_NAME:
            case SCHEMA_NAME:
            case KEY:
            case VALUE:
            case HEADERS_TO_JSON_STR:
                metadataType = "STRING";
                break;
            case OP_TS:
            case TS:
            case TIMESTAMP:
                metadataType = "TIMESTAMP_LTZ(3)";
                break;
            case IS_DDL:
                metadataType = "BOOLEAN";
                break;
            case SQL_TYPE:
                metadataType = "MAP<STRING, INT>";
                break;
            case MYSQL_TYPE:
                metadataType = "MAP<STRING, STRING>";
                break;
            case ORACLE_TYPE:
                metadataType = "MAP<STRING, STRING>";
                break;
            case PK_NAMES:
                metadataType = "ARRAY<STRING>";
                break;
            case HEADERS:
                metadataType = "MAP<STRING, BINARY>";
                break;
            case BATCH_ID:
            case PARTITION:
            case OFFSET:
            case AUDIT_DATA_TIME:
                metadataType = "BIGINT";
                break;
            case UPDATE_BEFORE:
                metadataType = "ARRAY<MAP<STRING, STRING>>";
                break;
            case DATA_BYTES:
            case DATA_BYTES_DEBEZIUM:
            case DATA_BYTES_CANAL:
                metadataType = "BYTES";
                break;
            default:
                throw new UnsupportedOperationException(String.format("Unsupport meta field for %s: %s",
                        this.getClass().getSimpleName(), metaField));
        }
        return metadataType;
    }
Get metadata type MetaField that supported by Extract Nodes or Load Nodes

@param metaField The meta field
@return The type of metadata that based on Flink SQL types
inlong-sort/sort-common/src/main/java/org/apache/inlong/sort/protocol/Metadata.java