Commit Graph

9517 Commits

Author SHA1 Message Date
Clint Wylie aaefdb3386 fix group-by v2 BufferArrayGrouper for empty multi-value dimension row (#7794)
* fix groupby v2 BufferArrayGrouper

* better name test

* fix sql compatible null handling array grouper bug

* another test
2019-05-30 12:59:59 -07:00
Gian Merlino 58a571ccda
SQL: Use SegmentId instead of DataSegment as set/map keys. (#7796)
Recently we've been talking about using SegmentIds as map keys rather than
DataSegments, because its sense of equality is more well-defined. This is
a refactor that does this in the druid-sql module, which mostly involves
DruidSchema and some related classes. It should have no user-visible effects.
2019-05-30 12:58:36 -07:00
Gian Merlino 8649b8ab4c
SQL: Allow select-sort-project query shapes. (#7769)
* SQL: Allow select-sort-project query shapes.

Fixes #7768.

Design changes:

- In PartialDruidQuery, allow projection after select + sort by removing
  the SELECT_SORT query stage and instead allowing the SORT and
  SORT_PROJECT stages to apply either after aggregation or after a plain
  non-aggregating select. This is different from prior behavior, where
  SORT and SORT_PROJECT were only considered valid after aggregation
  stages. This logic change is in the "canAccept" method.
- In DruidQuery, represent either kind of sorting with a single "Sorting"
  class (instead of DefaultLimitSpec). The Sorting class is still
  convertible into a DefaultLimitSpec, but is also convertible into the
  sorting parameters accepted by a Scan query.
- In DruidQuery, represent post-select and post-sorting projections with
  a single "Projection" class. This obsoletes the SortProject and
  SelectProjection classes, and simplifies the DruidQuery by allowing us
  to move virtual-column and post-aggregator-creation logic into the
  new Projection class.
- Split "DruidQuerySignature" into RowSignature and VirtualColumnRegistry.
  This effectively means that instead of having mutable and immutable
  versions of DruidQuerySignature, we instead of RowSignature (always
  immutable) and VirtualColumnRegistry (always mutable, but sometimes
  null). This change wasn't required, but IMO it this makes the logic
  involving them easier to follow, and makes it more clear when the
  virtual column registry is active and when it's not.

Other changes:

- ConvertBoundsToSelectors now just accepts a RowSignature, but we
  use the VirtualColumnRegistry.getFullRowSignature() method to get
  a signature that includes all columns, and therefore allows us to
  simplify the logic (no need to special-case virtual columns).
- Add `__time` to the Scan column list if the query is ordering by time.

* Remove unused import.
2019-05-30 12:56:29 -07:00
mcbrewster 245eded350 Web-console: Add run keyboard short cut to sql-control (#7787)
* add run keyboard shortcut

* add allow input
2019-05-29 16:11:59 -07:00
Roman Leventov 782863ed0f Fix some problems reported by PVS-Studio (#7738)
* Fix some problems reported by PVS-Studio

* Address comments
2019-05-29 11:20:45 -07:00
Vadim Ogievetsky b051d6688d bump deps (#7788) 2019-05-29 08:50:06 -07:00
Jihoon Son f9528d6476 Add missing protobuf license (#7785) 2019-05-28 18:09:05 -07:00
Vadim Ogievetsky 96b9b3073c Web console: Adding a server view that can display all servers (#7770)
* adding a server view that can see all servers

* fixing action-cell snapshot test

* dynamic resize on sql view

* remove extra word

* update home view server tile also

* offer more context options

* pass context to explain also
2019-05-28 17:12:50 -07:00
Vadim Ogievetsky 6fdc78abbc fix supervisor resume route (#7782) 2019-05-28 13:22:42 -07:00
Xavier Léauté 58a6f0d5d0 Enable compiling against Java 9+ (tests disabled)
This change only enables compilation to ensure code compiles against
recent Java versions going forward. Tests are still disabled in this
profile until test failures are addressed.
2019-05-27 18:40:19 -07:00
Xavier Léauté 484afe0afb exclude hadoop system dependency
ambari depends on hadoop-annotation. Under linux, it sometimes activates a
maven profile that includes an explicit dependency on ${java.home}/../lib/tools.jar

This change excludes this dependency, since this jar is no longer
included with Java 9. It also seems seems unlikely that we would require
this dependency at runtime, since it is only enabled on some platforms.
2019-05-27 18:40:19 -07:00
Fokko Driesprong e46bdf082e Remove Codehaus references from the tests (#7773) 2019-05-27 10:51:14 -07:00
BIGrey 42cf078843 Fix memory problem (OOM/FGC) when expression is used in metricsSpec (#7716)
* AggregatorUtil should cache parsed expression to avoid memory problem (OOM/FGC) when Expression is used in metricsSpec

* remove debug log check in Parser.parse

* remove cache and use suppliers.memorize
2019-05-27 09:46:17 -07:00
Gian Merlino cf09fbf4ce
Fix LookupSerdeModule double-binding in Coordinator-as-Overlord mode. (#7765)
Fixes #7762.
2019-05-26 15:14:50 -07:00
Jonathan Wei c97eb93e16 Fix dead code in IndexTask.collectIntervalsAndShardSpecs() (#7746) 2019-05-25 10:12:14 -07:00
mcbrewster 7eac685e47 Web-console: add hostname to tasks view (#7758)
* add host name

* change to location

* remove space
2019-05-24 23:18:18 -07:00
Himanshu 2b7bb064b5 remove unused ObjectMapper from DatasourcePathSpec (#7754) 2019-05-24 23:15:40 -07:00
mcbrewster 3a77a3e112 Web-Console: add actions icon to lookups (#7725)
* add lookup-table-action-dialog

* reorder arguments

* remove lookup-table-action-dialog

* fix supervisors table action dialog

* fix imports

* Add host column to task view

* reorder buttons

* remove log

* update snapshots

* remove host

* update snapshots

* remove console log

* remove fragment

* update snapshots and remove space
2019-05-24 22:53:12 -07:00
mcbrewster 5f50f357a4 Web-Console: add go to editor button to tasks and supervisors view (#7705)
* add go to editor button to tasks and supervisors

* fix package.json

* remove intent

* quuick fixes

* fixes

* add getsupervisorjson and gettaskjson

* remove space

* remove gotoloaddata

* fixes

* add error handling

* save

* add loader

* remove initspec

* fixup! add loader

* update snapshots

* remove gotoloaddataview form headerbar.spec
2019-05-24 22:52:26 -07:00
mcbrewster 2b34e1b710 Web console: add log tailing to task log view (#7703)
* add tail dialog checkbox to tasks show-log-component for webconsole

* add check box button css

* add 2 second delay

* left align

* change tail formatting

* use async/await syntax

* add space

* add public prefix

* update jest to reflect changes in show-log

* use sentence case

* update snapshots
2019-05-24 15:34:29 -07:00
mcbrewster d7e3fa510e Web-console: add resizable split screen layout to tasks and servers views (#7723)
* add split scroll layout

* fix dev dependancies

* clean up

* adjust margin

* update jest to reflect ui changes

* fix css

* fix css issues, update npm

* remove scrollable
2019-05-24 15:01:45 -07:00
Jihoon Son 2bf44eb0b4 Missing licenses and notices for source distribution (#7760)
* Add missing licenses and notices

* address comment
2019-05-24 14:47:41 -07:00
Jonathan Wei 83152a7a00 Fix performance-faq and remove insert-segment-to-db redirects (#7759) 2019-05-24 13:20:02 -07:00
Gian Merlino 7ec7257e1d Fix lookup serde on node types that don't load lookups. (#7752)
This includes the router, overlord, middleManager, and coordinator.
Does the following things:

- Loads LookupSerdeModule on MM, overlord, and coordinator.
- Adds LookupExprMacro to LookupSerdeModule, which allows these node
  types to understand that the 'lookup' function exists.
- Adds a test to make sure that LookupSerdeModule works for virtual
  columns, filters, transforms, and dimension specs.

This is implementing the technique discussed on these two issues:

- https://github.com/apache/incubator-druid/issues/7724#issuecomment-494723333
- https://github.com/apache/incubator-druid/pull/7082#discussion_r264888771
2019-05-24 12:30:49 -07:00
Clint Wylie db3792727e use unminified jquery to be more friendly for source releases, fix license stuff (#7751)
* use unminified jquery to be more friendly for source releases, fix license stuff

* other license file

* rats
2019-05-24 11:53:25 -07:00
Jonathan Wei cfb7756c9b Fix references to removed performance FAQ page (#7755) 2019-05-24 11:52:40 -07:00
Jonathan Wei eb0e1a056c Add limit to timeseries docs (#7750) 2019-05-23 19:41:52 -07:00
Jonathan Wei f2e34a76bd Fix TOC clustering example link (#7749) 2019-05-23 19:41:27 -07:00
Clint Wylie eef69619d3 add support for multi-value string dimensions for HllSketch build aggregator (#7730) 2019-05-23 17:07:32 -07:00
Bartosz Ługowski cbdac49ab3 Web console - add enable/disable actions for middle manager workers (#7642)
* Overlord console - add enable/disable button for remote workers.

* Overlord console - add proxy for remote workers API.

* WorkerResourceTest - revert newline change.

* Remote worker proxy tests - remove empty line.

* Refactor remote worker proxy for readability and security

* Rename method in remote task runner tests for readability

* Remove enable/disable button for remote workers from old web console

* Add enable/disable actions for middle manager worker in new web console

* Fix variable type

* Add worker task runner query adapter

* Fix web console tests: segments-view, servers-view

* Fix overlord resource tests
2019-05-23 16:47:23 -07:00
Jonathan Wei ec4d09a02f Remove obsolete isExcluded config from Kerberos authenticator (#7745) 2019-05-23 16:00:05 -07:00
Himanshu daf20b4b86 use memoized supplier for lazy singleton in SeekableStreamIndexTask.java (#7740) 2019-05-23 15:58:38 -07:00
Jonathan Wei 54b3f363c4
Remove unnecessary principal handling in KerberosAuthenticator (#7685) 2019-05-23 13:15:44 -07:00
Clint Wylie 23e96d15d4 allow quantiles merge aggregator to also accept doubles (#7718)
* allow quantiles merge aggregator to also accept doubles

* consolidate dupe

* import
2019-05-23 11:13:41 -07:00
awelsh93 6964ac23a2 Adding influxdb emitter as a contrib extension (#7717)
* Adding influxdb emitter as a contrib extension

* addressing code review comments
2019-05-23 11:11:48 -07:00
Merlin Lee 26fad7e06a Add checkstyle for "Local variable names shouldn't start with capital" (#7681)
* Add checkstyle for "Local variable names shouldn't start with capital"

* Adjust some local variables to constants

* Replace StringUtils.LINE_SEPARATOR with System.lineSeparator()
2019-05-23 18:40:28 +02:00
Jihoon Son eff2be4f8f Remove LegacyKafkaIndexTaskRunner (#7735) 2019-05-23 09:25:35 -07:00
Fangjin Yang 3dec5cd1e4
reorganizing the ToC (#7734) 2019-05-23 09:24:38 -07:00
Gian Merlino 53b6467fc8 SeekableStreamIndexTaskRunner: Lazy init of runner. (#7729)
The main motivation is that this fixes #7724, by making it so the overlord
doesn't try to create a task runner and parser when all it really wants to
do is create a task object and serialize it.
2019-05-22 21:13:57 -07:00
Clint Wylie ffc2397bcd fix AggregatorFactory.finalizeComputation implementations to be ok with null inputs (#7731)
* AggregatorFactory finalizeComputation is nullable with nullable input, make implementations honor this

* fixes
2019-05-22 21:13:09 -07:00
mcbrewster 1b284ca847 add tests to dialogs, compnents and views. Add index files to components and dialogs. add nested file structure (#7669) 2019-05-22 20:36:51 -07:00
gocho1 bd899b9224 add s3 authentication method informations (#7674)
* add s3 authentication method informations

* add druid.s3.fileSessionCredentials related content

* remove authentication parameters to avoid confusion as it is more detailed in S3 Deep Storage page

* streamline s3 docs
2019-05-22 11:46:02 -07:00
Surekha 1fe0de1c96 Fix currSize attribute of historical server type (#7706) 2019-05-21 11:55:58 -07:00
Gian Merlino cbbce955de SQL: Allow NULLs in place of optional arguments in many functions. (#7709)
* SQL: Allow NULLs in place of optional arguments in many functions.

Also adjust SQL docs to describe how to make time literals using
TIME_PARSE (which is now possible in a nicer way).

* Be less forbidden.
2019-05-21 11:54:34 -07:00
Gian Merlino 43c54385f6 SQL: Respect default timezone for TIME_PARSE and TIME_SHIFT. (#7704)
* SQL: Respect default timezone for TIME_PARSE and TIME_SHIFT.

They were inadvertently using UTC rather than the default timezone.
Also, harmonize how time functions handle their parameters.

* Fix tests

* Add another TIME_SHIFT test.
2019-05-21 11:40:44 -07:00
Gian Merlino 69b2ea3ddc SQL: TIME_EXTRACT should have 2 required operands. (#7710)
* SQL: TIME_EXTRACT should have 2 required operands.

Timestamp and time unit are both required.

* Add regression test.
2019-05-21 11:32:36 -07:00
Gian Merlino bcea05e4e8 SQL: Fix exception with OR of impossible filters. (#7707)
Fixes #7671.
2019-05-21 11:32:09 -07:00
Gian Merlino b6941551ae Upgrade various build and doc links to https. (#7722)
* Upgrade various build and doc links to https.

Where it wasn't possible to upgrade build-time dependencies to https,
I kept http in place but used hardcoded checksums or GPG keys to ensure
that artifacts fetched over http are verified properly.

* Switch to https://apache.org.
2019-05-21 11:30:14 -07:00
Xue Yu dd7dace70a Add TIMESTAMPDIFF sql support (#7695)
* add timestampdiff sql support

* feedback address
2019-05-21 08:05:38 -07:00
Vadim Ogievetsky 156322932f Update Druid Console docs for 0.15.0 (#7697)
* Update Druid Console docs for 0.15.0

* SQL -> query

* added links and fix typos
2019-05-21 04:00:42 -07:00