-
Notifications
You must be signed in to change notification settings - Fork 13.8k
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
[druid] Allow custom druid postaggregators #3146
[druid] Allow custom druid postaggregators #3146
Conversation
Could please fix tests with python2.7 and remove all the other unrelated changes you did in the PR please? |
10b5bfc
to
83618a4
Compare
Not sure what happened with that, it wasn't in my commit history. Fixed via rebase, will fix remaining python2 issues shortly, when I can get duplication on my local machine. |
83618a4
to
63df8b2
Compare
@xrmx, sorry for the busted PR earlier. This should be good to go (assuming my local testing and Travis agree). I pulled the helper function out so I could actually unit test the dependent-data extraction/naive query planning. It'll be a significantly larger scope of testing changes if I put that back. |
Attempting to rerun travis to get coveralls passing. |
e95c072
to
d63c1a9
Compare
@xrmx or @mistercrunch PTAL This PR has passed Travis https://travis-ci.org/apache/incubator-superset/builds/254976199 (aside from the untouched JS build) and coveralls looks good: https://coveralls.io/builds/12486731 |
Coverage increased (+0.3%) to 69.565% when pulling d63c1a965857dc3ddc97e2e266942a40d681feca on brianwolfe:wolfe--add-postagg-escape-hatch into a141695 on apache:master. |
Also, fix the postaggregation for approxHistogram quantiles so it adds the dependent field and that can show up in the graphs/tables. In general, postAggregators add significant power, we should probably support including custom postAggregators. Plywood has standard postAggregators here, and a customAggregator escape hatch that allows you to define custom postAggregators. This commit adds a similar capability for Superset and a additional field/fields/fieldName breakdown of the typical naming for dependent aggregations, which should make it significantly easier to develop approxHistogram and custom postAggregation-required dashboards.
d63c1a9
to
96cfbfe
Compare
Resetting travis build again. Hopefully this all passes so that this can be merged in. |
1 similar comment
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.
This is neat, thanks for the PR!
So can post aggregators build upon other post aggregators? Seems like it's supported here and want to make sure Druid allows for that.
superset/connectors/druid/models.py
Outdated
_fields = _conf.get('fields', []) | ||
print(_conf) | ||
_type = _conf.get('type') | ||
_field = _conf.get('field', None) |
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.
, None
is implicit, that's the default behavior
superset/connectors/druid/models.py
Outdated
post_aggs[metric_name] = Postaggregator( | ||
mconf.get('fn', "/"), | ||
mconf.get('fields', []), | ||
mconf.get('name', '')) | ||
else: | ||
post_aggs[metric_name] = Postaggregator( | ||
None, |
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.
it would help readability to use keyword args here
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.
fixed by making a CustomPostAggregator class that encompasses this logic. Should make more sense that way.
superset/connectors/druid/models.py
Outdated
post_aggs[metric_name].post_aggregator = mconf | ||
return all_metrics, post_aggs | ||
|
||
def run_query( # noqa / druid |
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.
I'm not sure why git is getting the diffing all wrong here, things are not lining up. Makes it hard to see what has changed in this section. Maybe moving _metrics_and_post_aggs
higher / lower in the class definition might help git diffing it right?
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.
moved up to other static methods.
superset/connectors/druid/models.py
Outdated
None, | ||
mconf.get('name', '')) | ||
post_aggs[metric_name].post_aggregator = mconf | ||
return all_metrics, post_aggs |
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.
I'm never a big fan of returning tuples but I think it's ok in this case
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.
yeah, for an internal api, I feel like it's kinda defensible.
superset/connectors/druid/models.py
Outdated
'quantile', 'quantiles']: | ||
field_names.append(_conf.get('fieldName', '')) | ||
|
||
if _field is not None: |
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.
if _field:
is the pythonesque convention
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.
I suppose. I prefer to be explicit when I care about None vs. when I want to reject all falsy values. https://docs.python.org/2.4/lib/truth.html
I'll change the PR.
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.
superset/connectors/druid/models.py
Outdated
if _field is not None: | ||
field_names += recursive_get_fields(_field) | ||
|
||
if _fields is not None: |
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.
why not use the same if block as the one right above this one?
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.
_field vs _fields.
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.
this is mostly a matter of supporting a newer and older postAggregators that have different customs for storing the dependent fields.
* break out CustomPostAggregator into separate class. This just cleans up the creation of the postaggregator a little bit. * minor style issues. * move the function around so the git diff is more readable
d18b063
to
9a52e98
Compare
@mistercrunch Yes, postAggregators can reference other postAggregators. The dataSketches library is rather incredible if you haven't looked at it before: https://datasketches.github.io/ They combine PostAggregators extensively to compute interesting results. Typically they are combined by FieldReference, but not always. In general, we'd probably want a real query planner here, but this allows us to use approxHistograms, dataSketches and other libraries without friction for now. |
1 similar comment
1 similar comment
This LGTM at this point. We'll need to validate in staging that existing slices that make use of postaggregators still compute well. |
Fixing the damn build (apache#3179) * Fixing the build * Going deeper [bugfix] only filterable columns should show up in FilterBox list (apache#3105) * [bugfix] only filterable columns should show up in FilterBox list * Touchups Datasource cannot be empty (apache#3035) add title description to model view (apache#3045) * add title description to model view * add missing import Add 'show/hide totals' option to pivot table vis (apache#3101) [bugfix] numeric value for date fields in table viz (apache#3036) Bug was present only when using the NOT GROUPED BY option fixes apache#3027 fix hive.fetch_logs (apache#2968) add Zalando to the list of organizations (apache#3171) docs: fixup installation examples code indentation (apache#3169) [bugfix] fix bar order (apache#3180) [bugfix] visualize flow error: 'Metric x is not valid' (apache#3181) The metric name in the frontend doesn't match the one generated on the backend. It turns out the explore view will default to the first metric so specifying one isn't needed. Fix the segment interval for pulling metadata (apache#3174) The end of the interval would be on the truncated today date, which means that you will exclude today. If your realtime ingestion job runs shorter than a day, the metadata cannot be pulled from the druid cluster. Bump cryptography to 1.9 (apache#3065) As 1.7.2 doesn't compile here with openssl 1.1.0f Escaping the user's SQL in the explore view (apache#3186) * Escaping the user's SQL in the explore view When executing SQL from SQL Lab, we use a lower level API to the database which doesn't require escaping the SQL. When going through the explore view, the stack chain leading to the same method may need escaping depending on how the DBAPI driver is written, and that is the case for Presto (and perhaps other drivers). * Using regex to avoid doubling doubles [sqllab] improve Hive support (apache#3187) * [sqllab] improve Hive support * Fix "Transport not open" bug * Getting progress bar to show * Bump pyhive to 0.4.0 * Getting [Track Job] button to show * Fix testzz Add BigQuery engine specifications (apache#3193) As contributed by @mxmzdlv on issue apache#945 [bugfix] fix merge conflict that broke Hive support (apache#3196) Adding 'apache' to docs (apache#3194) [druid] Allow custom druid postaggregators (apache#3146) * [druid] Allow custom druid postaggregators Also, fix the postaggregation for approxHistogram quantiles so it adds the dependent field and that can show up in the graphs/tables. In general, postAggregators add significant power, we should probably support including custom postAggregators. Plywood has standard postAggregators here, and a customAggregator escape hatch that allows you to define custom postAggregators. This commit adds a similar capability for Superset and a additional field/fields/fieldName breakdown of the typical naming for dependent aggregations, which should make it significantly easier to develop approxHistogram and custom postAggregation-required dashboards. * [druid] Minor style cleanup in tests file. * [druid] Apply code review suggestions * break out CustomPostAggregator into separate class. This just cleans up the creation of the postaggregator a little bit. * minor style issues. * move the function around so the git diff is more readable add combine config for metrics in pivot table (apache#3086) * add combine config for metrics in pivot table * change method to stack/unstack * update backendSync Autofocus search input in VizTypeControl modal onEnter (apache#2929) Speed up JS build time (apache#3203) Also bumping a few related libs JS Translation JS translations js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) [docs] update url in CONTRIBUTING.md (apache#3212) [sqllab/cosmetics] add margin-top for labels in query history (apache#3222) [explore] nvd3 sort values in rich tooltip (apache#3197) [sqllab] fix UI shows 'The query returned no results' momentarily (apache#3214) this is visible when running async queries between the fetching and success state as the rows are getting cached in the component [explore] DatasourceControl to pick datasource in modal (apache#3210) * [explore] DatasourceControl to pick datasource in modal Makes it easier to change datasource, also makes it such that the list of all datasources doesn't need to be loaded upfront. * Adding more metadata
* Chinese page * Using react-intl-universal to improve multi language in react page * Using react-intl-universal to improve multi language in react page * react_intl_universal * change * change * change * change * change * change * change * merge * multiple page in js * merge * merge * merge * merge * Js Translations * JS Translation * JS Translations * Js translation * JS translations * JS translations * Js translaion * JS en Translation * JS Translation * upgrade document Fixing the damn build (#3179) * Fixing the build * Going deeper [bugfix] only filterable columns should show up in FilterBox list (#3105) * [bugfix] only filterable columns should show up in FilterBox list * Touchups Datasource cannot be empty (#3035) add title description to model view (#3045) * add title description to model view * add missing import Add 'show/hide totals' option to pivot table vis (#3101) [bugfix] numeric value for date fields in table viz (#3036) Bug was present only when using the NOT GROUPED BY option fixes #3027 fix hive.fetch_logs (#2968) add Zalando to the list of organizations (#3171) docs: fixup installation examples code indentation (#3169) [bugfix] fix bar order (#3180) [bugfix] visualize flow error: 'Metric x is not valid' (#3181) The metric name in the frontend doesn't match the one generated on the backend. It turns out the explore view will default to the first metric so specifying one isn't needed. Fix the segment interval for pulling metadata (#3174) The end of the interval would be on the truncated today date, which means that you will exclude today. If your realtime ingestion job runs shorter than a day, the metadata cannot be pulled from the druid cluster. Bump cryptography to 1.9 (#3065) As 1.7.2 doesn't compile here with openssl 1.1.0f Escaping the user's SQL in the explore view (#3186) * Escaping the user's SQL in the explore view When executing SQL from SQL Lab, we use a lower level API to the database which doesn't require escaping the SQL. When going through the explore view, the stack chain leading to the same method may need escaping depending on how the DBAPI driver is written, and that is the case for Presto (and perhaps other drivers). * Using regex to avoid doubling doubles [sqllab] improve Hive support (#3187) * [sqllab] improve Hive support * Fix "Transport not open" bug * Getting progress bar to show * Bump pyhive to 0.4.0 * Getting [Track Job] button to show * Fix testzz Add BigQuery engine specifications (#3193) As contributed by @mxmzdlv on issue #945 [bugfix] fix merge conflict that broke Hive support (#3196) Adding 'apache' to docs (#3194) [druid] Allow custom druid postaggregators (#3146) * [druid] Allow custom druid postaggregators Also, fix the postaggregation for approxHistogram quantiles so it adds the dependent field and that can show up in the graphs/tables. In general, postAggregators add significant power, we should probably support including custom postAggregators. Plywood has standard postAggregators here, and a customAggregator escape hatch that allows you to define custom postAggregators. This commit adds a similar capability for Superset and a additional field/fields/fieldName breakdown of the typical naming for dependent aggregations, which should make it significantly easier to develop approxHistogram and custom postAggregation-required dashboards. * [druid] Minor style cleanup in tests file. * [druid] Apply code review suggestions * break out CustomPostAggregator into separate class. This just cleans up the creation of the postaggregator a little bit. * minor style issues. * move the function around so the git diff is more readable add combine config for metrics in pivot table (#3086) * add combine config for metrics in pivot table * change method to stack/unstack * update backendSync Autofocus search input in VizTypeControl modal onEnter (#2929) Speed up JS build time (#3203) Also bumping a few related libs JS Translation JS translations js translation fix issue 3204 (#3205) [bugfix] capture Hive job_id pre-url transformation (#3213) js translation fix issue 3204 (#3205) [bugfix] capture Hive job_id pre-url transformation (#3213) [docs] update url in CONTRIBUTING.md (#3212) [sqllab/cosmetics] add margin-top for labels in query history (#3222) [explore] nvd3 sort values in rich tooltip (#3197) [sqllab] fix UI shows 'The query returned no results' momentarily (#3214) this is visible when running async queries between the fetching and success state as the rows are getting cached in the component [explore] DatasourceControl to pick datasource in modal (#3210) * [explore] DatasourceControl to pick datasource in modal Makes it easier to change datasource, also makes it such that the list of all datasources doesn't need to be loaded upfront. * Adding more metadata * Js translation * js tran * js trans * js trans * js tran * js trans * js trans * js tran * js translation * js trans * js translation * try load language pack async * Backend translations things * create language pack inside common data * performance improvement for js i18n. - js bundle should not contain localized content - we populate translation content from server-side, in boostrap.common.language_pack - in client-side, use promise to wrap around translation content. text will be translated after translation content arrived/parsed. - fix linting * fix Timer unit test * 1. add global hook for all tests, to make translation pack avaialble before each test starts. 2. fix unit test for Timer component 3. remove noused method get_locale, and modules 4. fix page reload after user change page language * parse and build i18n dictionary as a module * fix sync-backend task, which should run without DOM
* Chinese page * Using react-intl-universal to improve multi language in react page * Using react-intl-universal to improve multi language in react page * react_intl_universal * change * change * change * change * change * change * change * merge * multiple page in js * merge * merge * merge * merge * Js Translations * JS Translation * JS Translations * Js translation * JS translations * JS translations * Js translaion * JS en Translation * JS Translation * upgrade document Fixing the damn build (apache#3179) * Fixing the build * Going deeper [bugfix] only filterable columns should show up in FilterBox list (apache#3105) * [bugfix] only filterable columns should show up in FilterBox list * Touchups Datasource cannot be empty (apache#3035) add title description to model view (apache#3045) * add title description to model view * add missing import Add 'show/hide totals' option to pivot table vis (apache#3101) [bugfix] numeric value for date fields in table viz (apache#3036) Bug was present only when using the NOT GROUPED BY option fixes apache#3027 fix hive.fetch_logs (apache#2968) add Zalando to the list of organizations (apache#3171) docs: fixup installation examples code indentation (apache#3169) [bugfix] fix bar order (apache#3180) [bugfix] visualize flow error: 'Metric x is not valid' (apache#3181) The metric name in the frontend doesn't match the one generated on the backend. It turns out the explore view will default to the first metric so specifying one isn't needed. Fix the segment interval for pulling metadata (apache#3174) The end of the interval would be on the truncated today date, which means that you will exclude today. If your realtime ingestion job runs shorter than a day, the metadata cannot be pulled from the druid cluster. Bump cryptography to 1.9 (apache#3065) As 1.7.2 doesn't compile here with openssl 1.1.0f Escaping the user's SQL in the explore view (apache#3186) * Escaping the user's SQL in the explore view When executing SQL from SQL Lab, we use a lower level API to the database which doesn't require escaping the SQL. When going through the explore view, the stack chain leading to the same method may need escaping depending on how the DBAPI driver is written, and that is the case for Presto (and perhaps other drivers). * Using regex to avoid doubling doubles [sqllab] improve Hive support (apache#3187) * [sqllab] improve Hive support * Fix "Transport not open" bug * Getting progress bar to show * Bump pyhive to 0.4.0 * Getting [Track Job] button to show * Fix testzz Add BigQuery engine specifications (apache#3193) As contributed by @mxmzdlv on issue apache#945 [bugfix] fix merge conflict that broke Hive support (apache#3196) Adding 'apache' to docs (apache#3194) [druid] Allow custom druid postaggregators (apache#3146) * [druid] Allow custom druid postaggregators Also, fix the postaggregation for approxHistogram quantiles so it adds the dependent field and that can show up in the graphs/tables. In general, postAggregators add significant power, we should probably support including custom postAggregators. Plywood has standard postAggregators here, and a customAggregator escape hatch that allows you to define custom postAggregators. This commit adds a similar capability for Superset and a additional field/fields/fieldName breakdown of the typical naming for dependent aggregations, which should make it significantly easier to develop approxHistogram and custom postAggregation-required dashboards. * [druid] Minor style cleanup in tests file. * [druid] Apply code review suggestions * break out CustomPostAggregator into separate class. This just cleans up the creation of the postaggregator a little bit. * minor style issues. * move the function around so the git diff is more readable add combine config for metrics in pivot table (apache#3086) * add combine config for metrics in pivot table * change method to stack/unstack * update backendSync Autofocus search input in VizTypeControl modal onEnter (apache#2929) Speed up JS build time (apache#3203) Also bumping a few related libs JS Translation JS translations js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) [docs] update url in CONTRIBUTING.md (apache#3212) [sqllab/cosmetics] add margin-top for labels in query history (apache#3222) [explore] nvd3 sort values in rich tooltip (apache#3197) [sqllab] fix UI shows 'The query returned no results' momentarily (apache#3214) this is visible when running async queries between the fetching and success state as the rows are getting cached in the component [explore] DatasourceControl to pick datasource in modal (apache#3210) * [explore] DatasourceControl to pick datasource in modal Makes it easier to change datasource, also makes it such that the list of all datasources doesn't need to be loaded upfront. * Adding more metadata * Js translation * js tran * js trans * js trans * js tran * js trans * js trans * js tran * js translation * js trans * js translation * try load language pack async * Backend translations things * create language pack inside common data * performance improvement for js i18n. - js bundle should not contain localized content - we populate translation content from server-side, in boostrap.common.language_pack - in client-side, use promise to wrap around translation content. text will be translated after translation content arrived/parsed. - fix linting * fix Timer unit test * 1. add global hook for all tests, to make translation pack avaialble before each test starts. 2. fix unit test for Timer component 3. remove noused method get_locale, and modules 4. fix page reload after user change page language * parse and build i18n dictionary as a module * fix sync-backend task, which should run without DOM
* Chinese page * Using react-intl-universal to improve multi language in react page * Using react-intl-universal to improve multi language in react page * react_intl_universal * change * change * change * change * change * change * change * merge * multiple page in js * merge * merge * merge * merge * Js Translations * JS Translation * JS Translations * Js translation * JS translations * JS translations * Js translaion * JS en Translation * JS Translation * upgrade document Fixing the damn build (apache#3179) * Fixing the build * Going deeper [bugfix] only filterable columns should show up in FilterBox list (apache#3105) * [bugfix] only filterable columns should show up in FilterBox list * Touchups Datasource cannot be empty (apache#3035) add title description to model view (apache#3045) * add title description to model view * add missing import Add 'show/hide totals' option to pivot table vis (apache#3101) [bugfix] numeric value for date fields in table viz (apache#3036) Bug was present only when using the NOT GROUPED BY option fixes apache#3027 fix hive.fetch_logs (apache#2968) add Zalando to the list of organizations (apache#3171) docs: fixup installation examples code indentation (apache#3169) [bugfix] fix bar order (apache#3180) [bugfix] visualize flow error: 'Metric x is not valid' (apache#3181) The metric name in the frontend doesn't match the one generated on the backend. It turns out the explore view will default to the first metric so specifying one isn't needed. Fix the segment interval for pulling metadata (apache#3174) The end of the interval would be on the truncated today date, which means that you will exclude today. If your realtime ingestion job runs shorter than a day, the metadata cannot be pulled from the druid cluster. Bump cryptography to 1.9 (apache#3065) As 1.7.2 doesn't compile here with openssl 1.1.0f Escaping the user's SQL in the explore view (apache#3186) * Escaping the user's SQL in the explore view When executing SQL from SQL Lab, we use a lower level API to the database which doesn't require escaping the SQL. When going through the explore view, the stack chain leading to the same method may need escaping depending on how the DBAPI driver is written, and that is the case for Presto (and perhaps other drivers). * Using regex to avoid doubling doubles [sqllab] improve Hive support (apache#3187) * [sqllab] improve Hive support * Fix "Transport not open" bug * Getting progress bar to show * Bump pyhive to 0.4.0 * Getting [Track Job] button to show * Fix testzz Add BigQuery engine specifications (apache#3193) As contributed by @mxmzdlv on issue apache#945 [bugfix] fix merge conflict that broke Hive support (apache#3196) Adding 'apache' to docs (apache#3194) [druid] Allow custom druid postaggregators (apache#3146) * [druid] Allow custom druid postaggregators Also, fix the postaggregation for approxHistogram quantiles so it adds the dependent field and that can show up in the graphs/tables. In general, postAggregators add significant power, we should probably support including custom postAggregators. Plywood has standard postAggregators here, and a customAggregator escape hatch that allows you to define custom postAggregators. This commit adds a similar capability for Superset and a additional field/fields/fieldName breakdown of the typical naming for dependent aggregations, which should make it significantly easier to develop approxHistogram and custom postAggregation-required dashboards. * [druid] Minor style cleanup in tests file. * [druid] Apply code review suggestions * break out CustomPostAggregator into separate class. This just cleans up the creation of the postaggregator a little bit. * minor style issues. * move the function around so the git diff is more readable add combine config for metrics in pivot table (apache#3086) * add combine config for metrics in pivot table * change method to stack/unstack * update backendSync Autofocus search input in VizTypeControl modal onEnter (apache#2929) Speed up JS build time (apache#3203) Also bumping a few related libs JS Translation JS translations js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) js translation fix issue 3204 (apache#3205) [bugfix] capture Hive job_id pre-url transformation (apache#3213) [docs] update url in CONTRIBUTING.md (apache#3212) [sqllab/cosmetics] add margin-top for labels in query history (apache#3222) [explore] nvd3 sort values in rich tooltip (apache#3197) [sqllab] fix UI shows 'The query returned no results' momentarily (apache#3214) this is visible when running async queries between the fetching and success state as the rows are getting cached in the component [explore] DatasourceControl to pick datasource in modal (apache#3210) * [explore] DatasourceControl to pick datasource in modal Makes it easier to change datasource, also makes it such that the list of all datasources doesn't need to be loaded upfront. * Adding more metadata * Js translation * js tran * js trans * js trans * js tran * js trans * js trans * js tran * js translation * js trans * js translation * try load language pack async * Backend translations things * create language pack inside common data * performance improvement for js i18n. - js bundle should not contain localized content - we populate translation content from server-side, in boostrap.common.language_pack - in client-side, use promise to wrap around translation content. text will be translated after translation content arrived/parsed. - fix linting * fix Timer unit test * 1. add global hook for all tests, to make translation pack avaialble before each test starts. 2. fix unit test for Timer component 3. remove noused method get_locale, and modules 4. fix page reload after user change page language * parse and build i18n dictionary as a module * fix sync-backend task, which should run without DOM
Fix the postaggregation for approxHistogram quantiles so it adds
the dependent field and that can show up in the graphs/tables.
In general, postAggregators add significant power, in developing custom
postAggregators, I've run into barriers integrating with Superset. Plywood
and other Druid query planners typically have escape hatches to specify
custom postAggregators without requiring a custom type definition for each
one.
This commit adds a similar capability for Superset and a additional
field/fields/fieldName breakdown of the typical naming for dependent
aggregations, which should make it significantly easier to develop
approxHistogram and custom postAggregation-required dashboards.
This should be able to supercede:
#2345
since it is strictly more general.
This should at least pull in the right dependent metrics and allow some custom aggregations and quantile/histogram links. @mistercrunch