You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ossie.apache.org by "丁烨(昆吾)" <ku...@alibaba-inc.com> on 2026/08/12 02:21:56 UTC
[DISCUSS] Contributing a converter for Alibaba Cloud Hologres Semantic View
Hi all,
I would like to contribute a bidirectional converter between Apache Ossie and
Alibaba Cloud Hologres Semantic View, a feature available since Hologres V5.0.0.
Following CONTRIBUTING.md, I am raising it here for discussion before it is
reviewed for merge.
Issue: https://github.com/apache/ossie/issues/319 <https://github.com/apache/ossie/issues/319 >
PR: https://github.com/apache/ossie/pull/320 <https://github.com/apache/ossie/pull/320 >
Background
----------
A Hologres Semantic View is an in-database object declaring physical tables,
their relationships, business dimensions and metrics. Queries reference
dimensions and AGG(metric) rather than repeating joins and aggregations, and the
engine aggregates each metric within its own minimal join subtree so a
one-to-many join cannot inflate a total. Hologres also publishes a structured
YAML model for every view, intended for BI tools and NL2SQL agents. The
relationship model maps closely onto Ossie's existing FK-pair semantics: the
many side holds the foreign key and the REFERENCES target must be the referenced
table's primary key.
Scope and status
----------------
The PR touches only converters/hologres/, a path-filtered CI workflow, and one
row each in converters/README.md and ROADMAP.md. It contains no specification
changes. I have verified it end to end against a real Hologres 5.0.0 instance:
the generated DDL executes, the resulting views return correct results
(including the fan-out case), and importing Hologres' own readback of the DDL
reproduces the original Ossie model.
One question I would value the community's view on
--------------------------------------------------
The two directions are asymmetric. Import consumes the model_yaml Hologres
publishes, which is ordinary YAML. But export emits CREATE SEMANTIC VIEW *SQL
DDL text*, because Hologres has no YAML import function -- DDL is the only way to
create a view. This would be the first converter in the repo whose output is not
a data document, so I would like to know whether that is acceptable or whether
the community would prefer a different shape.
The alternatives I considered, and why I did not choose them, are written up in
the issue. Briefly: emitting the model_yaml shape instead would be symmetrical
with the other spokes but produce a file Hologres cannot consume. I checked the
CLI plugin contract and it does not appear to constrain the export format
(convert.from_ossie declares only "invoke", with no output-format field), but
runConvert is still a stub, so that could change. Since Snowflake Semantic Views
are also created through DDL, whatever is decided here likely sets a precedent.
I am happy to follow the community's preference rather than assume mine.
Disclosure: this implementation was produced with AI assistance. Per the ASF
Generative Tooling Guidance, I have reviewed the code and take full
responsibility for it; the behaviour above was verified by me against a live
instance.
Thanks,
Ye Ding