-
Notifications
You must be signed in to change notification settings - Fork 14.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add Apache Doris support #24714
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #24714 +/- ##
==========================================
+ Coverage 69.06% 69.09% +0.03%
==========================================
Files 1939 1940 +1
Lines 75796 75870 +74
Branches 8444 8444
==========================================
+ Hits 52349 52426 +77
+ Misses 21271 21268 -3
Partials 2176 2176
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
LGTM |
@villebro Hello, can you help me review it? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wow that was two hours straight
LGTM |
@villebro |
@betodealmeida Hello, excuse me for a few minutes, can you help me review it? |
@liujiwen-up I've triggered the workflows for you. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding a new engine and all the associated tests.
@betodealmeida would you mind taking a look at this change as you seem to be the resident database expert.
docs/docs/databases/doris.mdx
Outdated
|
||
## Doris | ||
|
||
The [sqlalchemy-doris](https://pypi.org/project/pydoris/) library is the recommended |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The [sqlalchemy-doris](https://pypi.org/project/pydoris/) library is the recommended | |
The [sqlalchemy-doris](https://pypi.org/project/pydoris/) library is the recommended way to connect to Apache Doris through SQLAlchemy. |
docs/docs/databases/doris.mdx
Outdated
## Doris | ||
|
||
The [sqlalchemy-doris](https://pypi.org/project/pydoris/) library is the recommended | ||
way to connect to Apache Doris through SQLAlchemy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
way to connect to Apache Doris through SQLAlchemy. |
setup.py
Outdated
@@ -205,6 +205,7 @@ def get_git_sha() -> str: | |||
"vertica": ["sqlalchemy-vertica-python>=0.5.9, < 0.6"], | |||
"netezza": ["nzalchemy>=11.0.2"], | |||
"starrocks": ["starrocks>=1.0.0"], | |||
"doris": ["pydoris>=1.0.0"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we include an upper bound of 2.0.0
to prevent potenitial breaking changes when the dependencies are bumped?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK I will modify it, thanks for your suggestion
Thank you for adding this! We'll try to get it into Superset. 3.1 officially. Happy to continue supporting these integrations in the Apache ecosystem :) |
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Evan Rusackas <evan@preset.io>
SUMMARY
The Apache Doris database is based on the MySQL protocol and introduces the concept of Multi Catalog. Therefore, the engine specification of mysqldb will be incompatible with the catalog, and some field types are not the same as those in mysql. To fix these issues, I added the Apache Doris engine specification.
Main difference:
Supports the connection of Doris's Multi Catalog
Fixed the problem that only "BASE TABLE" was displayed in information_schema
Fixed data types for JSONB, DATEV2, DATETIMEV2, DECIMALV3, MAP, STRUCT, LARGEINT, QUANTILE_STATE and AGG_STATE
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION