static CompletableFuture<ClickHouseResponseSummary> load(ClickHouseNode server, String table,
            ClickHouseWriter writer, ClickHouseCompression compression, ClickHouseFormat format) {
        if (server == null || table == null || writer == null) {
            throw new IllegalArgumentException("Non-null server, table, and custom writer are required");
        }

        // in case the protocol is ANY
        final ClickHouseNode theServer = server.probe();

        return submit(() -> {
            try (ClickHouseClient client = newInstance(theServer.getProtocol());
                    ClickHouseResponse response = client.write(theServer).table(table).data(writer)
                            .decompressClientRequest(compression).format(format).executeAndWait()) {
                return response.getSummary();
            }
        });
    }
Loads data from a customer writer into table using specified format and
compression algorithm.

@param server      non-null server to connect to
@param table       non-null target table
@param writer      non-null custom writer to produce data
@param compression compression algorithm to use
@param format      input format to use
@return future object to get result
@throws IllegalArgumentException if any of server, table, and input is null
@throws CompletionException      when error occurred during execution
clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseClient.java