From 070ff1f605765b57670034e76c65f0f745a12c3e Mon Sep 17 00:00:00 2001 From: chyueyi <35141460+chyueyi@users.noreply.github.com> Date: Wed, 6 Dec 2023 11:29:56 +0800 Subject: [PATCH] feat: add profile for doris connector (#14214) --- ingestion/src/metadata/profiler/orm/functions/length.py | 1 + ingestion/src/metadata/profiler/orm/functions/median.py | 7 +++++++ ingestion/src/metadata/profiler/orm/registry.py | 1 + 3 files changed, 9 insertions(+) diff --git a/ingestion/src/metadata/profiler/orm/functions/length.py b/ingestion/src/metadata/profiler/orm/functions/length.py index ded2893ca6d..88aa32b3799 100644 --- a/ingestion/src/metadata/profiler/orm/functions/length.py +++ b/ingestion/src/metadata/profiler/orm/functions/length.py @@ -50,6 +50,7 @@ def _(element, compiler, **kw): @compiles(LenFn, Dialects.Db2) @compiles(LenFn, Dialects.Hana) @compiles(LenFn, Dialects.Druid) +@compiles(LenFn, Dialects.Doris) def _(element, compiler, **kw): return "LENGTH(%s)" % compiler.process(element.clauses, **kw) diff --git a/ingestion/src/metadata/profiler/orm/functions/median.py b/ingestion/src/metadata/profiler/orm/functions/median.py index a02104477d1..880b005baf6 100644 --- a/ingestion/src/metadata/profiler/orm/functions/median.py +++ b/ingestion/src/metadata/profiler/orm/functions/median.py @@ -185,3 +185,10 @@ def _(elements, compiler, **kwargs): # pylint: disable=unused-argument """.format( col=col, table=table, percentile=percentile ) + + +@compiles(MedianFn, Dialects.Doris) +def _(elements, compiler, **kwargs): + col = compiler.process(elements.clauses.clauses[0]) + percentile = elements.clauses.clauses[2].value + return "percentile_approx(%s, %.2f)" % (col, percentile) diff --git a/ingestion/src/metadata/profiler/orm/registry.py b/ingestion/src/metadata/profiler/orm/registry.py index 46a4ea562ae..7e124e96865 100644 --- a/ingestion/src/metadata/profiler/orm/registry.py +++ b/ingestion/src/metadata/profiler/orm/registry.py @@ -56,6 +56,7 @@ class Dialects(Enum): ClickHouse = "clickhouse" Databricks = "databricks" Db2 = "db2" + Doris = "pydoris" Druid = "druid" DynamoDB = "dynamoDB" Glue = "glue"