Extractor requires Sitecore.ExperienceAnalytics.Aggregation.config to be enabled
We have our Sitecore installation distributed across Content Delivery, Content Mgmt, and Processing/Reporting servers. Normally that config file is only enabled on the Processing server. With that disabled on the Content Mgmt server we get this exception:
System.InvalidOperationException: experienceAnalytics/aggregation/services/dimensionDefinitionService
at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.CreateObject[T](String xpath)
at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.Repositories.<>c.<.cctor>b__23_0()
at ExperienceExtractor.Components.Parsing.Fields.XaFactoryHelpers.ParseDimension(ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor.Components\Parsing\Fields\XaFactoryHelpers.cs:line 67
at ExperienceExtractor.Components.Parsing.Fields.XaFieldFactory.Parse(JobParser parser, ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor.Components\Parsing\Fields\XaFieldFactory.cs:line 27
at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor\Api\Parsing\JsonJobParser.cs:line 67
at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Linq.Enumerable.<ConcatIterator>d__581.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at ExperienceExtractor.Api.Parsing.JobParser.ParseTableDefinition(ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor\Api\Parsing\JobParser.cs:line 97 at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at ExperienceExtractor.Components.Parsing.Tables.DefaultTableFactory.Parse(JobParser parser, ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor.Components\Parsing\Tables\DefaultTableFactory.cs:line 27 at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor\Api\Parsing\JsonJobParser.cs:line 67 at ExperienceExtractor.Api.Jobs.Job.<>c__DisplayClass73_0.<Run>b__0(Int32 i) in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor\Api\Jobs\Job.cs:line 133 at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at ExperienceExtractor.Api.Jobs.Job.Run() in C:\Projects\ExperienceExtractor\experience-extractor\src\ExperienceExtractor\Api\Jobs\Job.cs:line 119
{ "$id": "1", "$type": "ExperienceExtractor.Api.Jobs.JobInfo, ExperienceExtractor", "Id": "2670613f-b055-41a5-b94b-319a27d4e25f", "Created": "2017-05-09T13:40:49.5401218-05:00", "Ended": "2017-05-09T13:40:49.6001218-05:00", "ItemsProcessed": 0, "RowsCreated": 0, "Progress": null, "Status": "Failed", "StatusText": "System.InvalidOperationException: experienceAnalytics/aggregation/services/dimensionDefinitionService\r\n at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.CreateObject[T](String xpath)\r\n at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.Repositories.<>c.<.cctor>b__23_0()\r\n at ExperienceExtractor.Components.Parsing.Fields.XaFactoryHelpers.ParseDimension(ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Fields\\XaFactoryHelpers.cs:line 67\r\n at ExperienceExtractor.Components.Parsing.Fields.XaFieldFactory.Parse(JobParser parser, ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Fields\\XaFieldFactory.cs:line 27\r\n at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JsonJobParser.cs:line 67\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Enumerable.<ConcatIterator>d__58`1.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Api.Parsing.JobParser.ParseTableDefinition(ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JobParser.cs:line 97\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Components.Parsing.Tables.DefaultTableFactory.Parse(JobParser parser, ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Tables\\DefaultTableFactory.cs:line 27\r\n at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JsonJobParser.cs:line 67\r\n at ExperienceExtractor.Api.Jobs.Job.<>c__DisplayClass73_0.<Run>b__0(Int32 i) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Jobs\\Job.cs:line 133\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Api.Jobs.Job.Run() in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Jobs\\Job.cs:line 119", "SizeLimitExceeded": false, "Url": "/sitecore/experienceextractor/jobs/2670613f-b055-41a5-b94b-319a27d4e25f", "Specification": "{\r\n \"source\": {\r\n \"xdb\": {\r\n \"filters\": [\r\n {\r\n \"sample\": 0.3\r\n },\r\n {\r\n \"daterange\": {\r\n \"start\": \"2017-01-01Z\",\r\n \"end\": \"2017-05-09Z\"\r\n }\r\n }\r\n ]\r\n }\r\n },\r\n \"mapper\": {\r\n \"tables\": [\r\n {\r\n \"name\": \"Visits\",\r\n \"fields\": [\r\n {\r\n \"date\": \"Date\"\r\n },\r\n {\r\n \"xa\": \"Visits/By campaign\"\r\n },\r\n \"facts\"\r\n ],\r\n \"tables\": []\r\n }\r\n ]\r\n },\r\n \"postprocessors\": [\r\n \"msaccess\"\r\n ]\r\n}", "LastException": "System.InvalidOperationException: experienceAnalytics/aggregation/services/dimensionDefinitionService\r\n at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.CreateObject[T](String xpath)\r\n at Sitecore.ExperienceAnalytics.Aggregation.AggregationContainer.Repositories.<>c.<.cctor>b__23_0()\r\n at ExperienceExtractor.Components.Parsing.Fields.XaFactoryHelpers.ParseDimension(ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Fields\\XaFactoryHelpers.cs:line 67\r\n at ExperienceExtractor.Components.Parsing.Fields.XaFieldFactory.Parse(JobParser parser, ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Fields\\XaFieldFactory.cs:line 27\r\n at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JsonJobParser.cs:line 67\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Enumerable.<ConcatIterator>d__58`1.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Api.Parsing.JobParser.ParseTableDefinition(ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JobParser.cs:line 97\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Components.Parsing.Tables.DefaultTableFactory.Parse(JobParser parser, ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor.Components\\Parsing\\Tables\\DefaultTableFactory.cs:line 27\r\n at ExperienceExtractor.Api.Parsing.JsonJobParser.Parse[TType](ParseState state) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Parsing\\JsonJobParser.cs:line 67\r\n at ExperienceExtractor.Api.Jobs.Job.<>c__DisplayClass73_0.<Run>b__0(Int32 i) in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Jobs\\Job.cs:line 133\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n at ExperienceExtractor.Api.Jobs.Job.Run() in C:\\Projects\\ExperienceExtractor\\experience-extractor\\src\\ExperienceExtractor\\Api\\Jobs\\Job.cs:line 119" }
In addition to the aggregation config requirement, the module also requires all Speak related configs to be enabled. These config files are usually disabled on the processing Sitecore roles, so it can lead to some confusion as to where this module should be installed (CM, Processing, CM+Processing only, etc).
I ended up installing it on our processing role and enabling the Speak configs.