Skip to content

Ytsaurus table engine and table function.#77606

Merged
kssenii merged 44 commits intoClickHouse:masterfrom
MikhailBurdukov:ytsaurus_table_engine
Aug 20, 2025
Merged

Ytsaurus table engine and table function.#77606
kssenii merged 44 commits intoClickHouse:masterfrom
MikhailBurdukov:ytsaurus_table_engine

Conversation

@MikhailBurdukov
Copy link
Copy Markdown
Contributor

https://ytsaurus.tech/ is an open source big data platform for distributed storage and processing.
It's already using a technology called CHYT (ClickHouse over YT) which helps to process data quickly, however it's not a fully featured ClickHouse cluster.

Examples:

Table engine

CREATE TABLE test( `a` UInt32, `b` String) ENGINE = Ytsaurus('http://localhost:8000', '//tmp/test', 'password')

SELECT * FROM test;
   ┌──a─┬─b──┐
1. │ 10 │ 20 │
   └────┴────┘

Table Function

SELECT *
FROM ytsaurus('http://localhost:8000', '//tmp/test', 'password', '`a` UInt32, `b` String')

Query id: 0d3fb990-1862-49ef-8424-e5d5186c80b4

   ┌──a─┬─b──┐
1. │ 10 │ 20 │
   └────┴────┘

Technical comment:
By now integration with ytsaurus cluster built over http protocol. Description: https://ytsaurus.tech/docs/en/user-guide/proxy/http-reference

Resolves : #60879

Changelog category (leave one):

  • Experimental Feature

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Ytsaurus table engine and table function.

Documentation entry for user-facing changes

  • Documentation is written (mandatory for new features)

@kssenii kssenii self-assigned this Mar 14, 2025
@kssenii kssenii added the can be tested Allows running workflows for external contributors label Mar 14, 2025
@clickhouse-gh
Copy link
Copy Markdown
Contributor

clickhouse-gh bot commented Mar 14, 2025

Workflow [PR], commit [8e85c1b]

@clickhouse-gh clickhouse-gh bot added the pr-experimental Experimental Feature label Mar 14, 2025
@nikitamikhaylov
Copy link
Copy Markdown
Member

Should it be YTsaurus with capital T? https://ytsaurus.tech/

@MikhailBurdukov MikhailBurdukov force-pushed the ytsaurus_table_engine branch 3 times, most recently from 1e80e3b to ed59821 Compare March 17, 2025 15:21
@MikhailBurdukov MikhailBurdukov force-pushed the ytsaurus_table_engine branch 4 times, most recently from 807158c to 68ce0c0 Compare March 31, 2025 14:20
@clickhouse-ci clickhouse-ci bot added the manual approve Manual approve required to run CI label Mar 31, 2025
@MikhailBurdukov MikhailBurdukov changed the title [WIP] Ytsaurus table engine and table function. Ytsaurus table engine and table function. Mar 31, 2025
@MikhailBurdukov MikhailBurdukov marked this pull request as ready for review March 31, 2025 14:24
@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii
Hi! Can I get ci approval? After adding the docs manual approve is required.

@clickhouse-gh
Copy link
Copy Markdown
Contributor

clickhouse-gh bot commented May 6, 2025

Dear @kssenii, this PR hasn't been updated for a while. You will be unassigned. Will you continue working on it? If so, please feel free to reassign yourself.

@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii
Hi! I also made implementation of YTsaurus dictionary source. Is it okey for you to review all together or better to make a separate PR?

@MikhailBurdukov MikhailBurdukov force-pushed the ytsaurus_table_engine branch 2 times, most recently from 4c59de5 to a5ae714 Compare May 7, 2025 14:00
@kssenii
Copy link
Copy Markdown
Member

kssenii commented May 7, 2025

@kssenii
Hi! I also made implementation of YTsaurus dictionary source. Is it okey for you to review all together or better to make a separate PR?

Hi, it is ok if you push it in this PR and I will review together. I am on vacation for two more weeks and after will review. Sorry for the long wait.

@kssenii kssenii self-assigned this May 7, 2025
@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii Hi! Could you run the CI and review changes, pls?

@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii @pamarcos ping 🙏

@kssenii kssenii self-assigned this Aug 8, 2025
#define LIST_OF_YTSAURUS_SETTINGS(DECLARE, ALIAS) \
DECLARE(Bool, check_table_schema, true, "Check the ClickHouse and YTsaurus table schema for compatibility", 0) \
DECLARE(Bool, skip_unknown_columns, true, "Skip columns with unknown type", 0) \
DECLARE(Bool, force_read_table, false, "", 0) \
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a description for this setting as well

, cypress_path(std::move(configuration_.cypress_path))
, settings(configuration_.settings)
, client_connection_info{.http_proxy_urls = std::move(configuration_.http_proxy_urls), .oauth_token = std::move(configuration_.oauth_token)}
, log(getLogger(" (" + table_id_.table_name + ")"))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
, log(getLogger(" (" + table_id_.table_name + ")"))
, log(getLogger("StorageYTsaurus(" + table_id_.getFullTableName() + ")"))

@kssenii kssenii enabled auto-merge August 13, 2025 08:24
@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii
Should we restart the CI? Failures for me looks unrelated:
failure Run server init.d 0.35 13:40:40
Error response from daemon: No such container: d257d96c238723e0ed7b49339402aee146799c2c1ce1042d13491b0c753508b9

@kssenii
Copy link
Copy Markdown
Member

kssenii commented Aug 14, 2025

Sorry I was late and there is again a conflict... So let's just resolve it and checks will rerun.

auto-merge was automatically disabled August 14, 2025 08:55

Head branch was pushed to by a user without write access

@kssenii kssenii enabled auto-merge August 14, 2025 08:59
@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

@kssenii Pinging to merge before new conflicts in theSettingsChangesHistory.cpp 😁😁

@kssenii
Copy link
Copy Markdown
Member

kssenii commented Aug 14, 2025

I am too late again 😢

@kssenii kssenii disabled auto-merge August 14, 2025 21:40
@kssenii kssenii enabled auto-merge August 14, 2025 21:40
@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

Ci is not running(

@pamarcos
Copy link
Copy Markdown
Member

Ci is not running(

There was a conflict. I fixed it in acadc07 and approved the workflow to run

@MikhailBurdukov
Copy link
Copy Markdown
Contributor Author

Lets merge?

@kssenii
Copy link
Copy Markdown
Member

kssenii commented Aug 20, 2025

Just resolved conflicts in private synchronization PR, need to wait now for tests to finish there

@kssenii kssenii added this pull request to the merge queue Aug 20, 2025
Merged via the queue into ClickHouse:master with commit 3cace86 Aug 20, 2025
120 of 122 checks passed
@robot-ch-test-poll2 robot-ch-test-poll2 added the pr-synced-to-cloud The PR is synced to the cloud repo label Aug 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

can be tested Allows running workflows for external contributors manual approve Manual approve required to run CI pr-experimental Experimental Feature pr-synced-to-cloud The PR is synced to the cloud repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Native Support for YTsaurus

6 participants