Uh oh!
There was an error while loading. Please reload this page.
[Feature] Support Doris Catalog - #55274
Conversation
hello-stephen
commented
Aug 25, 2025
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
c2f6c22 to
530a97dCompare32fd79c to
f1ee51bCompareThere was a problem hiding this comment.
Pull Request Overview
This PR introduces support for Doris Catalog, a new feature that enables efficient access to external tables in remote Doris clusters using Arrow Flight SQL protocol. The implementation replaces the previous JDBC-based approach with an HTTP API-based metadata retrieval system combined with Arrow Flight SQL for data transmission, providing approximately 4x performance improvement.
Key changes:
- Implements new Doris Catalog with HTTP-based metadata retrieval and Arrow Flight SQL data access
- Adds comprehensive test suite for all data types, statistics, refresh operations, and predicate pushdown
- Introduces configuration support for remote Doris cluster connections
Reviewed Changes
Copilot reviewed 47 out of 47 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| regression-test/suites/external_table_p0/remote_doris/*.groovy | Comprehensive test suite for remote Doris functionality |
| fe/fe-core/src/main/java/org/apache/doris/datasource/doris/* | Core implementation of remote Doris catalog, database, table, and REST client |
| be/src/vec/exec/format/table/remote_doris_reader.* | Backend Arrow Flight reader implementation |
| gensrc/thrift/*.thrift | Thrift definitions for remote Doris table types |
| fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/* | REST API endpoints for schema information |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6d04d1d to
9bfbf71Compare9bfbf71 to
190b529Comparemorningman
commented
Oct 24, 2025
run buildall |
doris-robot
commented
Oct 24, 2025
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
doris-robot
commented
Oct 24, 2025
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
190b529 to
6311b1dComparemorningman
commented
Nov 1, 2025
run buildall |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
doris-robot
commented
Nov 1, 2025
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
doris-robot
commented
Nov 1, 2025
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Nov 10, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Nov 10, 2025
FE Regression Coverage ReportIncrement line coverage |
Uh oh!
There was an error while loading. Please reload this page.
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
…58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup #55274
…58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup #55274
…pache#58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup apache#55274
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
…pache#58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup apache#55274
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
…pache#58248) 1. Fix for unaligned memory in arrow MapArray parsing. 2. arrow Map unaligned memory ut. 3. arrow Struct unaligned memory ut. Followup apache#55274
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog. related: apache#56011 1. It retrieves metadata of Doris external tables through HTTP APIs. 2. The metadata information for Doris external tables is more accurate, fully capturing various metadata from remote cluster tables, such as primary keys, bucketing keys, and native Doris data types. 3. The underlying implementation uses Arrow Flight SQL to communicate with the remote Doris cluster, achieving approximately 4 times higher transmission performance compared to the single-node JDBC Catalog. 4. It supports concurrent retrieval of Arrow response results from the remote Doris cluster, with transmission performance scaling linearly as the cluster size increases.
…pache#58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup apache#55274
…pache#58248) 1. Fix for unaligned memory in arrow MapArray parsing. 2. arrow Map unaligned memory ut. 3. arrow Struct unaligned memory ut. Followup apache#55274
…pache#58002) Fix memory alignment issues in read_column_from_arrow by using memcpy This PR addresses potential memory alignment problems when reading data from Arrow arrays in the `read_column_from_arrow` method. Instead of directly casting potentially unaligned pointers, we now use `memcpy` to safely copy data into properly aligned memory, preventing misaligned address runtime errors. Followup apache#55274
…pache#58248) 1. Fix for unaligned memory in arrow MapArray parsing. 2. arrow Map unaligned memory ut. 3. arrow Struct unaligned memory ut. Followup apache#55274
The new Doris Catalog replaces the previous method of accessing external tables in remote Doris clusters via JDBC Catalog.
related: #56011