diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-02-26 21:28:26 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-02-26 21:39:04 +0300 |
commit | c816d734c96968d30cf63954009ec4a73b6ec789 (patch) | |
tree | f935a9ab37ea41d8b23e30172fd36b0719b18aa7 | |
parent | 73f2e377bb4a5061f08f495a61340b482d355565 (diff) | |
download | ydb-c816d734c96968d30cf63954009ec4a73b6ec789.tar.gz |
Intermediate changes
commit_hash:e18a239f7b892af4d53c13670fad31ffae66aabb
-rw-r--r-- | yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h | 95 |
1 files changed, 87 insertions, 8 deletions
diff --git a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h index de3e42a41e..b423021a71 100644 --- a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h +++ b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h @@ -1,5 +1,6 @@ #pragma once +#include <util/digest/numeric.h> #include <util/generic/maybe.h> #include <util/generic/string.h> #include <vector> @@ -50,9 +51,6 @@ struct TError { TString ErrorMessage; }; -struct TStatistics { -}; - struct TYtTableRef { TString Path; TString Cluster; @@ -63,24 +61,104 @@ struct TFmrTableRef { TString TableId; }; +struct TTableRange { + TString PartId; + ui64 MinChunk = 0; + ui64 MaxChunk; +}; + +struct TFmrTableInputRef { + TString TableId; + std::vector<TTableRange> TableRanges; +}; + +struct TFmrTableOutputRef { + TString TableId; + TString PartId; + + bool operator==(const TFmrTableOutputRef&) const = default; +}; + +struct TTableStats { + ui64 Chunks = 0; + ui64 Rows; + ui64 DataWeight; +}; + +} // namespace NYql::NFmr + +namespace std { + template<> + struct hash<NYql::NFmr::TFmrTableOutputRef> { + size_t operator()(const NYql::NFmr::TFmrTableOutputRef& ref) const { + return CombineHashes(hash<TString>()(ref.TableId), hash<TString>()(ref.PartId)); + } + }; +} + +namespace NYql::NFmr { + +struct TStatistics { + std::unordered_map<TFmrTableOutputRef, TTableStats> OutputTables; +}; + +//пока оставляем и со старым названием, чтобы тесты не падали, но после рефактора надо будет убрать using TTableRef = std::variant<TYtTableRef, TFmrTableRef>; -struct TUploadTaskParams { +using TOperationTableRef = std::variant<TYtTableRef, TFmrTableRef>; + +using TTaskTableRef = std::variant<TYtTableRef, TFmrTableInputRef, TFmrTableOutputRef>; + +struct TUploadOperationParams { + TFmrTableRef Input; + TYtTableRef Output; +}; + +struct TUploadTaskParams { // DEPRECATED TODO REMOVE TFmrTableRef Input; TYtTableRef Output; }; -struct TDownloadTaskParams { +struct TUploadTaskParamsNew { + TFmrTableInputRef Input; + TYtTableRef Output; +}; + +struct TDownloadOperationParams { + TYtTableRef Input; + TFmrTableRef Output; +}; + +struct TDownloadTaskParams { // DEPRECATED TODO REMOVE TYtTableRef Input; TFmrTableRef Output; }; -struct TMergeTaskParams { - std::vector<TTableRef> Input; +struct TDownloadTaskParamsNew { + TYtTableRef Input; + TFmrTableOutputRef Output; +}; + +struct TMergeOperationParams { + std::vector<TOperationTableRef> Input; TFmrTableRef Output; }; -using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>; +struct TMergeTaskParams { // DEPRECATED TODO REMOVE + std::vector<TOperationTableRef> Input; + TFmrTableRef Output; +}; + +struct TMergeTaskParamsNew { + std::vector<TTaskTableRef> Input; + TFmrTableOutputRef Output; +}; + +using TOperationParams = std::variant<TUploadOperationParams, TDownloadOperationParams, TMergeOperationParams>; + +using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>; // DEPRECATED TODO REMOVE + +using TTaskParamsNew = std::variant<TUploadTaskParamsNew, TDownloadTaskParamsNew, TMergeTaskParamsNew>; struct TTask: public TThrRefBase { TTask() = default; @@ -110,6 +188,7 @@ struct TTaskState: public TThrRefBase { ETaskStatus TaskStatus; TString TaskId; TMaybe<TFmrError> TaskErrorMessage; + TStatistics Stats; using TPtr = TIntrusivePtr<TTaskState>; }; |