From e4c5d7e3b12eceeca90419202e4e9b7e31733c19 Mon Sep 17 00:00:00 2001 From: Pavel Kruglov Date: Thu, 1 Jul 2021 20:59:28 +0300 Subject: [PATCH] Support inserting nested as Array of structs, add some refactoring --- src/Columns/ColumnLowCardinality.h | 1 + src/Core/Settings.h | 3 + src/DataTypes/NestedUtils.cpp | 12 + src/DataTypes/NestedUtils.h | 3 + src/Formats/FormatFactory.cpp | 3 + src/Formats/FormatSettings.h | 7 + .../Formats/Impl/ArrowBlockInputFormat.cpp | 14 +- .../Formats/Impl/ArrowBlockInputFormat.h | 5 +- .../Formats/Impl/ArrowColumnToCHColumn.cpp | 1009 +++++++---------- .../Formats/Impl/ArrowColumnToCHColumn.h | 12 +- .../Formats/Impl/CHColumnToArrowColumn.cpp | 1 + .../Formats/Impl/ORCBlockInputFormat.cpp | 17 +- .../Formats/Impl/ORCBlockInputFormat.h | 5 +- .../Formats/Impl/ParquetBlockInputFormat.cpp | 18 +- .../Formats/Impl/ParquetBlockInputFormat.h | 4 +- .../00900_orc_arrow_parquet_nested.reference | 21 + .../00900_orc_arrow_parquet_nested.sh | 36 + .../01273_arrow_dictionaries_load.reference | 3 + .../01273_arrow_dictionaries_load.sh | 2 + .../nested_nested_arrow.cpp | 178 +++ .../nested_nested_table.arrow | Bin 0 -> 2410 bytes .../nested_nested_table.orc | Bin 0 -> 1050 bytes .../nested_nested_table.parquet | Bin 0 -> 2287 bytes .../nested_table.arrow | Bin 0 -> 1218 bytes .../nested_table.orc | Bin 0 -> 620 bytes .../nested_table.parquet | Bin 0 -> 1105 bytes tests/queries/0_stateless/dicts.arrow | Bin 0 -> 20030554 bytes tests/queries/0_stateless/maps | 0 28 files changed, 759 insertions(+), 595 deletions(-) create mode 100644 tests/queries/0_stateless/00900_orc_arrow_parquet_nested.reference create mode 100755 tests/queries/0_stateless/00900_orc_arrow_parquet_nested.sh create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_arrow.cpp create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.arrow create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.orc create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.parquet create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_table.arrow create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_table.orc create mode 100644 tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_table.parquet create mode 100644 tests/queries/0_stateless/dicts.arrow create mode 100644 tests/queries/0_stateless/maps diff --git a/src/Columns/ColumnLowCardinality.h b/src/Columns/ColumnLowCardinality.h index 698f65b1281..03ef388b257 100644 --- a/src/Columns/ColumnLowCardinality.h +++ b/src/Columns/ColumnLowCardinality.h @@ -193,6 +193,7 @@ public: const IColumnUnique & getDictionary() const { return dictionary.getColumnUnique(); } IColumnUnique & getDictionary() { return dictionary.getColumnUnique(); } const ColumnPtr & getDictionaryPtr() const { return dictionary.getColumnUniquePtr(); } + ColumnPtr & getDictionaryPtr() { return dictionary.getColumnUniquePtr(); } /// IColumnUnique & getUnique() { return static_cast(*column_unique); } /// ColumnPtr getUniquePtr() const { return column_unique; } diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 64c4c5621b2..3000dc4f195 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -522,6 +522,9 @@ class IColumn; M(Bool, input_format_tsv_empty_as_default, false, "Treat empty fields in TSV input as default values.", 0) \ M(Bool, input_format_tsv_enum_as_number, false, "Treat inserted enum values in TSV formats as enum indices \\N", 0) \ M(Bool, input_format_null_as_default, true, "For text input formats initialize null fields with default values if data type of this field is not nullable", 0) \ + M(Bool, input_format_arrow_import_nested, false, "Allow to insert array of structs into Nested table in Arrow input format.", 0) \ + M(Bool, input_format_orc_import_nested, false, "Allow to insert array of structs into Nested table in ORC input format.", 0) \ + M(Bool, input_format_parquet_import_nested, false, "Allow to insert array of structs into Nested table in Parquet input format.", 0) \ \ M(DateTimeInputFormat, date_time_input_format, FormatSettings::DateTimeInputFormat::Basic, "Method to read DateTime from text input formats. Possible values: 'basic' and 'best_effort'.", 0) \ M(DateTimeOutputFormat, date_time_output_format, FormatSettings::DateTimeOutputFormat::Simple, "Method to write DateTime to text output. Possible values: 'simple', 'iso', 'unix_timestamp'.", 0) \ diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index ed9ea3e1b5c..94b3b2f3cf7 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -208,6 +208,18 @@ void validateArraySizes(const Block & block) } } +std::unordered_set getAllTableNames(const Block & block) +{ + std::unordered_set nested_table_names; + for (auto & name : block.getNames()) + { + auto nested_table_name = Nested::extractTableName(name); + if (!nested_table_name.empty()) + nested_table_names.insert(nested_table_name); + } + return nested_table_names; +} + } } diff --git a/src/DataTypes/NestedUtils.h b/src/DataTypes/NestedUtils.h index b8428b96d3e..d16e309fc81 100644 --- a/src/DataTypes/NestedUtils.h +++ b/src/DataTypes/NestedUtils.h @@ -28,6 +28,9 @@ namespace Nested /// Check that sizes of arrays - elements of nested data structures - are equal. void validateArraySizes(const Block & block); + + /// Get all nested tables names from a block. + std::unordered_set getAllTableNames(const Block & block); } } diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index d2d6d92dea3..c58a6795832 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -88,6 +88,7 @@ FormatSettings getFormatSettings(ContextPtr context, const Settings & settings) format_settings.json.quote_denormals = settings.output_format_json_quote_denormals; format_settings.null_as_default = settings.input_format_null_as_default; format_settings.parquet.row_group_size = settings.output_format_parquet_row_group_size; + format_settings.parquet.import_nested = settings.input_format_parquet_import_nested; format_settings.pretty.charset = settings.output_format_pretty_grid_charset.toString() == "ASCII" ? FormatSettings::Pretty::Charset::ASCII : FormatSettings::Pretty::Charset::UTF8; format_settings.pretty.color = settings.output_format_pretty_color; format_settings.pretty.max_column_pad_width = settings.output_format_pretty_max_column_pad_width; @@ -114,6 +115,8 @@ FormatSettings getFormatSettings(ContextPtr context, const Settings & settings) format_settings.with_names_use_header = settings.input_format_with_names_use_header; format_settings.write_statistics = settings.output_format_write_statistics; format_settings.arrow.low_cardinality_as_dictionary = settings.output_format_arrow_low_cardinality_as_dictionary; + format_settings.arrow.import_nested = settings.input_format_arrow_import_nested; + format_settings.orc.import_nested = settings.input_format_orc_import_nested; /// Validate avro_schema_registry_url with RemoteHostFilter when non-empty and in Server context if (format_settings.schema.is_server) diff --git a/src/Formats/FormatSettings.h b/src/Formats/FormatSettings.h index 69df095bca8..d77a7c95d69 100644 --- a/src/Formats/FormatSettings.h +++ b/src/Formats/FormatSettings.h @@ -53,6 +53,7 @@ struct FormatSettings { UInt64 row_group_size = 1000000; bool low_cardinality_as_dictionary = false; + bool import_nested = false; } arrow; struct @@ -100,6 +101,7 @@ struct FormatSettings struct { UInt64 row_group_size = 1000000; + bool import_nested = false; } parquet; struct Pretty @@ -174,6 +176,11 @@ struct FormatSettings bool deduce_templates_of_expressions = true; bool accurate_types_of_literals = true; } values; + + struct + { + bool import_nested = false; + } orc; }; } diff --git a/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp b/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp index 269faac5258..84ca789261f 100644 --- a/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp +++ b/src/Processors/Formats/Impl/ArrowBlockInputFormat.cpp @@ -22,8 +22,8 @@ namespace ErrorCodes extern const int CANNOT_READ_ALL_DATA; } -ArrowBlockInputFormat::ArrowBlockInputFormat(ReadBuffer & in_, const Block & header_, bool stream_) - : IInputFormat(header_, in_), stream{stream_} +ArrowBlockInputFormat::ArrowBlockInputFormat(ReadBuffer & in_, const Block & header_, bool stream_, const FormatSettings & format_settings_) + : IInputFormat(header_, in_), stream{stream_}, format_settings(format_settings_) { } @@ -102,7 +102,7 @@ void ArrowBlockInputFormat::prepareReader() schema = file_reader->schema(); } - arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), std::move(schema), "Arrow"); + arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), "Arrow", format_settings.arrow.import_nested); if (stream) record_batch_total = -1; @@ -119,9 +119,9 @@ void registerInputFormatProcessorArrow(FormatFactory & factory) [](ReadBuffer & buf, const Block & sample, const RowInputFormatParams & /* params */, - const FormatSettings & /* format_settings */) + const FormatSettings & format_settings) { - return std::make_shared(buf, sample, false); + return std::make_shared(buf, sample, false, format_settings); }); factory.markFormatAsColumnOriented("Arrow"); factory.registerInputFormatProcessor( @@ -129,9 +129,9 @@ void registerInputFormatProcessorArrow(FormatFactory & factory) [](ReadBuffer & buf, const Block & sample, const RowInputFormatParams & /* params */, - const FormatSettings & /* format_settings */) + const FormatSettings & format_settings) { - return std::make_shared(buf, sample, true); + return std::make_shared(buf, sample, true, format_settings); }); } diff --git a/src/Processors/Formats/Impl/ArrowBlockInputFormat.h b/src/Processors/Formats/Impl/ArrowBlockInputFormat.h index 9f458dece7f..705c47c9b17 100644 --- a/src/Processors/Formats/Impl/ArrowBlockInputFormat.h +++ b/src/Processors/Formats/Impl/ArrowBlockInputFormat.h @@ -6,6 +6,7 @@ #if USE_ARROW #include +#include namespace arrow { class RecordBatchReader; } namespace arrow::ipc { class RecordBatchFileReader; } @@ -19,7 +20,7 @@ class ArrowColumnToCHColumn; class ArrowBlockInputFormat : public IInputFormat { public: - ArrowBlockInputFormat(ReadBuffer & in_, const Block & header_, bool stream_); + ArrowBlockInputFormat(ReadBuffer & in_, const Block & header_, bool stream_, const FormatSettings & format_settings_); void resetParser() override; @@ -41,6 +42,8 @@ private: int record_batch_total = 0; int record_batch_current = 0; + const FormatSettings format_settings; + void prepareReader(); }; diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index 84c56f0f2b7..93b49f332fc 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -1,7 +1,7 @@ +#include "config_formats.h" #include "ArrowColumnToCHColumn.h" #if USE_ARROW || USE_ORC || USE_PARQUET - #include #include #include @@ -11,10 +11,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include @@ -22,664 +22,533 @@ #include #include #include +#include #include #include +#include +#include #include -#define FOR_ARROW_NUMERIC_TYPES(M) \ - M(arrow::Type::UINT8, DB::UInt8) \ - M(arrow::Type::INT8, DB::Int8) \ - M(arrow::Type::UINT16, DB::UInt16) \ - M(arrow::Type::INT16, DB::Int16) \ - M(arrow::Type::UINT32, DB::UInt32) \ - M(arrow::Type::INT32, DB::Int32) \ - M(arrow::Type::UINT64, DB::UInt64) \ - M(arrow::Type::INT64, DB::Int64) \ - M(arrow::Type::HALF_FLOAT, DB::Float32) \ - M(arrow::Type::FLOAT, DB::Float32) \ - M(arrow::Type::DOUBLE, DB::Float64) - -#define FOR_ARROW_INDEXES_TYPES(M) \ - M(arrow::Type::UINT8, DB::UInt8) \ - M(arrow::Type::INT8, DB::UInt8) \ - M(arrow::Type::UINT16, DB::UInt16) \ - M(arrow::Type::INT16, DB::UInt16) \ - M(arrow::Type::UINT32, DB::UInt32) \ - M(arrow::Type::INT32, DB::UInt32) \ - M(arrow::Type::UINT64, DB::UInt64) \ - M(arrow::Type::INT64, DB::UInt64) - - namespace DB { - -namespace ErrorCodes -{ - extern const int UNKNOWN_TYPE; - extern const int VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE; - extern const int CANNOT_CONVERT_TYPE; - extern const int CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN; - extern const int THERE_IS_NO_COLUMN; - extern const int BAD_ARGUMENTS; -} - -static const std::initializer_list> arrow_type_to_internal_type = -{ - {arrow::Type::UINT8, "UInt8"}, - {arrow::Type::INT8, "Int8"}, - {arrow::Type::UINT16, "UInt16"}, - {arrow::Type::INT16, "Int16"}, - {arrow::Type::UINT32, "UInt32"}, - {arrow::Type::INT32, "Int32"}, - {arrow::Type::UINT64, "UInt64"}, - {arrow::Type::INT64, "Int64"}, - {arrow::Type::HALF_FLOAT, "Float32"}, - {arrow::Type::FLOAT, "Float32"}, - {arrow::Type::DOUBLE, "Float64"}, - - {arrow::Type::BOOL, "UInt8"}, - {arrow::Type::DATE32, "Date"}, - {arrow::Type::DATE32, "Date32"}, - {arrow::Type::DATE64, "DateTime"}, - {arrow::Type::TIMESTAMP, "DateTime"}, - - {arrow::Type::STRING, "String"}, - {arrow::Type::BINARY, "String"}, - - // TODO: add other types that are convertible to internal ones: - // 0. ENUM? - // 1. UUID -> String - // 2. JSON -> String - // Full list of types: contrib/arrow/cpp/src/arrow/type.h -}; - -/// Inserts numeric data right into internal column data to reduce an overhead -template > -static void fillColumnWithNumericData(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - auto & column_data = static_cast(internal_column).getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + namespace ErrorCodes { - std::shared_ptr chunk = arrow_column->chunk(chunk_i); - /// buffers[0] is a null bitmap and buffers[1] are actual values - std::shared_ptr buffer = chunk->data()->buffers[1]; - - const auto * raw_data = reinterpret_cast(buffer->data()); - column_data.insert_assume_reserved(raw_data, raw_data + chunk->length()); + extern const int UNKNOWN_TYPE; + extern const int VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE; + extern const int CANNOT_CONVERT_TYPE; + extern const int CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN; + extern const int THERE_IS_NO_COLUMN; + extern const int BAD_ARGUMENTS; + extern const int UNKNOWN_EXCEPTION; } -} -/// Inserts chars and offsets right into internal column data to reduce an overhead. -/// Internal offsets are shifted by one to the right in comparison with Arrow ones. So the last offset should map to the end of all chars. -/// Also internal strings are null terminated. -static void fillColumnWithStringData(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - PaddedPODArray & column_chars_t = assert_cast(internal_column).getChars(); - PaddedPODArray & column_offsets = assert_cast(internal_column).getOffsets(); - - size_t chars_t_size = 0; - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + static void checkStatus(const arrow::Status & status, const String & column_name, const String & format_name) { - arrow::BinaryArray & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - const size_t chunk_length = chunk.length(); + if (!status.ok()) + throw Exception{fmt::format("Error with a {} column \"{}\": {}.", format_name, column_name, status.ToString()), ErrorCodes::UNKNOWN_EXCEPTION}; + } - if (chunk_length > 0) + /// Inserts numeric data right into internal column data to reduce an overhead + template > + static ColumnWithTypeAndName readColumnWithNumericData(std::shared_ptr & arrow_column, const String & column_name) + { + auto internal_type = std::make_shared>(); + auto internal_column = internal_type->createColumn(); + auto & column_data = static_cast(*internal_column).getData(); + column_data.reserve(arrow_column->length()); + + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - chars_t_size += chunk.value_offset(chunk_length - 1) + chunk.value_length(chunk_length - 1); - chars_t_size += chunk_length; /// additional space for null bytes + std::shared_ptr chunk = arrow_column->chunk(chunk_i); + /// buffers[0] is a null bitmap and buffers[1] are actual values + std::shared_ptr buffer = chunk->data()->buffers[1]; + + const auto * raw_data = reinterpret_cast(buffer->data()); + column_data.insert_assume_reserved(raw_data, raw_data + chunk->length()); } + return {std::move(internal_column), std::move(internal_type), column_name}; } - column_chars_t.reserve(chars_t_size); - column_offsets.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + /// Inserts chars and offsets right into internal column data to reduce an overhead. + /// Internal offsets are shifted by one to the right in comparison with Arrow ones. So the last offset should map to the end of all chars. + /// Also internal strings are null terminated. + static ColumnWithTypeAndName readColumnWithStringData(std::shared_ptr & arrow_column, const String & column_name) { - arrow::BinaryArray & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - std::shared_ptr buffer = chunk.value_data(); - const size_t chunk_length = chunk.length(); + auto internal_type = std::make_shared(); + auto internal_column = internal_type->createColumn(); + PaddedPODArray & column_chars_t = assert_cast(*internal_column).getChars(); + PaddedPODArray & column_offsets = assert_cast(*internal_column).getOffsets(); - for (size_t offset_i = 0; offset_i != chunk_length; ++offset_i) + size_t chars_t_size = 0; + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - if (!chunk.IsNull(offset_i) && buffer) + arrow::BinaryArray & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + const size_t chunk_length = chunk.length(); + + if (chunk_length > 0) { - const auto * raw_data = buffer->data() + chunk.value_offset(offset_i); - column_chars_t.insert_assume_reserved(raw_data, raw_data + chunk.value_length(offset_i)); + chars_t_size += chunk.value_offset(chunk_length - 1) + chunk.value_length(chunk_length - 1); + chars_t_size += chunk_length; /// additional space for null bytes } - column_chars_t.emplace_back('\0'); - - column_offsets.emplace_back(column_chars_t.size()); } - } -} -static void fillColumnWithBooleanData(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - auto & column_data = assert_cast &>(internal_column).getData(); - column_data.reserve(arrow_column->length()); + column_chars_t.reserve(chars_t_size); + column_offsets.reserve(arrow_column->length()); - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) - { - arrow::BooleanArray & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - /// buffers[0] is a null bitmap and buffers[1] are actual values - std::shared_ptr buffer = chunk.data()->buffers[1]; - - for (size_t bool_i = 0; bool_i != static_cast(chunk.length()); ++bool_i) - column_data.emplace_back(chunk.Value(bool_i)); - } -} - -/// Arrow stores Parquet::DATE in Int32, while ClickHouse stores Date in UInt16. Therefore, it should be checked before saving -static void fillColumnWithDate32Data(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - PaddedPODArray & column_data = assert_cast &>(internal_column).getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) - { - arrow::Date32Array & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - - for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - UInt32 days_num = static_cast(chunk.Value(value_i)); + arrow::BinaryArray & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + std::shared_ptr buffer = chunk.value_data(); + const size_t chunk_length = chunk.length(); - if (days_num > DATE_LUT_MAX_DAY_NUM) - throw Exception(ErrorCodes::VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE, - "Input value {} of a column '{}' is greater than max allowed Date value, which is {}", - days_num, internal_column.getName(), DATE_LUT_MAX_DAY_NUM); + for (size_t offset_i = 0; offset_i != chunk_length; ++offset_i) + { + if (!chunk.IsNull(offset_i) && buffer) + { + const auto * raw_data = buffer->data() + chunk.value_offset(offset_i); + column_chars_t.insert_assume_reserved(raw_data, raw_data + chunk.value_length(offset_i)); + } + column_chars_t.emplace_back('\0'); - column_data.emplace_back(days_num); + column_offsets.emplace_back(column_chars_t.size()); + } } + return {std::move(internal_column), std::move(internal_type), column_name}; } -} -static void fillDate32ColumnWithDate32Data(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - PaddedPODArray & column_data = assert_cast &>(internal_column).getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + static ColumnWithTypeAndName readColumnWithBooleanData(std::shared_ptr & arrow_column, const String & column_name) { - arrow::Date32Array & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); + auto internal_type = std::make_shared(); + auto internal_column = internal_type->createColumn(); + auto & column_data = assert_cast &>(*internal_column).getData(); + column_data.reserve(arrow_column->length()); - for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - Int32 days_num = static_cast(chunk.Value(value_i)); - if (days_num > DATE_LUT_MAX_EXTEND_DAY_NUM) - throw Exception(ErrorCodes::VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE, - "Input value {} of a column '{}' is greater than max allowed Date value, which is {}", days_num, internal_column.getName(), DATE_LUT_MAX_DAY_NUM); + arrow::BooleanArray & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + /// buffers[0] is a null bitmap and buffers[1] are actual values + std::shared_ptr buffer = chunk.data()->buffers[1]; - column_data.emplace_back(days_num); + for (size_t bool_i = 0; bool_i != static_cast(chunk.length()); ++bool_i) + column_data.emplace_back(chunk.Value(bool_i)); } + return {std::move(internal_column), std::move(internal_type), column_name}; } -} -/// Arrow stores Parquet::DATETIME in Int64, while ClickHouse stores DateTime in UInt32. Therefore, it should be checked before saving -static void fillColumnWithDate64Data(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - auto & column_data = assert_cast &>(internal_column).getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + static ColumnWithTypeAndName readColumnWithDate32Data(std::shared_ptr & arrow_column, const String & column_name) { - auto & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + auto internal_type = std::make_shared(); + auto internal_column = internal_type->createColumn(); + PaddedPODArray & column_data = assert_cast &>(*internal_column).getData(); + column_data.reserve(arrow_column->length()); + + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - auto timestamp = static_cast(chunk.Value(value_i) / 1000); // Always? in ms - column_data.emplace_back(timestamp); + arrow::Date32Array & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + + for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + { + Int32 days_num = static_cast(chunk.Value(value_i)); + if (days_num > DATE_LUT_MAX_EXTEND_DAY_NUM) + { + // TODO: will it rollback correctly? + throw Exception + { + fmt::format("Input value {} of a column \"{}\" is greater than max allowed Date value, which is {}", days_num, column_name, DATE_LUT_MAX_DAY_NUM), + ErrorCodes::VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE + }; + } + + column_data.emplace_back(days_num); + } } + return {std::move(internal_column), std::move(internal_type), column_name}; } -} -static void fillColumnWithTimestampData(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - auto & column_data = assert_cast &>(internal_column).getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + /// Arrow stores Parquet::DATETIME in Int64, while ClickHouse stores DateTime in UInt32. Therefore, it should be checked before saving + static ColumnWithTypeAndName readColumnWithDate64Data(std::shared_ptr & arrow_column, const String & column_name) { - auto & chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - const auto & type = static_cast(*chunk.type()); + auto internal_type = std::make_shared(); + auto internal_column = internal_type->createColumn(); + auto & column_data = assert_cast &>(*internal_column).getData(); + column_data.reserve(arrow_column->length()); - UInt32 divide = 1; - const auto unit = type.unit(); - switch (unit) + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - case arrow::TimeUnit::SECOND: - divide = 1; - break; - case arrow::TimeUnit::MILLI: - divide = 1000; - break; - case arrow::TimeUnit::MICRO: - divide = 1000000; - break; - case arrow::TimeUnit::NANO: - divide = 1000000000; - break; + auto & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + { + auto timestamp = static_cast(chunk.Value(value_i) / 1000); // Always? in ms + column_data.emplace_back(timestamp); + } } + return {std::move(internal_column), std::move(internal_type), column_name}; + } - for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + static ColumnWithTypeAndName readColumnWithTimestampData(std::shared_ptr & arrow_column, const String & column_name) + { + auto internal_type = std::make_shared(); + auto internal_column = internal_type->createColumn(); + auto & column_data = assert_cast &>(*internal_column).getData(); + column_data.reserve(arrow_column->length()); + + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - auto timestamp = static_cast(chunk.Value(value_i) / divide); // ms! TODO: check other 's' 'ns' ... - column_data.emplace_back(timestamp); + auto & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + const auto & type = static_cast(*chunk.type()); + + UInt32 divide = 1; + const auto unit = type.unit(); + switch (unit) + { + case arrow::TimeUnit::SECOND: + divide = 1; + break; + case arrow::TimeUnit::MILLI: + divide = 1000; + break; + case arrow::TimeUnit::MICRO: + divide = 1000000; + break; + case arrow::TimeUnit::NANO: + divide = 1000000000; + break; + } + + for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + { + auto timestamp = static_cast(chunk.Value(value_i) / divide); // ms! TODO: check other 's' 'ns' ... + column_data.emplace_back(timestamp); + } } + return {std::move(internal_column), std::move(internal_type), column_name}; } -} -template -static void fillColumnWithDecimalData(std::shared_ptr & arrow_column, IColumn & internal_column) -{ - auto & column = assert_cast &>(internal_column); - auto & column_data = column.getData(); - column_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + template + static ColumnWithTypeAndName readColumnWithDecimalData(std::shared_ptr & arrow_column, const String & column_name) { - auto & chunk = static_cast(*(arrow_column->chunk(chunk_i))); - for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + const auto * arrow_decimal_type = static_cast(arrow_column->type().get()); + auto internal_type = std::make_shared>(arrow_decimal_type->precision(), arrow_decimal_type->scale()); + auto internal_column = internal_type->createColumn(); + auto & column = assert_cast &>(*internal_column); + auto & column_data = column.getData(); + column_data.reserve(arrow_column->length()); + + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - column_data.emplace_back(chunk.IsNull(value_i) ? DecimalType(0) : *reinterpret_cast(chunk.Value(value_i))); // TODO: copy column + auto & chunk = static_cast(*(arrow_column->chunk(chunk_i))); + for (size_t value_i = 0, length = static_cast(chunk.length()); value_i < length; ++value_i) + { + column_data.emplace_back(chunk.IsNull(value_i) ? DecimalType(0) : *reinterpret_cast(chunk.Value(value_i))); // TODO: copy column + } } + return {std::move(internal_column), std::move(internal_type), column_name}; } -} -/// Creates a null bytemap from arrow's null bitmap -static void fillByteMapFromArrowColumn(std::shared_ptr & arrow_column, IColumn & bytemap) -{ - PaddedPODArray & bytemap_data = assert_cast &>(bytemap).getData(); - bytemap_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0; chunk_i != static_cast(arrow_column->num_chunks()); ++chunk_i) + /// Creates a null bytemap from arrow's null bitmap + static ColumnPtr readByteMapFromArrowColumn(std::shared_ptr & arrow_column) { - std::shared_ptr chunk = arrow_column->chunk(chunk_i); + auto nullmap_column = ColumnUInt8::create(); + PaddedPODArray & bytemap_data = assert_cast &>(*nullmap_column).getData(); + bytemap_data.reserve(arrow_column->length()); - for (size_t value_i = 0; value_i != static_cast(chunk->length()); ++value_i) - bytemap_data.emplace_back(chunk->IsNull(value_i)); + for (size_t chunk_i = 0; chunk_i != static_cast(arrow_column->num_chunks()); ++chunk_i) + { + std::shared_ptr chunk = arrow_column->chunk(chunk_i); + + for (size_t value_i = 0; value_i != static_cast(chunk->length()); ++value_i) + bytemap_data.emplace_back(chunk->IsNull(value_i)); + } + return nullmap_column; } -} -static void fillOffsetsFromArrowListColumn(std::shared_ptr & arrow_column, IColumn & offsets) -{ - ColumnArray::Offsets & offsets_data = assert_cast &>(offsets).getData(); - offsets_data.reserve(arrow_column->length()); - - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + static ColumnPtr readOffsetsFromArrowListColumn(std::shared_ptr & arrow_column) { - arrow::ListArray & list_chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - auto arrow_offsets_array = list_chunk.offsets(); - auto & arrow_offsets = dynamic_cast(*arrow_offsets_array); - auto start = offsets_data.back(); - for (int64_t i = 1; i < arrow_offsets.length(); ++i) - offsets_data.emplace_back(start + arrow_offsets.Value(i)); + auto offsets_column = ColumnUInt64::create(); + ColumnArray::Offsets & offsets_data = assert_cast &>(*offsets_column).getData(); + offsets_data.reserve(arrow_column->length()); + + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + { + arrow::ListArray & list_chunk = static_cast(*(arrow_column->chunk(chunk_i))); + auto arrow_offsets_array = list_chunk.offsets(); + auto & arrow_offsets = static_cast(*arrow_offsets_array); + auto start = offsets_data.back(); + for (int64_t i = 1; i < arrow_offsets.length(); ++i) + offsets_data.emplace_back(start + arrow_offsets.Value(i)); + } + return offsets_column; } -} -static ColumnPtr createAndFillColumnWithIndexesData(std::shared_ptr & arrow_column) -{ - switch (arrow_column->type()->id()) + + static ColumnPtr readColumnWithIndexesData(std::shared_ptr & arrow_column) { + switch (arrow_column->type()->id()) + { # define DISPATCH(ARROW_NUMERIC_TYPE, CPP_NUMERIC_TYPE) \ - case ARROW_NUMERIC_TYPE: \ - { \ - auto column = DataTypeNumber().createColumn(); \ - fillColumnWithNumericData(arrow_column, *column); \ - return column; \ - } - FOR_ARROW_INDEXES_TYPES(DISPATCH) + case ARROW_NUMERIC_TYPE: \ + { \ + return readColumnWithNumericData(arrow_column, "").column; \ + } + FOR_ARROW_INDEXES_TYPES(DISPATCH) # undef DISPATCH - default: - throw Exception(ErrorCodes::BAD_ARGUMENTS, "Unsupported type for indexes in LowCardinality: {}.", arrow_column->type()->name()); - } -} - -static void readColumnFromArrowColumn( - std::shared_ptr & arrow_column, - IColumn & internal_column, - const std::string & column_name, - const std::string & format_name, - bool is_nullable, - std::unordered_map dictionary_values) -{ - if (internal_column.isNullable()) - { - ColumnNullable & column_nullable = assert_cast(internal_column); - readColumnFromArrowColumn( - arrow_column, column_nullable.getNestedColumn(), column_name, format_name, true, dictionary_values); - fillByteMapFromArrowColumn(arrow_column, column_nullable.getNullMapColumn()); - return; + default: + throw Exception(fmt::format("Unsupported type for indexes in LowCardinality: {}.", arrow_column->type()->name()), ErrorCodes::BAD_ARGUMENTS); + } } - /// TODO: check if a column is const? - if (!is_nullable && arrow_column->null_count() && arrow_column->type()->id() != arrow::Type::LIST - && arrow_column->type()->id() != arrow::Type::MAP && arrow_column->type()->id() != arrow::Type::STRUCT) + static std::shared_ptr getNestedArrowColumn(std::shared_ptr & arrow_column) { - throw Exception - { - ErrorCodes::CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN, - "Can not insert NULL data into non-nullable column \"{}\".", column_name - }; + arrow::ArrayVector array_vector; + array_vector.reserve(arrow_column->num_chunks()); + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + { + arrow::ListArray & list_chunk = static_cast(*(arrow_column->chunk(chunk_i))); + std::shared_ptr chunk = list_chunk.values(); + array_vector.emplace_back(std::move(chunk)); + } + return std::make_shared(array_vector); } - switch (arrow_column->type()->id()) + static ColumnWithTypeAndName readColumnFromArrowColumn( + std::shared_ptr & arrow_column, + const std::string & column_name, + const std::string & format_name, + bool is_nullable, + std::unordered_map> & dictionary_values) { - case arrow::Type::STRING: - case arrow::Type::BINARY: - //case arrow::Type::FIXED_SIZE_BINARY: - fillColumnWithStringData(arrow_column, internal_column); - break; - case arrow::Type::BOOL: - fillColumnWithBooleanData(arrow_column, internal_column); - break; - case arrow::Type::DATE32: - if (WhichDataType(internal_column.getDataType()).isUInt16()) - { - fillColumnWithDate32Data(arrow_column, internal_column); - } - else - { - fillDate32ColumnWithDate32Data(arrow_column, internal_column); - } - break; - case arrow::Type::DATE64: - fillColumnWithDate64Data(arrow_column, internal_column); - break; - case arrow::Type::TIMESTAMP: - fillColumnWithTimestampData(arrow_column, internal_column); - break; + if (!is_nullable && arrow_column->null_count() && arrow_column->type()->id() != arrow::Type::LIST + && arrow_column->type()->id() != arrow::Type::MAP && arrow_column->type()->id() != arrow::Type::STRUCT) + { + auto nested_column = readColumnFromArrowColumn(arrow_column, column_name, format_name, true, dictionary_values); + auto nullmap_column = readByteMapFromArrowColumn(arrow_column); + auto nullable_type = std::make_shared(std::move(nested_column.type)); + auto nullable_column = ColumnNullable::create(std::move(nested_column.column), std::move(nullmap_column)); + return {std::move(nullable_column), std::move(nullable_type), column_name}; + } + + switch (arrow_column->type()->id()) + { + case arrow::Type::STRING: + case arrow::Type::BINARY: + //case arrow::Type::FIXED_SIZE_BINARY: + return readColumnWithStringData(arrow_column, column_name); + case arrow::Type::BOOL: + return readColumnWithBooleanData(arrow_column, column_name); + case arrow::Type::DATE32: + return readColumnWithDate32Data(arrow_column, column_name); + case arrow::Type::DATE64: + return readColumnWithDate64Data(arrow_column, column_name); + case arrow::Type::TIMESTAMP: + return readColumnWithTimestampData(arrow_column, column_name); #if defined(ARCADIA_BUILD) - case arrow::Type::DECIMAL: - fillColumnWithDecimalData(arrow_column, internal_column /*, internal_nested_type*/); - break; + case arrow::Type::DECIMAL: + return readColumnWithDecimalData(arrow_column, column_name); #else - case arrow::Type::DECIMAL128: - fillColumnWithDecimalData(arrow_column, internal_column /*, internal_nested_type*/); - break; - case arrow::Type::DECIMAL256: - fillColumnWithDecimalData(arrow_column, internal_column /*, internal_nested_type*/); - break; -#endif - case arrow::Type::MAP: [[fallthrough]]; - case arrow::Type::LIST: - { - arrow::ArrayVector array_vector; - array_vector.reserve(arrow_column->num_chunks()); - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + case arrow::Type::DECIMAL128: + return readColumnWithDecimalData(arrow_column, column_name); + case arrow::Type::DECIMAL256: + return readColumnWithDecimalData(arrow_column, column_name); +#endif + case arrow::Type::MAP: { - arrow::ListArray & list_chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - std::shared_ptr chunk = list_chunk.values(); - array_vector.emplace_back(std::move(chunk)); + auto arrow_nested_column = getNestedArrowColumn(arrow_column); + auto nested_column = readColumnFromArrowColumn(arrow_nested_column, column_name, format_name, false, dictionary_values); + auto offsets_column = readOffsetsFromArrowListColumn(arrow_column); + + const auto * tuple_column = assert_cast(nested_column.column.get()); + const auto * tuple_type = assert_cast(nested_column.type.get()); + auto map_column = ColumnMap::create(std::move(tuple_column->getColumnPtr(0)), std::move(tuple_column->getColumnPtr(1)), std::move(offsets_column)); + auto map_type = std::make_shared(tuple_type->getElements()[0], tuple_type->getElements()[1]); + return {std::move(map_column), std::move(map_type), column_name}; } - auto arrow_nested_column = std::make_shared(array_vector); - - ColumnArray & column_array = arrow_column->type()->id() == arrow::Type::MAP - ? assert_cast(internal_column).getNestedColumn() - : assert_cast(internal_column); - - readColumnFromArrowColumn( - arrow_nested_column, column_array.getData(), column_name, format_name, false, dictionary_values); - - fillOffsetsFromArrowListColumn(arrow_column, column_array.getOffsetsColumn()); - break; - } - case arrow::Type::STRUCT: - { - ColumnTuple & column_tuple = assert_cast(internal_column); - int fields_count = column_tuple.tupleSize(); - std::vector nested_arrow_columns(fields_count); - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + case arrow::Type::LIST: { - arrow::StructArray & struct_chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - for (int i = 0; i < fields_count; ++i) - nested_arrow_columns[i].emplace_back(struct_chunk.field(i)); + auto arrow_nested_column = getNestedArrowColumn(arrow_column); + auto nested_column = readColumnFromArrowColumn(arrow_nested_column, column_name, format_name, false, dictionary_values); + auto offsets_column = readOffsetsFromArrowListColumn(arrow_column); + auto array_column = ColumnArray::create(std::move(nested_column.column), std::move(offsets_column)); + auto array_type = std::make_shared(nested_column.type); + return {std::move(array_column), std::move(array_type), column_name}; } - - for (int i = 0; i != fields_count; ++i) + case arrow::Type::STRUCT: { - auto nested_arrow_column = std::make_shared(nested_arrow_columns[i]); - readColumnFromArrowColumn( - nested_arrow_column, column_tuple.getColumn(i), column_name, format_name, false, dictionary_values); - } - break; - } - case arrow::Type::DICTIONARY: - { - ColumnLowCardinality & column_lc = assert_cast(internal_column); - auto & dict_values = dictionary_values[column_name]; - - /// Load dictionary values only once and reuse it. - if (!dict_values) - { - arrow::ArrayVector dict_array; + auto arrow_type = arrow_column->type(); + auto arrow_struct_type = assert_cast(arrow_type.get()); + std::vector nested_arrow_columns(arrow_struct_type->num_fields()); for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) { - arrow::DictionaryArray & dict_chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - dict_array.emplace_back(dict_chunk.dictionary()); + arrow::StructArray & struct_chunk = static_cast(*(arrow_column->chunk(chunk_i))); + for (int i = 0; i < arrow_struct_type->num_fields(); ++i) + nested_arrow_columns[i].emplace_back(struct_chunk.field(i)); } - auto arrow_dict_column = std::make_shared(dict_array); - auto dict_column = IColumn::mutate(column_lc.getDictionaryPtr()); - auto * uniq_column = static_cast(dict_column.get()); - auto values_column = uniq_column->getNestedColumn()->cloneEmpty(); - readColumnFromArrowColumn( - arrow_dict_column, *values_column, column_name, format_name, false, dictionary_values); - uniq_column->uniqueInsertRangeFrom(*values_column, 0, values_column->size()); - dict_values = std::move(dict_column); + Columns tuple_elements; + DataTypes tuple_types; + std::vector tuple_names; + + for (int i = 0; i != arrow_struct_type->num_fields(); ++i) + { + auto nested_arrow_column = std::make_shared(nested_arrow_columns[i]); + auto element = readColumnFromArrowColumn(nested_arrow_column, arrow_struct_type->field(i)->name(), format_name, false, dictionary_values); + tuple_elements.emplace_back(std::move(element.column)); + tuple_types.emplace_back(std::move(element.type)); + tuple_names.emplace_back(std::move(element.name)); + } + + auto tuple_column = ColumnTuple::create(std::move(tuple_elements)); + auto tuple_type = std::make_shared(std::move(tuple_types), std::move(tuple_names)); + return {std::move(tuple_column), std::move(tuple_type), column_name}; } - - arrow::ArrayVector indexes_array; - for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + case arrow::Type::DICTIONARY: { - arrow::DictionaryArray & dict_chunk = dynamic_cast(*(arrow_column->chunk(chunk_i))); - indexes_array.emplace_back(dict_chunk.indices()); + auto & dict_values = dictionary_values[column_name]; + /// Load dictionary values only once and reuse it. + if (!dict_values) + { + arrow::ArrayVector dict_array; + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + { + arrow::DictionaryArray & dict_chunk = static_cast(*(arrow_column->chunk(chunk_i))); + dict_array.emplace_back(dict_chunk.dictionary()); + } + auto arrow_dict_column = std::make_shared(dict_array); + auto dict_column = readColumnFromArrowColumn(arrow_dict_column, column_name, format_name, false, dictionary_values); + + /// We should convert read column to ColumnUnique. + auto tmp_lc_column = DataTypeLowCardinality(dict_column.type).createColumn(); + auto tmp_dict_column = IColumn::mutate(assert_cast(tmp_lc_column.get())->getDictionaryPtr()); + static_cast(tmp_dict_column.get())->uniqueInsertRangeFrom(*dict_column.column, 0, dict_column.column->size()); + dict_column.column = std::move(tmp_dict_column); + dict_values = std::make_shared(std::move(dict_column)); + } + + arrow::ArrayVector indexes_array; + for (size_t chunk_i = 0, num_chunks = static_cast(arrow_column->num_chunks()); chunk_i < num_chunks; ++chunk_i) + { + arrow::DictionaryArray & dict_chunk = static_cast(*(arrow_column->chunk(chunk_i))); + indexes_array.emplace_back(dict_chunk.indices()); + } + + auto arrow_indexes_column = std::make_shared(indexes_array); + auto indexes_column = readColumnWithIndexesData(arrow_indexes_column); + auto lc_column = ColumnLowCardinality::create(dict_values->column, std::move(indexes_column)); + auto lc_type = std::make_shared(dict_values->type); + return {std::move(lc_column), std::move(lc_type), column_name}; + } +# define DISPATCH(ARROW_NUMERIC_TYPE, CPP_NUMERIC_TYPE) \ + case ARROW_NUMERIC_TYPE: \ + return readColumnWithNumericData(arrow_column, column_name); + FOR_ARROW_NUMERIC_TYPES(DISPATCH) +# undef DISPATCH + // TODO: support TIMESTAMP_MICROS and TIMESTAMP_MILLIS with truncated micro- and milliseconds? + // TODO: read JSON as a string? + // TODO: read UUID as a string? + default: + throw Exception + { + fmt::format(R"(Unsupported {} type "{}" of an input column "{}".)", format_name, arrow_column->type()->name(), column_name), + ErrorCodes::UNKNOWN_TYPE + }; + } + } + + static Block arrowSchemaToCHHeader(const arrow::Schema & schema, const std::string & format_name) + { + ColumnsWithTypeAndName sample_columns; + for (const auto & field : schema.fields()) + { + /// Create empty arrow column by it's type and convert it to ClickHouse column. + arrow::MemoryPool* pool = arrow::default_memory_pool(); + std::unique_ptr array_builder; + arrow::Status status = MakeBuilder(pool, field->type(), &array_builder); + checkStatus(status, field->name(), format_name); + std::shared_ptr arrow_array; + status = array_builder->Finish(&arrow_array); + checkStatus(status, field->name(), format_name); + arrow::ArrayVector array_vector = {arrow_array}; + auto arrow_column = std::make_shared(array_vector); + std::unordered_map> dict_values; + ColumnWithTypeAndName sample_column = readColumnFromArrowColumn(arrow_column, field->name(), format_name, false, dict_values); + sample_columns.emplace_back(std::move(sample_column)); + } + return Block(std::move(sample_columns)); + } + + ArrowColumnToCHColumn::ArrowColumnToCHColumn( + const Block & header_, const std::string & format_name_, bool import_nested_) + : header(header_), format_name(format_name_), import_nested(import_nested_) + { + } + + ArrowColumnToCHColumn::ArrowColumnToCHColumn( + const arrow::Schema & schema, const std::string & format_name_, bool import_nested_) + : header(arrowSchemaToCHHeader(schema, format_name_)), format_name(format_name_), import_nested(import_nested_) + { + } + + void ArrowColumnToCHColumn::arrowTableToCHChunk(Chunk & res, std::shared_ptr & table) + { + Columns columns_list; + UInt64 num_rows = 0; + + columns_list.reserve(header.rows()); + + using NameToColumnPtr = std::unordered_map>; + + NameToColumnPtr name_to_column_ptr; + for (const auto& column_name : table->ColumnNames()) + { + std::shared_ptr arrow_column = table->GetColumnByName(column_name); + name_to_column_ptr[column_name] = arrow_column; + } + + std::unordered_map nested_tables; + for (size_t column_i = 0, columns = header.columns(); column_i < columns; ++column_i) + { + const ColumnWithTypeAndName & header_column = header.getByPosition(column_i); + + bool read_from_nested = false; + String nested_table_name = Nested::extractTableName(header_column.name); + if (!name_to_column_ptr.contains(header_column.name)) + { + /// Check if it's a column from nested table. + if (import_nested && name_to_column_ptr.contains(nested_table_name)) + { + if (!nested_tables.contains(nested_table_name)) + { + std::shared_ptr arrow_column = name_to_column_ptr[nested_table_name]; + ColumnsWithTypeAndName cols = {readColumnFromArrowColumn(arrow_column, nested_table_name, format_name, false, dictionary_values)}; + Block block(cols); + nested_tables[nested_table_name] = std::make_shared(Nested::flatten(block)); + } + + read_from_nested = nested_tables[nested_table_name]->has(header_column.name); + } + + + // TODO: What if some columns were not presented? Insert NULLs? What if a column is not nullable? + if (!read_from_nested) + throw Exception{ + fmt::format("Column \"{}\" is not presented in input data.", header_column.name), ErrorCodes::THERE_IS_NO_COLUMN}; } - auto arrow_indexes_column = std::make_shared(indexes_array); - auto indexes_column = createAndFillColumnWithIndexesData(arrow_indexes_column); + std::shared_ptr arrow_column = name_to_column_ptr[header_column.name]; - auto new_column_lc = ColumnLowCardinality::create(dict_values, std::move(indexes_column)); - column_lc = std::move(*new_column_lc); - break; + ColumnWithTypeAndName column; + if (read_from_nested) + column = nested_tables[nested_table_name]->getByName(header_column.name); + else + column = readColumnFromArrowColumn(arrow_column, header_column.name, format_name, false, dictionary_values); + + column.column = castColumn(column, header_column.type); + column.type = header_column.type; + num_rows = column.column->size(); + columns_list.push_back(std::move(column.column)); } -# define DISPATCH(ARROW_NUMERIC_TYPE, CPP_NUMERIC_TYPE) \ - case ARROW_NUMERIC_TYPE: \ - fillColumnWithNumericData(arrow_column, internal_column); \ - break; - FOR_ARROW_NUMERIC_TYPES(DISPATCH) -# undef DISPATCH - // TODO: support TIMESTAMP_MICROS and TIMESTAMP_MILLIS with truncated micro- and milliseconds? - // TODO: read JSON as a string? - // TODO: read UUID as a string? - default: - throw Exception(ErrorCodes::UNKNOWN_TYPE, - "Unsupported {} type '{}' of an input column '{}'.", format_name, arrow_column->type()->name(), column_name); + res.setColumns(columns_list, num_rows); } } - -static DataTypePtr getInternalType( - std::shared_ptr arrow_type, - const DataTypePtr & column_type, - const std::string & column_name, - const std::string & format_name) -{ - if (column_type->isNullable()) - { - DataTypePtr nested_type = assert_cast(column_type.get())->getNestedType(); - return makeNullable(getInternalType(arrow_type, nested_type, column_name, format_name)); - } - -#if defined(ARCADIA_BUILD) - if (arrow_type->id() == arrow::Type::DECIMAL) - { - const auto & decimal_type = dynamic_cast(*arrow_type); - return std::make_shared>(decimal_type.precision(), decimal_type.scale()); - } -#else - if (arrow_type->id() == arrow::Type::DECIMAL128) - { - const auto & decimal_type = dynamic_cast(*arrow_type); - return std::make_shared>(decimal_type.precision(), decimal_type.scale()); - } - - if (arrow_type->id() == arrow::Type::DECIMAL256) - { - const auto & decimal_type = dynamic_cast(*arrow_type); - return std::make_shared>(decimal_type.precision(), decimal_type.scale()); - } #endif - if (arrow_type->id() == arrow::Type::LIST) - { - const auto & list_type = dynamic_cast(*arrow_type); - auto list_nested_type = list_type.value_type(); - - const DataTypeArray * array_type = typeid_cast(column_type.get()); - if (!array_type) - throw Exception{ErrorCodes::CANNOT_CONVERT_TYPE, - "Cannot convert arrow LIST type to a not Array ClickHouse type {}.", column_type->getName()}; - - return std::make_shared(getInternalType(list_nested_type, array_type->getNestedType(), column_name, format_name)); - } - - if (arrow_type->id() == arrow::Type::STRUCT) - { - const auto & struct_type = dynamic_cast(*arrow_type); - const DataTypeTuple * tuple_type = typeid_cast(column_type.get()); - if (!tuple_type) - throw Exception{ErrorCodes::CANNOT_CONVERT_TYPE, - "Cannot convert arrow STRUCT type to a not Tuple ClickHouse type {}.", column_type->getName()}; - - const DataTypes & tuple_nested_types = tuple_type->getElements(); - int internal_fields_num = tuple_nested_types.size(); - /// If internal column has less elements then arrow struct, we will select only first internal_fields_num columns. - if (internal_fields_num > struct_type.num_fields()) - throw Exception( - ErrorCodes::CANNOT_CONVERT_TYPE, - "Cannot convert arrow STRUCT with {} fields to a ClickHouse Tuple with {} elements: {}.", - struct_type.num_fields(), - internal_fields_num, - column_type->getName()); - - DataTypes nested_types; - for (int i = 0; i < internal_fields_num; ++i) - nested_types.push_back(getInternalType(struct_type.field(i)->type(), tuple_nested_types[i], column_name, format_name)); - - return std::make_shared(std::move(nested_types)); - } - - if (arrow_type->id() == arrow::Type::DICTIONARY) - { - const auto & arrow_dict_type = dynamic_cast(*arrow_type); - const auto * lc_type = typeid_cast(column_type.get()); - /// We allow to insert arrow dictionary into a non-LowCardinality column. - const auto & dict_type = lc_type ? lc_type->getDictionaryType() : column_type; - return std::make_shared(getInternalType(arrow_dict_type.value_type(), dict_type, column_name, format_name)); - } - - if (arrow_type->id() == arrow::Type::MAP) - { - const auto & arrow_map_type = typeid_cast(*arrow_type); - const auto * map_type = typeid_cast(column_type.get()); - if (!map_type) - throw Exception{ErrorCodes::CANNOT_CONVERT_TYPE, "Cannot convert arrow MAP type to a not Map ClickHouse type {}.", column_type->getName()}; - - return std::make_shared( - getInternalType(arrow_map_type.key_type(), map_type->getKeyType(), column_name, format_name), - getInternalType(arrow_map_type.item_type(), map_type->getValueType(), column_name, format_name)); - } - - if (arrow_type->id() == arrow::Type::UINT16 - && (isDate(column_type) || isDateTime(column_type) || isDate32(column_type) || isDateTime64(column_type))) - { - /// Read UInt16 as Date. It will allow correct conversion to DateTime further. - return std::make_shared(); - } - - auto filter = [=](auto && elem) - { - auto which = WhichDataType(column_type); - if (arrow_type->id() == arrow::Type::DATE32 && which.isDateOrDate32()) - { - return (strcmp(elem.second, "Date") == 0 && which.isDate()) - || (strcmp(elem.second, "Date32") == 0 && which.isDate32()); - } - else - { - return elem.first == arrow_type->id(); - } - }; - if (const auto * internal_type_it = std::find_if(arrow_type_to_internal_type.begin(), arrow_type_to_internal_type.end(), filter); - internal_type_it != arrow_type_to_internal_type.end()) - { - return DataTypeFactory::instance().get(internal_type_it->second); - } - - throw Exception(ErrorCodes::CANNOT_CONVERT_TYPE, - "The type '{}' of an input column '{}' is not supported for conversion from {} data format.", - arrow_type->name(), column_name, format_name); -} - -ArrowColumnToCHColumn::ArrowColumnToCHColumn(const Block & header_, std::shared_ptr schema_, const std::string & format_name_) - : header(header_), format_name(format_name_) -{ - for (const auto & field : schema_->fields()) - { - if (header.has(field->name())) - { - const auto column_type = recursiveRemoveLowCardinality(header.getByName(field->name()).type); - name_to_internal_type[field->name()] = getInternalType(field->type(), column_type, field->name(), format_name); - } - } -} - -void ArrowColumnToCHColumn::arrowTableToCHChunk(Chunk & res, std::shared_ptr & table) -{ - Columns columns_list; - UInt64 num_rows = 0; - - columns_list.reserve(header.rows()); - - using NameToColumnPtr = std::unordered_map>; - - NameToColumnPtr name_to_column_ptr; - for (const auto & column_name : table->ColumnNames()) - { - std::shared_ptr arrow_column = table->GetColumnByName(column_name); - name_to_column_ptr[column_name] = arrow_column; - } - - for (size_t column_i = 0, columns = header.columns(); column_i < columns; ++column_i) - { - const ColumnWithTypeAndName & header_column = header.getByPosition(column_i); - - if (name_to_column_ptr.find(header_column.name) == name_to_column_ptr.end()) - // TODO: What if some columns were not presented? Insert NULLs? What if a column is not nullable? - throw Exception(ErrorCodes::THERE_IS_NO_COLUMN, - "Column '{}' is not presented in input data.", header_column.name); - - std::shared_ptr arrow_column = name_to_column_ptr[header_column.name]; - - DataTypePtr & internal_type = name_to_internal_type[header_column.name]; - MutableColumnPtr read_column = internal_type->createColumn(); - readColumnFromArrowColumn(arrow_column, *read_column, header_column.name, format_name, false, dictionary_values); - - ColumnWithTypeAndName column; - column.name = header_column.name; - column.type = internal_type; - column.column = std::move(read_column); - - column.column = castColumn(column, header_column.type); - column.type = header_column.type; - num_rows = column.column->size(); - columns_list.push_back(std::move(column.column)); - } - - res.setColumns(columns_list, num_rows); -} - -} - -#endif diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.h b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.h index 7f38dc7a31c..5917d9a81a7 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.h +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.h @@ -7,6 +7,7 @@ #if USE_ARROW || USE_ORC || USE_PARQUET #include +#include #include @@ -19,19 +20,22 @@ class Chunk; class ArrowColumnToCHColumn { public: - ArrowColumnToCHColumn(const Block & header_, std::shared_ptr schema_, const std::string & format_name_); + ArrowColumnToCHColumn(const Block & header_, const std::string & format_name_, bool import_nested_); + + /// Create header by arrow schema. It will be useful for inserting + /// data from file without knowing table structure. + ArrowColumnToCHColumn(const arrow::Schema & schema, const std::string & format_name, bool import_nested_); void arrowTableToCHChunk(Chunk & res, std::shared_ptr & table); private: const Block & header; - std::unordered_map name_to_internal_type; const std::string format_name; - + bool import_nested; /// Map {column name : dictionary column}. /// To avoid converting dictionary from Arrow Dictionary /// to LowCardinality every chunk we save it and reuse. - std::unordered_map dictionary_values; + std::unordered_map> dictionary_values; }; } diff --git a/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp b/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp index 42aa9e6ddc7..7f85e26785f 100644 --- a/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp +++ b/src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp @@ -295,6 +295,7 @@ namespace DB FOR_ARROW_TYPES(DISPATCH) #undef DISPATCH + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot fill arrow array with {} data.", column_type->getName()); } template diff --git a/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp b/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp index 6ee247413e9..9d56d2c8fa8 100644 --- a/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp +++ b/src/Processors/Formats/Impl/ORCBlockInputFormat.cpp @@ -9,6 +9,7 @@ #include #include "ArrowBufferedStreams.h" #include "ArrowColumnToCHColumn.h" +#include namespace DB { @@ -26,7 +27,8 @@ namespace ErrorCodes throw Exception(_s.ToString(), ErrorCodes::BAD_ARGUMENTS); \ } while (false) -ORCBlockInputFormat::ORCBlockInputFormat(ReadBuffer & in_, Block header_) : IInputFormat(std::move(header_), in_) +ORCBlockInputFormat::ORCBlockInputFormat(ReadBuffer & in_, Block header_, const FormatSettings & format_settings_) + : IInputFormat(std::move(header_), in_), format_settings(format_settings_) { } @@ -98,7 +100,11 @@ void ORCBlockInputFormat::prepareReader() std::shared_ptr schema; THROW_ARROW_NOT_OK(file_reader->ReadSchema(&schema)); - arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), schema, "ORC"); + arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), "ORC", format_settings.orc.import_nested); + + std::unordered_set nested_table_names; + if (format_settings.orc.import_nested) + nested_table_names = Nested::getAllTableNames(getPort().getHeader()); /// In ReadStripe column indices should be started from 1, /// because 0 indicates to select all columns. @@ -108,7 +114,8 @@ void ORCBlockInputFormat::prepareReader() /// LIST type require 2 indices, STRUCT - the number of elements + 1, /// so we should recursively count the number of indices we need for this type. int indexes_count = countIndicesForType(schema->field(i)->type()); - if (getPort().getHeader().has(schema->field(i)->name())) + const auto & name = schema->field(i)->name(); + if (getPort().getHeader().has(name) || nested_table_names.contains(name)) { for (int j = 0; j != indexes_count; ++j) include_indices.push_back(index + j); @@ -124,9 +131,9 @@ void registerInputFormatProcessorORC(FormatFactory &factory) [](ReadBuffer &buf, const Block &sample, const RowInputFormatParams &, - const FormatSettings & /* settings */) + const FormatSettings & settings) { - return std::make_shared(buf, sample); + return std::make_shared(buf, sample, settings); }); factory.markFormatAsColumnOriented("ORC"); } diff --git a/src/Processors/Formats/Impl/ORCBlockInputFormat.h b/src/Processors/Formats/Impl/ORCBlockInputFormat.h index f27685a9884..254d0554cb2 100644 --- a/src/Processors/Formats/Impl/ORCBlockInputFormat.h +++ b/src/Processors/Formats/Impl/ORCBlockInputFormat.h @@ -3,6 +3,7 @@ #if USE_ORC #include +#include namespace arrow::adapters::orc { class ORCFileReader; } @@ -14,7 +15,7 @@ class ArrowColumnToCHColumn; class ORCBlockInputFormat : public IInputFormat { public: - ORCBlockInputFormat(ReadBuffer & in_, Block header_); + ORCBlockInputFormat(ReadBuffer & in_, Block header_, const FormatSettings & format_settings_); String getName() const override { return "ORCBlockInputFormat"; } @@ -38,6 +39,8 @@ private: // indices of columns to read from ORC file std::vector include_indices; + const FormatSettings format_settings; + void prepareReader(); }; diff --git a/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp b/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp index 07a0e15cb6b..a0b92f98ca9 100644 --- a/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp +++ b/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp @@ -11,6 +11,7 @@ #include #include "ArrowBufferedStreams.h" #include "ArrowColumnToCHColumn.h" +#include #include @@ -30,8 +31,8 @@ namespace ErrorCodes throw Exception(_s.ToString(), ErrorCodes::BAD_ARGUMENTS); \ } while (false) -ParquetBlockInputFormat::ParquetBlockInputFormat(ReadBuffer & in_, Block header_) - : IInputFormat(std::move(header_), in_) +ParquetBlockInputFormat::ParquetBlockInputFormat(ReadBuffer & in_, Block header_, const FormatSettings & format_settings_) + : IInputFormat(std::move(header_), in_), format_settings(format_settings_) { } @@ -98,7 +99,11 @@ void ParquetBlockInputFormat::prepareReader() std::shared_ptr schema; THROW_ARROW_NOT_OK(file_reader->GetSchema(&schema)); - arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), schema, "Parquet"); + arrow_column_to_ch_column = std::make_unique(getPort().getHeader(), "Parquet", format_settings.parquet.import_nested); + + std::unordered_set nested_table_names; + if (format_settings.parquet.import_nested) + nested_table_names = Nested::getAllTableNames(getPort().getHeader()); int index = 0; for (int i = 0; i < schema->num_fields(); ++i) @@ -107,7 +112,8 @@ void ParquetBlockInputFormat::prepareReader() /// nested elements, so we should recursively /// count the number of indices we need for this type. int indexes_count = countIndicesForType(schema->field(i)->type()); - if (getPort().getHeader().has(schema->field(i)->name())) + const auto & name = schema->field(i)->name(); + if (getPort().getHeader().has(name) || nested_table_names.contains(name)) { for (int j = 0; j != indexes_count; ++j) column_indices.push_back(index + j); @@ -123,9 +129,9 @@ void registerInputFormatProcessorParquet(FormatFactory &factory) [](ReadBuffer &buf, const Block &sample, const RowInputFormatParams &, - const FormatSettings & /* settings */) + const FormatSettings & settings) { - return std::make_shared(buf, sample); + return std::make_shared(buf, sample, settings); }); factory.markFormatAsColumnOriented("Parquet"); } diff --git a/src/Processors/Formats/Impl/ParquetBlockInputFormat.h b/src/Processors/Formats/Impl/ParquetBlockInputFormat.h index b68f97c005a..c2ed1552423 100644 --- a/src/Processors/Formats/Impl/ParquetBlockInputFormat.h +++ b/src/Processors/Formats/Impl/ParquetBlockInputFormat.h @@ -4,6 +4,7 @@ #if USE_PARQUET #include +#include namespace parquet::arrow { class FileReader; } @@ -17,7 +18,7 @@ class ArrowColumnToCHColumn; class ParquetBlockInputFormat : public IInputFormat { public: - ParquetBlockInputFormat(ReadBuffer & in_, Block header_); + ParquetBlockInputFormat(ReadBuffer & in_, Block header_, const FormatSettings & format_settings_); void resetParser() override; @@ -36,6 +37,7 @@ private: std::vector column_indices; std::unique_ptr arrow_column_to_ch_column; int row_group_current = 0; + const FormatSettings format_settings; }; } diff --git a/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.reference b/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.reference new file mode 100644 index 00000000000..22eb936a0e0 --- /dev/null +++ b/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.reference @@ -0,0 +1,21 @@ +Arrow +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +Parquet +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +ORC +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] +[1,2,3] ['123','456','789'] [9.8,10.12,11.14] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[4,5,6] ['101112','131415','161718'] [123.8,10.2,11.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] +[7,8,9] ['101','415','118'] [13.08,1.12,0.414] [[(1,'123',9.8),(2,'456',10.12),(3,'789',11.14)],[(4,'101112',123.8),(5,'131415',10.2),(6,'161718',11.414)],[(7,'101',13.08),(8,'415',1.12),(9,'118',0.414)]] diff --git a/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.sh b/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.sh new file mode 100755 index 00000000000..47d7b8519be --- /dev/null +++ b/tests/queries/0_stateless/00900_orc_arrow_parquet_nested.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +# shellcheck source=../shell_config.sh +. "$CUR_DIR"/../shell_config.sh + +${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS nested_table" +${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS nested_nested_table" + +${CLICKHOUSE_CLIENT} --query="CREATE TABLE nested_table (table Nested(elem1 Int32, elem2 String, elem3 Float32)) engine=Memory" + +${CLICKHOUSE_CLIENT} --query="CREATE TABLE nested_nested_table (table Nested(elem1 Int32, elem2 String, elem3 Float32, nested Nested(elem1 Int32, elem2 String, elem3 Float32))) engine=Memory" + + +formats=('Arrow' 'Parquet' 'ORC') +format_files=('arrow' 'parquet' 'orc') + +for ((i = 0; i < 3; i++)) do + echo ${formats[i]} + + ${CLICKHOUSE_CLIENT} --query="TRUNCATE TABLE nested_table" + cat $CUR_DIR/data_orc_arrow_parquet_nested/nested_table.${format_files[i]} | ${CLICKHOUSE_CLIENT} -q "INSERT INTO nested_table FORMAT ${formats[i]} SETTINGS input_format_${format_files[i]}_import_nested = 1" + + ${CLICKHOUSE_CLIENT} --query="SELECT * FROM nested_table" + + + ${CLICKHOUSE_CLIENT} --query="TRUNCATE TABLE nested_nested_table" + cat $CUR_DIR/data_orc_arrow_parquet_nested/nested_nested_table.${format_files[i]} | ${CLICKHOUSE_CLIENT} -q "INSERT INTO nested_nested_table FORMAT ${formats[i]} SETTINGS input_format_${format_files[i]}_import_nested = 1" + + ${CLICKHOUSE_CLIENT} --query="SELECT * FROM nested_nested_table" + + +done + +${CLICKHOUSE_CLIENT} --query="DROP TABLE nested_table" +${CLICKHOUSE_CLIENT} --query="DROP TABLE nested_nested_table" diff --git a/tests/queries/0_stateless/01273_arrow_dictionaries_load.reference b/tests/queries/0_stateless/01273_arrow_dictionaries_load.reference index 7321c396a59..99f5e505d82 100644 --- a/tests/queries/0_stateless/01273_arrow_dictionaries_load.reference +++ b/tests/queries/0_stateless/01273_arrow_dictionaries_load.reference @@ -1,2 +1,5 @@ 1 ['a','b','c'] ('z','6') 2 ['d','e'] ('x','9') +1 ['a','b','c'] ('z','6') +2 ['d','e'] ('x','9') +20000000 diff --git a/tests/queries/0_stateless/01273_arrow_dictionaries_load.sh b/tests/queries/0_stateless/01273_arrow_dictionaries_load.sh index 38e6c2c1b01..3f6fcff3dcc 100755 --- a/tests/queries/0_stateless/01273_arrow_dictionaries_load.sh +++ b/tests/queries/0_stateless/01273_arrow_dictionaries_load.sh @@ -20,5 +20,7 @@ ${CLICKHOUSE_CLIENT} --query="SELECT * FROM arrow_dicts FORMAT Arrow SETTINGS ou cat "${CLICKHOUSE_TMP}"/dicts.arrow | ${CLICKHOUSE_CLIENT} -q "INSERT INTO arrow_dicts FORMAT Arrow" +${CLICKHOUSE_CLIENT} --query="SELECT count() FROM arrow_dicts" + ${CLICKHOUSE_CLIENT} --query="DROP TABLE arrow_dicts" diff --git a/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_arrow.cpp b/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_arrow.cpp new file mode 100644 index 00000000000..2eb1739453c --- /dev/null +++ b/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_arrow.cpp @@ -0,0 +1,178 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void write_arrow(const arrow::Table & table) +{ + auto file = arrow::io::FileOutputStream::Open("nested_nested_table.arrow"); + + auto writer = arrow::ipc::MakeFileWriter(file->get(), table.schema()).ValueOrDie(); + + auto status = writer->WriteTable(table, 100000); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); + + status = writer->Close(); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); +} + +void write_parquet(const arrow::Table & table) +{ + auto file = arrow::io::FileOutputStream::Open("nested_nested_table.parquet"); + + std::unique_ptr writer; + parquet::WriterProperties::Builder prop_builder; + auto props = prop_builder.build(); + auto status = parquet::arrow::FileWriter::Open( + *table.schema(), + arrow::default_memory_pool(), + *file, + props, + &writer); + + + status = writer->WriteTable(table, 100000); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); + + status = writer->Close(); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); +} + +void write_orc(const arrow::Table & table) +{ + auto file = arrow::io::FileOutputStream::Open("nested_nested_table.orc"); + + auto writer = arrow::adapters::orc::ORCFileWriter::Open(file->get()).ValueOrDie(); + + auto status = writer->Write(table); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); + + status = writer->Close(); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); +} + + +void fillNested(arrow::ArrayBuilder * builder, bool nested) +{ + arrow::ListBuilder * list_builder = static_cast(builder); + arrow::StructBuilder * struct_builder = static_cast(list_builder->value_builder()); + arrow::Int32Builder * elem1_builder = static_cast(struct_builder->field_builder(0)); + arrow::BinaryBuilder * elem2_builder = static_cast(struct_builder->field_builder(1)); + arrow::FloatBuilder * elem3_builder = static_cast(struct_builder->field_builder(2)); + + arrow::ListBuilder * nested_list_builder = nullptr; + if (nested) + nested_list_builder = static_cast(struct_builder->field_builder(3)); + + arrow::Status status; + status = list_builder->Append(); + + std::vector elem1 = {1, 2, 3}; + std::vector elem2 = {"123", "456", "789"}; + std::vector elem3 = {9.8, 10.12, 11.14}; + status = elem1_builder->AppendValues(elem1); + status = elem2_builder->AppendValues(elem2); + status = elem3_builder->AppendValues(elem3); + if (nested) + fillNested(nested_list_builder, false); + + for (size_t i = 0; i != elem1.size(); ++i) + status = struct_builder->Append(); + + status = list_builder->Append(); + + elem1 = {4, 5, 6}; + elem2 = {"101112", "131415", "161718"}; + elem3 = {123.8, 10.2, 11.414}; + status = elem1_builder->AppendValues(elem1); + status = elem2_builder->AppendValues(elem2); + status = elem3_builder->AppendValues(elem3); + if (nested) + fillNested(nested_list_builder, false); + + for (size_t i = 0; i != elem1.size(); ++i) + status = struct_builder->Append(); + + status = list_builder->Append(); + + elem1 = {7, 8, 9}; + elem2 = {"101", "415", "118"}; + elem3 = {13.08, 1.12, 0.414}; + status = elem1_builder->AppendValues(elem1); + status = elem2_builder->AppendValues(elem2); + status = elem3_builder->AppendValues(elem3); + if (nested) + fillNested(nested_list_builder, false); + + for (size_t i = 0; i != elem1.size(); ++i) + status = struct_builder->Append(); +} + +int main() +{ + std::vector> nested_struct_fields; + nested_struct_fields.push_back(std::make_shared("elem1", arrow::int32())); + nested_struct_fields.push_back(std::make_shared("elem2", arrow::binary())); + nested_struct_fields.push_back(std::make_shared("elem3", arrow::float32())); + auto nested_struct_type = arrow::struct_(nested_struct_fields); + auto nested_field = std::make_shared("nested", nested_struct_type); + auto nested_list_type = arrow::list(nested_field); + auto nested_list_field = std::make_shared("nested", nested_list_type); + + std::vector> struct_fields; + struct_fields.push_back(std::make_shared("elem1", arrow::int32())); + struct_fields.push_back(std::make_shared("elem2", arrow::binary())); + struct_fields.push_back(std::make_shared("elem3", arrow::float32())); + struct_fields.push_back(std::make_shared("nested", nested_list_type)); + + + auto struct_type = arrow::struct_(struct_fields); + auto field = std::make_shared("table", struct_type); + auto list_type = arrow::list(field); + + arrow::MemoryPool* pool = arrow::default_memory_pool(); + std::unique_ptr tmp; + auto status = MakeBuilder(pool, list_type, &tmp); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); + + fillNested(tmp.get(), true); + + std::shared_ptr array; + status = tmp->Finish(&array); + + if (!status.ok()) + throw std::runtime_error(status.ToString()); + + std::vector> fields_for_schema = {std::make_shared("table", list_type)}; + auto schema = std::make_shared(std::move(fields_for_schema)); + auto table = arrow::Table::Make(schema, {array}); + + if (!table) + throw std::runtime_error("WTF"); + + write_orc(*table); + write_arrow(*table); + write_parquet(*table); + + return 0; +} diff --git a/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.arrow b/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.arrow new file mode 100644 index 0000000000000000000000000000000000000000..2f3709d079ea37753ed6a9db467653ddea4a4931 GIT binary patch literal 2410 zcmeHJJ!@1!6up~$*?op528j|d$O{IHg0QojY&M|A7Zd}Enlx!vh?*w^HnQRtR(3)P z!B%Z-ti{qwEG!iZE&LB!*rgHIbMDNo^o%3YKkn<8_ATp9j=Fs=Xl$wKP{90p8Cwi(EM-8gkiucgZUg6pIiw|W z(4CY-N0wrw`FjM7wGr?HQP{K8#2zyr+z)SlEYCwvEzNt&dUNhKtzq3x={e6FZB0vi zKKQxixOblW@m}}_=RNo1ecILDi?^I^i5Da=&)cr79I9f#<%RwY;lgURk$? zMPPr+4+UfK^G`YZFh<@##=>QCX{_U&gCA|6yPf;9i+(ZDzJU z*O)gIV@%c5%#4{ebu(ugsNuKKqwwzSM0Wr4WOn;hHGA@Sd$CqKlD&Fb&z_%O&W<%7 zF1+9Va2ms@h4Ut;;oSQH&OZ(?hJMyDC=I4l3*+jQkE2i?2TlNd!{&hnU=cV6ECCmQ zOTaR)3S0$l05^dRfM=|qybel(>7<|i8I*?e@m-_mJCopb<4c=>ald&oPom^q=NaWb gR@{9&OcK^c?IVq)Bmx40A>3p^#A|> literal 0 HcmV?d00001 diff --git a/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.orc b/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_nested_table.orc new file mode 100644 index 0000000000000000000000000000000000000000..4112df41a52f72001347427fc00b7c55f00064d8 GIT binary patch literal 1050 zcmeYda+YOa;Nsz8VE_Ul77peB1{ns1$B&*Tr8h7rit#;TU}Hd4!5P4y15_adQ6b0Y zr)b8f#;Dl20;p02B=Pi7N&}-JAD^GP8ecz9Fa#)g=~+@T1GAzlpPy!?pTg^d=XXVa zYjS97{`lO2-II;2`MS8=Qfn3i22{(>VOTC5z@P^-Zqfs=^Wyk270bYu+bshsRRh`n z7;L*AU#5CmpL7o+4?_^L^_keLZ=1qvv|dVHo*P zY(LyS$zs~SMvf(bN8O|A-lx45RdP_RVGIn`)o#Z&e%-n#dEwfLkJrq+KewlMs_gf( z=EX73RL6P$=P7}okY=&84F5jH-~>$bu1 zk_C^~O@+^^1TzE}wlFe0P7u3sLhI=1gE|)us~EO>E}R_L9O>E7?A|dkuxqP|p{9Ch zqhs^I2FK3X&E6doIZs_=(@IE8OH7@dlkR(G;{8nu-=j0|FVyq{R$SKrwYHp6XQ0)kvzNg%3m^`AtN` zOj0V3Sywki9QHF}f@C<9C`Li96&C}a2Bm7P;mUsCuW%q*Qu`6X!UCrDdySFCrBIN> z(nN)8r0_U`rKL+OgIl(!a*ivinfw_cjAuFLR_NJ0$DPn~`3%p8Q?fjq!kw_i^S#<# zl8Ry^J&JKKnizGE+Ap#RiN0#BQ0=CqZAxs1ve!|wEA)X1JI?LXN7K9eebQS$XL%F|Z;7wh7bm8;vxAVPg*Qpq(Q_&~RZNJq=$&PA*+EqdJ$Nw{lJ3T6Jfw2+l7Fv>CwrA>(|P+hI+azw zTJvv&yf*zdu&#Dr!onUNWm`x78)Un-r;Dq`jUK!qU&q=255FOTX;*tIVPPMRv-+`- zFx@4t4{F0o-5PHbKD<-`ee3M+oM6wAe+j*0Y&%3(s!PlMN)a=dBk2w9Kmuj%EJEv0 zJtVHHQzams#-U-pB#>zN76G;8+ag$#(?3LO^(sS!(-gxrf>CF1HiDeVMxMP6C3CQU zb355#+zjnqLQ{}6tj7sSoh%nC>o@({^isJzU942rZcS|Xm1=2ibt0F^X0k?L64F!1 Lb^I*P2!7vw8#+B@l~ z{$$=1#-@QeU>>LftX&6Tt=?$1R`rV3I?$o6>AG&{rf$K*Z*5!i_F6VqUsZFl9+1OqcW1H-@n4G@x(f#CoL6BC5P3v@0s z&~Ro41_sd+I|UgGI9N7L+q1|0e{Z94uR;HsYabX6b52@x@vM0iM29B>!`U-3j;*g1 z9Sd!Z9B0k^?qqDN?6_~fnd3V5Ku67(e*5#^FWYTmVDLR-$k(92)0(KEt0g>ZhDbQO z`uT@Xp8Y+aRGHc1ZU1Ze!Y78;7ZksAn|@~r@7&VXMaw1M#3i&mY4e(OQMl(>!`zLN zEf;Qn_u^6cqT`4D#?Nl~Szn*(ef{sAE?`J}dYbewfiIz9@*D>?+9Vc+2z~G7A6BX8#HPc;}t z4U9K$@Y=ZS*^*~cP8!M_sXU>F4<6)6FFX*rMqnD_W>IeTVg}|pPgpipT3EE+u$aNp zqOz#L1`?0_3f>c&gS}==ZftyrEAlLSK73AKVc?j{D8MMu(7>X^#K5EBVZhe(g_+qu H$XNmagnI2P literal 0 HcmV?d00001 diff --git a/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_table.parquet b/tests/queries/0_stateless/data_orc_arrow_parquet_nested/nested_table.parquet new file mode 100644 index 0000000000000000000000000000000000000000..0bdcc288107451070f2eb65b183c7d98da40d69b GIT binary patch literal 1105 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 literal 0 HcmV?d00001 diff --git a/tests/queries/0_stateless/maps b/tests/queries/0_stateless/maps new file mode 100644 index 00000000000..e69de29bb2d