**Describe the unexpected behaviour**
Clickhouse does not support parquet with 'large_utf8' columns (only 'utf8'). From my understanding, the only difference is offsets are u64 in 'large_utf8' instead of u32

**How to reproduce**

```
import pyarrow
import pyarrow.parquet
import subprocess


for schema in (None,pyarrow.schema({"a": pyarrow.large_utf8()})):
    a = pyarrow.table({"a": ["00000"]}, schema=schema)
    pyarrow.parquet.write_table(a, "test.parquet")
    subprocess.run(
        """cat test.parquet | clickhouse local \
            --input-format "Parquet" \
            --structure "a String" \
            --query "select * from table"\
        """,
        shell=True,
        check=True,
    )

```
gives
```
00000
Code: 50. DB::Exception: Unsupported Parquet type 'large_utf8' of an input column 'a'.: While executing ParquetBlockInputFormat: While executing File. (UNKNOWN_TYPE)
```



}
                auto arrow_dict_column = std::make_shared<arrow::ChunkedArray>(dict_array);
                auto dict_column = readColumnFromArrowColumn(arrow_dict_column, column_name, format_name, false, dictionary_values, read_ints_as_dates, allow_null_type, skip_columns_with_unsupported_types, skipped);
                dict_values = std::make_shared<ColumnWithTypeAndName>(std::move(dict_column));
            }
            arrow::ArrayVector indexes_array;
            for (size_t chunk_i = 0, num_chunks = static_cast<size_t>(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i)
            {
                arrow::DictionaryArray & dict_chunk = dynamic_cast<arrow::DictionaryArray &>(*(arrow_column->chunk(chunk_i)));
                indexes_array.emplace_back(dict_chunk.indices());
            }
            auto arrow_indexes_column = std::make_shared<arrow::ChunkedArray>(indexes_array);
            auto indexes_column = readColumnWithIndexesData(arrow_indexes_column);
            const auto contains_null = arrow_column->null_count() > 0;
            if (contains_null)
            {
                auto nullmap_column = readByteMapFromArrowColumn(arrow_column);
                return createLCOfNullableColumnFromArrowDictionaryValues(dict_values, indexes_column, nullmap_column, column_name);
            }
            else
            {
                return createLCColumnFromArrowDictionaryValues(dict_values, indexes_column, column_name);
            }
        }
#    define DISPATCH(ARROW_NUMERIC_TYPE, CPP_NUMERIC_TYPE) \
        case ARROW_NUMERIC_TYPE: \
            return readColumnWithNumericData<CPP_NUMERIC_TYPE>(arrow_column, column_name);
        FOR_ARROW_NUMERIC_TYPES(DISPATCH)
#    undef DISPATCH