forked from ecoron/snowplow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
1453 lines (1384 loc) · 84.4 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release 70 Bornean Green Magpie (2015-08-19)
--------------------------------------------
Common: added Ruby script to generate unified config.yml and iglu-resolver.json from runner.yml and loader.yml (#1774)
Common: aded postgres.yml to up.playbooks (#1767)
Common: added Vagrant push script to publish Ruby apps (#1784)
Enrich: moved enrichments folder out of EmrEtlRunner (#1574)
Enrich: changed campaign_attribution.json configuration to true (#1608)
EmrEtlRunner & StorageLoader: unified the config file format (#878)
EmrEtlRunner & StorageLoader: added support for compressing enriched events, thanks @danisola! (#1265)
EmrEtlRunner & StorageLoader: now supports environment variables in YML config files, thanks @epantera! (#1215)
EmrEtlRunner: bumped to 0.17.0
EmrEtlRunner: added retry logic for EMR bootstrap timeouts (#354)
EmrEtlRunner: added Snowplow event tracking (#678)
EmrEtlRunner: added tags for monitoring to config.yml (#1163)
EmrEtlRunner: improved hierarchy in config.yml (#1447)
EmrEtlRunner: added Snowplow tracking to config.yml (#1448)
EmrEtlRunner: moved Iglu resolver into dedicated CLI argument (#1542)
EmrEtlRunner: renamed archive step to archive_raw (#1543)
EmrEtlRunner: bumped Sluice to 0.2.2 (#1566)
EmrEtlRunner: removed use of symbols for properties in YAML configuration (#1572)
EmrEtlRunner: allowed nil for config.yml's bootstrap field (#1575)
EmrEtlRunner: simplified trail slash code now that nils are supported (#1588)
EmrEtlRunner: pinned Contracts to 0.7 (#1590)
EmrEtlRunner: now fails job if odd number of lzo files in processing (#1728)
EmrEtlRunner: added an early check that shredded is empty (#1749)
EmrEtlRunner: allowed config to be passed in via stdin (#1772)
EmrEtlRunner: added Rake task to build app (#1786)
EmrEtlRunner: moved Logging module into new Monitoring module (#1797)
EmrEtlRunner: ensured that _SUCCESS file is written last for enriched events in S3 (#1808)
EmrEtlRunner: replaced m1.small with m1.medium in config.yml, thanks @danrama! (#1826)
EmrEtlRunner: recovered from 500 error while checking job status (#1828)
EmrEtlRunner: recovered from IOError while checking job status (#1881)
EmrEtlRunner: changed .ruby-version to "jruby" (#1888)
EmrEtlRunner: now only accepts an array of in buckets (#1910)
EmrEtlRunner: validated output_compression configuration using contract (#1820)
EmrEtlRunner: handled exception when the connection times out when checking the cluster, thanks @danisola! (#1599)
EmrEtlRunner: bumped Elasticity to 6.0.3 (#1939)
Deduplication: added timetracking and updated schema name (#1962)
StorageLoader: bumped to 0.4.0
StorageLoader: allowed config to passed in via stdin (#1773)
StorageLoader: added ability to bundle as a JRuby fat jar (#675)
StorageLoader: started loading Postgres via stdin, thanks @mrwalker! (#624)
StorageLoader: added Snowplow event tracking (#679)
StorageLoader: updated to use EmrEtlRunner's expanded config.yml (#1191)
StorageLoader: pinned Contracts to 0.7 (#1497)
StorageLoader: moved "include Contracts" (#1499)
StorageLoader: renamed archive step to archive_enrich (#1544)
StorageLoader: bumped Sluice to 0.2.2 (#1567)
StorageLoader: removed use of symbols for properties in YAML configuration (#1573)
StorageLoader: added Rake task to build app (#1787)
StorageLoader: scrubbed credentials from stderr (#1918)
StorageLoader: added test suite (#1919)
StorageLoader: ensured that _SUCCESS file is written last for enriched events archived to S3 (#1814)
StorageLoader: started automatically converting "s3n" to "s3" in copy statements (#1937)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/emr_job_started (#1875)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/emr_job_succeeded (#1876)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/emr_job_failed (#1877)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/emr_job_status (#1878)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/jobflow_step_status (#1879)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/load_succeeded (#1884)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/load_failed (#1885)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring.batch/application_context (#1942)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/emr_job_started (#1870)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/emr_job_succeeded (#1871)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/emr_job_failed (#1872)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/emr_job_status (#1873)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/jobflow_step_status (#1874)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/load_succeeded (#1882)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/load_failed (#1883)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring.batch/application_context (#1943)
Release 69 Blue-Bellied Roller (2015-07-24)
-------------------------------------------
Incremental SQL Model: added the new incremental queries (#1857)
Incremental SQL Model: changed how query performance is tracked (#1855)
Incremental SQL Model: added new setup queries (#1853)
Incremental SQL Model: added migration queries (#1852)
Incremental SQL Model: updated the SQL runner playbook (#1851)
Incremental SQL Model: updated diagram (#1850)
Deduplication: added a step that deduplicates events (#1866)
Incremental SQL Model: replaced RANK with ROW_NUMBER (#1867)
Mobile SQL Model: added sessionization and DAU queries (#1891
SQL Models: renamed full and incremental to allow for more models ) (#1892)
StorageLoader: wrote JSON path file for com.snowplowanalytics.snowplow/client_session (#1922)
Redshift: added Redshift DDL for com.snowplowanalytics.snowplow/client_session (#1921)
Release 68 Turquoise Jay (2015-07-23)
-------------------------------------
EmrEtlRunner: bumped to 0.16.0
EmrEtlRunner: bumped Elasticity to 6.0.2 (#1903)
EmrEtlRunner: named the processing bucket in its associated "is not empty" error (#1911)
EmrEtlRunner: made in bucket an array (#1750)
EmrEtlRunner: determined path to Hadoop enrich based on its version (#1789)
EmrEtlRunner: added unit test for add_trailing_slashes function (#1904)
Release 67 Bohemian Waxwing (2015-07-13)
----------------------------------------
Common: added NFS and CORE configuration to Vagrantfile to enhance performance (#1831)
Scala Stream Collector: bumped to 0.5.0
Scala Stream Collector: stdout bad sink now prints to stderr (#1799)
Scala Stream Collector: added splitter for large event arrays (#941)
Scala Stream Collector: increased maximum record size from 50kB to 1MB (#1753)
Scala Stream Collector: added tests for splitting large requests (#1683)
Scala Stream Collector: updated bad rows to include timestamp (#1681)
Scala Stream Collector: handled case where IP is not present (#1680)
Scala Stream Collector: did some reorganisation and refactoring of the project (#1678)
Scala Stream Collector: added json4s dependency (#1673)
Scala Stream Collector: added bad stream (#1502)
Scala Common Enrich: bumped to 0.15.0
Scala Common Enrich: fixed JavascriptScriptEnrichmentSpec test to pass openjdk7 (#1793)
Scala Common Enrich: bumped scala-maxmind-iplookups to 0.3.0 (#1771)
Scala Common Enrich: bumped Scala Forex to 0.3.0 (#1770)
Scala Common Enrich: updated bad rows to include timestamp (#1577)
Scala S3 Sink: removed project from repo (#1672)
Scala Kinesis Enrich: bumped to 0.6.0
Scala Kinesis Enrich: bumped to Scala Common Enrich 0.15.0 (#1685)
Scala Kinesis Enrich: tries to send 503 records (#1756)
Scala Kinesis Enrich: made back-off fields macros (#1745)
Scala Kinesis Enrich: increased maximum record size to 1MB (#1736)
Scala Kinesis Enrich: logging all bad rows (#1722)
Scala Kinesis Enrich: exception installing MaxMind file must terminate (#1711)
Scala Kinesis Enrich: sending Snowplow hearbeat (#1406)
Scala Kinesis Enrich: allowed records of over 1Mb when running in local mode (#1663)
Scala Kinesis Enrich: fixed error when fetching MaxMind file from s3:// URI (#1645)
Scala Kinesis Enrich: sending a warning via Snowplow if no enrichment JSONs are retrieved from DynamoDB (#1621)
Scala Kinesis Enrich: sending failure to sink event to kinesis to Snowplow (#1798)
Scala Kinesis Enrich: etl_tstamp should be Redshift Formatted not raw (#1842)
Kinesis Elasticsearch Sink: bumped to 0.4.0
Kinesis Elasticsearch Sink: removed Scala Common Enrich as an assembly dependency (#1819)
Kinesis Elasticsearch Sink: bumped to Scala Common Enrich 0.15.0 (#1811)
Kinesis Elasticsearch Sink: allowed use of AWS creds instead of DefaultAWSCredentialsProviderChain (#1803)
Kinesis Elasticsearch Sink: app no longer hangs without shutting down (#1743)
Kinesis Elasticsearch Sink: updated the Elasticsearch version (#1734)
Kinesis Elasticsearch Sink: sent event to Snowplow on heartbeat (#1706)
Kinesis Elasticsearch Sink: added Scala Tracker dependency (#1705)
Kinesis Elasticsearch Sink: sending event to Snowplow when unable to write to Elasticsearch (#1704)
Kinesis Elasticsearch Sink: sending event to Snowplow on shutdown (#1703)
Kinesis Elasticsearch Sink: sending event to Snowplow on initialization (#1702)
Kinesis Elasticsearch Sink: initialized bad stream eagerly rather than lazily (#1677)
Kinesis Elasticsearch Sink: updated amazon-kinesis-connectors to 1.1.2 (#1675)
Kinesis Elasticsearch Sink: specifying character encoding in SnowplowElasticsearchTransformer (#1654)
Kinesis Elasticsearch Sink: updated bad rows to include timestamp (#1578)
Kinesis Elasticsearch Sink: moved location fields into elasticsearch section (#1517)
Kinesis Elasticsearch Sink: corrected shredding example in comment (#1276)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/application_warning (#1809)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/heartbeat (#1764)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/sink_write_failed (#1763)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/application_initialized (#1762)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/application_shutdown (#1761)
Redshift: added Redshift DDL for com.snowplowanalytics.monitoring/stream_write_failed (#1844)
Redshift: added Redshift DDL for com.snowplowanalytics.snowplow/web_page (#1835)
Redshift: added migration script for 0.3.0 to 0.6.0 (#1832)
Redshift: added migration script for 0.4.0 to 0.6.0 (#1833)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/application_warning (#1810)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/heartbeat (#1760)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/sink_write_failed (#1759)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/application_initialized (#1758)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/application_shutdown (#1757)
StorageLoader: wrote JSON path file for com.snowplowanalytics.monitoring/stream_write_failed (#1843)
StorageLoader: wrote JSON path file for com.snowplowanalytics.snowplow/web_page (#1836)
Release 66 Oriental Skylark (2015-06-16)
----------------------------------------
Documentation: replaced Hive ETL references with Kinesis Enrich in Scala Hadoop Enrich's README (#1671)
Documentation: fixed links in Scala Common Enrich's README.md, thanks @bigsnarfdude! (#1669)
Scala Tracker: added git submodule (#1724)
Scala Hadoop Enrich: bumped to 1.0.0
Scala Hadoop Enrich: renamed build to snowplow-hadoop-enrich (#1718)
Scala Hadoop Enrich: updated dependencies to Hadoop 2.4 (#1716)
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.14.0 (#1700)
Scala Hadoop Enrich: updated Core2015RefreshSpec to include JavascriptScriptEnrichment (#1746)
Scala Common Enrich: bumped to 0.14.0
Scala Common Enrich: added JavaScript scripting enrichment (#378)
Scala Common Enrich: made IpLookupsEnrichment error message more informative (#1426)
Scala Common Enrich: commons-codec dependency is no longer test-only (#1712)
Scala Common Enrich: bumped commons-lang3 to 3.4 (#1713)
Scala Common Enrich: made mkt_ and refr_ fields TSV safe, thanks @jasonbosco! (#1643)
Scala Common Enrich: updated JodaTime dependency to 2.2 (#1748)
Scala Common Enrich: now handles null message in stripInstanceEtc (#1622)
EmrEtlRunner: bumped to 0.15.0
EmrEtlRunner: now using new scala-hadoop-enrich jar path in Hosted Assets (#1719)
EmrEtlRunner: updated ami_version in config.yml to 3.6.0 (#1651)
EmrEtlRunner: added bootstrap action to prepare AMI 3.x for Snowplow (#1714)
EmrEtlRunner: now setting buffer for processing thrift in core-site.xml (#1715)
EmrEtlRunner: added S3DistpCp step for thrift files in processing (#1647)
EmrEtlRunner: added example javascript_script_config to enrichments folder (#1755)
StorageLoader: wrote JSON Path file for com.mparticle.snowplow/app_event (#1688)
StorageLoader: wrote JSON Path file for com.mparticle.snowplow/social_event (#1690)
StorageLoader: wrote JSON Path file for com.mparticle.snowplow/transaction_event (#1692)
StorageLoader: wrote JSON Path file for a com.mparticle.snowplow/session_context (#1694)
Redshift: added Redshift DDL for a com.mparticle.snowplow/app_event (#1686)
Redshift: added Redshift DDL for a com.mparticle.snowplow/social_event (#1689)
Redshift: added Redshift DDL for a com.mparticle.snowplow/transaction_event (#1691)
Redshift: added Redshift DDL for a com.mparticle.snowplow/session_context (#1693)
Data Modeling: removed restrictions in sessions and visitors-source (#1725)
Release 65 Scarlet Rosefinch (2015-05-08)
-----------------------------------------
Scala Stream Collector: bumped to 0.4.0
Scala Stream Collector: bumped Scalazon to 0.11 (#1504)
Scala Stream Collector: added support for PutRecords API (#1227)
Scala Stream Collector: added CORS support (#1165)
Scala Stream Collector: added CORS-style support for ActionScript3 Tracker (#1331)
Scala Stream Collector: added ability to disable third-party cookies (#1363)
Scala Stream Collector: removed automatic creation of stream (#1464)
Scala Stream Collector: added macros to config.hocon.sample (#1471)
Scala Stream Collector: logged the name of the stream to which records are written (#1503)
Scala Stream Collector: added shutdown hook to send stored events (#1535)
Scala Stream Collector: added configurable exponential backoff with jitter (#1592)
Scala Kinesis Enrich: bumped to 0.5.0
Scala Kinesis Enrich: bumped Scala Common Enrich to 0.13.1 (#1618)
Scala Kinesis Enrich: bumped Scalazon to 0.11 (#1492)
Scala Kinesis Enrich: bumped Kinesis Client Library to 1.2.1 (#1580)
Scala Kinesis Enrich: added ability to retrieve resolver and enrichments from DynamoDB (#1289)
Scala Kinesis Enrich: added support for PutRecords API (#1418)
Scala Kinesis Enrich: removed automatic creation of streams (#1465)
Scala Kinesis Enrich: fixed checkpointing (#1467)
Scala Kinesis Enrich: logged the name of the stream to which records are written (#1493)
Scala Kinesis Enrich: added macros to config.hocon.sample (#1513)
Scala Kinesis Enrich: moved Iglu resolver to dedicated CLI argument (#1534)
Scala Kinesis Enrich: updated README examples with new configuration (#1549)
Scala Kinesis Enrich: stopped retrying in the case of a ShutdownException or InvalidStateException (#1552)
Scala Kinesis Enrich: stopped ignoring region setting for DynamoDB table (#1576)
Scala Kinesis Enrich: updated test suite to accommodate changes (#1581)
Scala Kinesis Enrich: added Clojars as a resolver (#1586)
Scala Kinesis Enrich: added configurable exponential backoff with jitter (#1591)
Scala Kinesis Enrich: randomize partition keys for bad events (#1631)
Scala Kinesis Enrich: stopped sending records of over 50kB (#1649)
Kinesis Elasticsearch Sink: bumped to 0.3.0
Kinesis Elasticsearch Sink: made DynamoDB region configurable (#1583)
Kinesis Elasticsearch Sink: added macros to config.hocon.sample (#1515)
Kinesis Elasticsearch Sink: changed "connector" to "sink" in config (#1474)
Kinesis Elasticsearch Sink: stopped failing silently for inputs with fewer than 24 tab-separated fields (#1584)
Kinesis Elasticsearch Sink: stopped analyzing text fields by default (#1624)
Kinesis Elasticsearch Sink: removed automatic creation of bad stream (#1626)
Kinesis Elasticsearch Sink: randomized partition keys for failed records (#1633)
Kinesis LZO S3 Sink: bumped to 0.2.0
Kinesis LZO S3 Sink: removed automatic creation of stream (#1529)
Kinesis LZO S3 Sink: changed "connector" to "sink" in config (#1473)
Kinesis LZO S3 Sink: made DynamoDb region configurable (#1582)
Kinesis LZO S3 Sink: added macros to config.hocon.sample (#1472)
Kinesis LZO S3 Sink: changed the configuration to use the S3 region instead of the full endpoint URI (#1327)
Release 64 Palila (2015-04-16)
------------------------------
Common: added top-level data modeling folder (#1523)
Common: updated root README to include data modeling (#1612)
ActionScript 3.0 Tracker: added git submodule (#1546)
EmrEtlRunner: bumped to 0.14.0
EmrEtlRunner: bumped Elasticity to 4.0.5 (#758)
EmrEtlRunner: added support for specifying EMR service role (#1595)
EmrEtlRunner: added support for specifying EMR jobflow role (#1232)
Scala Common Enrich: bumped to 0.13.1
Scala Common Enrich: prevented UaParserEnrichment from creating a new Parser on every event (#1616)
Scala Hadoop Enrich: bumped to 0.14.1
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.13.1 (#1617)
Redshift: increased mkt_clickid to varchar(128) (#1605)
Redshift: added migration script for 0.5.0 to 0.6.0 (#1606)
Redshift: removed legacy cubes (#1613)
Postgres: increased mkt_clickid to varchar(128) (#1603)
Postgres: added migration script for 0.4.0 to 0.5.0 (#1604)
Postgres: removed legacy cubes (#1614)
Postgres: added user_id field to migration script for 0.3.0 to 0.4.0 (#1620)
Data Modeling: updated reference data.iso_country_codes so DISTSTYLE is ALL (#1393)
SQL Runner: added basic sessions / visits / page views model that can be pivoted on directly from any BI tool (#1273)
Looker: simplified LookML model and made it consistent with Redshift data models (#1522)
Release 63 Red-Cheeked Cordon-Bleu (2015-04-02)
-----------------------------------------------
Common: updated kinesis push to remove sub-folders from zipfile (#1378)
EmrEtlRunner: added example configuration JSONs for new enrichments (#1545)
Scala Common Enrich: bumped to 0.13.0
Scala Common Enrich: bumped referer-parser to 0.2.3 (#670)
Scala Common Enrich: converted transactions from given currency to base currency (#370)
Scala Common Enrich: bumped CampaignAttributionEnrichment version to 0.2.0 (#1338)
Scala Common Enrich: added mkt_clickid and mkt_network fields to POJO (#1073)
Scala Common Enrich: added derived_contexts field to POJO (#787)
Scala Common Enrich: added geo_timezone field to POJO (#787)
Scala Common Enrich: added etl_tags field to POJO (#1247)
Scala Common Enrich: added currency fields to POJO (#1316)
Scala Common Enrich: changed enrichment configuration to use SchemaCriterion rather than SchemaKey (#1353)
Scala Common Enrich: extracted original IP address from CollectorPayload headers (#1372)
Scala Common Enrich: extracted dvce_sent_tstamp from stm field (#1383)
Scala Common Enrich: added dvce_sent_tstamp to POJO (#1384)
Scala Common Enrich: added refr_domain_userid and refr_dvce_sent_tstamp to POJO (#1449)
Scala Common Enrich: added domain_sessionid field to POJO (#1538)
Scala Common Enrich: added derived_tstamp field to POJO (#1557)
Scala Common Enrich: populated refr_ fields based on page_url querystring (#1461)
Scala Common Enrich: populated domain_sessionid field based on "sid" parameter (#1541)
Scala Common Enrich: parsed the page URI in the EnrichmentManager (#1463)
Scala Common Enrich: added ua-parser enrichment (#62)
Scala Common Enrich: added ability to disable user-agent-utils enrichment (#792)
Scala Common Enrich: used Netaporter to parse querystrings if httpclient fails, thanks @danisola! (#1429)
Scala Hadoop Enrich: bumped to 0.14.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.13.0 (#1340)
Scala Hadoop Enrich: added integration tests for currency conversion enrichment (#1430)
Scala Hadoop Enrich: added tests for other new EnrichedEvent fields (#1337)
Scala Hadoop Shred: bumped to 0.4.0
Scala Hadoop Shred: bumped Scala Common Enrich to 0.13.0 (#1343)
Scala Hadoop Shred: bumped json4sJackson to 3.2.11 (#1344)
Scala Hadoop Shred: extracted JSONs from derived_contexts field (#786)
Scala Hadoop Shred: updated to reflect new enriched event format (#1332)
Scala Kinesis Enrich: bumped to 0.4.0
Scala Kinesis Enrich: bumped Scala Common Enrich to 0.13.0 (#1369)
Scala Kinesis Enrich: emitted updated EnrichedEvent (#1368)
Scala Kinesis Enrich: unified logger configuration, thanks @kazjote! (#1367)
Redshift: added refr_domain_userid and refr_dvce_tstamp to atomic.events (#1450)
Redshift: added dvce_sent_tstamp column (#1385)
Redshift: added foreign key constraint to all Redshift shredded tables (#1365)
Redshift: changed JSON field encodings to lzo (closes #1350)
Redshift: added migration script for 0.4.0 to 0.5.0 (#1335)
Redshift: added etl_tags column (#1245)
Redshift: added column for mkt_clickid and mkt_network (#1093)
Redshift: widened domain_userid column to hold UUID (#1090)
Redshift: added Redshift DDL for ua_parser_context (#789)
Redshift: added new derived_contexts field (#784)
Redshift: updated ip_address to support IPv6 addresses (#656)
Redshift: added new currency fields (#366)
Redshift: added domain_sessionid column (#1539)
Redshift: widened structured event, URL, and referer fields (#1553)
Redshift: added derived_tstamp column (#1558)
Postgres: added refr_domain_userid and refr_dvce_tstamp to atomic.events (#1451)
Postgres: added dvce_sent_tstamp column (#1386)
Postgres: added migration script for 0.3.0 to 0.4.0 (#1347)
Postgres: added column for geo_timezone (#1336)
Postgres: added etl_tags column (#1246)
Postgres: removed primary key constraint on event_id (#1187)
Postgres: added column for mkt_clickid and mkt_network (#1092)
Postgres: widened domain_userid column to hold UUID (#1091)
Postgres: added new derived_contexts field (#785)
Postgres: updated ip_address to support IPv6 addresses (#655)
Postgres: added new currency fields (#365)
Postgres: added domain_sessionid column (#1540)
Postgres: widened structured event, URL, and referer fields (#1554)
Postgres: added derived_tstamp column (#1559)
StorageLoader: wrote JSON Path file for ua_parser_context (#790)
Kinesis Elasticsearch Sink: bumped to 0.2.0
Kinesis Elasticsearch Sink: added new EnrichedEvent fields (#1345)
Kinesis Elasticsearch Sink: stopped verifying number of fields in enriched event (#1333)
Kinesis Elasticsearch Sink: changed organization to com.snowplowanalytics in BuildSettings (#1279)
Kinesis Elasticsearch Sink: renamed application.conf.example to config.hocon.sample (#1244)
Release 62 Tropical Parula (2015-03-17)
---------------------------------------
Common: updated `vagrant up` to work with latest Peru version (#1475)
Ruby Tracker: bumped git submodule to 0.4.1 (#1488)
Python Tracker: bumped git submodule to 0.6.0 (#1487)
PHP Tracker: bumped git submodule to 0.2.1 (#1486)
JavaScript Tracker: bumped git submodule to 2.3.0 (#1485)
Java Tracker: bumped git submodule to 0.7.0 (#1484)
Objective-C Tracker: renamed from iOS Tracker and bump git submodule to 0.3.2 (#1483)
EmrEtlRunner: bumped to 0.13.0
EmrEtlRunner: fixed copy to staging for Tomcat7 logs with hyphen after .txt (#1480)
EmrEtlRunner: added missing :archive: in BucketHash (#1475)
EmrEtlRunner: added support for custom bootstrap actions, thanks @danisola! (#1405)
EmrEtlRunner: removed time_diff as a dependency (#1352)
EmrEtlRunner: fixed breaking get_assets spec (#1287)
EmrEtlRunner: now tolerating more exception types in EmrJob's wait_for (#358)
EmrEtlRunner: bumped Contracts to 0.7 (#1498)
EmrEtlRunner: moved `include Contracts` into classes and modules (#1438)
Release 61 Pygmy Parrot (2015-03-02)
------------------------------------
Common: bumped VERSION file to r61-pygmy-parrot
Common: added Gradle to up.playbooks (#1270)
Common: added .travis.yml file and Travis button to repo (#1359)
Common: added Release button to README (#1428)
Common: added License button to README (#1427)
Clojure Collector: bumped to 1.0.0
Clojure Collector: updated access-valve to depend on Tomcat 8 classes (#1203)
Clojure Collector: updated .ebextensions to depend on Tomcat 8 (#1202)
Clojure Collector: added ability to disable third-party cookies (#1362)
Clojure Collector: added CORS support (#1146)
Clojure Collector: added CORS-style support for ActionScript3 Tracker (#1330)
Clojure Collector: added support for /:vendor/:version to HEAD (#1166)
Clojure Collector: now using UTF-8 for character encoding throughout (#1354)
Scala Common Enrich: bumped to 0.12.0
Scala Common Enrich: updated SnowplowAdapter to accept "charset=UTF-8" (#1424)
Scala Common Enrich: Base64 decoding does not specify UTF-8 charset (#1403)
Scala Common Enrich: removed incorrect extra layer of URL decoding from non-Bas64-encoded JSONs (#1396)
Scala Common Enrich: added support for ti_nm for transaction item name as well as ti_na (#1401)
Scala Common Enrich: added CloudfrontAccessLogAdapter (#1282)
Scala Common Enrich: made timestamp field of CollectorPayload an Option (#1417)
Scala Hadoop Enrich: bumped to 0.13.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.12.0 (#1395)
Scala Hadoop Enrich: added test for non-Base64-encoded JSON (#1394)
Scala Hadoop Enrich: updated tests to include Unicode (#1390)
Scala Hadoop Enrich: added integration test for CloudfrontAccessLogAdapter (#1423)
Scala Hadoop Bad Rows: removed .travis.yml (#1382)
EmrEtlRunner: bumped to 0.12.0
EmrEtlRunner: now appending region name to Clojure Collector log files (#1379)
EmrEtlRunner: added support for moving and archiving timestamped Clojure Collector log files (#1400)
EmrEtlRunner: now appending rather than prepending instance names to Clojure Collector log files (#1404)
EmrEtlRunner: changed Clojure Collector log timestamp format to match CloudFront logs (#1398)
EmrEtlRunner: added dedicated return code for no files to process (#1397)
EmrEtlRunner: now allowing tsv/*/* and json/*/* as :etl:collector_format (#1284)
EmrEtlRunner: now performing S3DistCp from processing for tsv/com.amazon.aws.cloudfront/* (#1431)
EmrEtlRunner: added output directory empty check prior to staging step (#1151)
StorageLoader: updated shell script to only run StorageLoader if EmrEtlRunner found files (#1399)
StorageLoader: wrote JSON Path file for a com.snowplowanalytics.snowplow/flash_context (#1305)
StorageLoader: wrote JSON Path file for a com.snowplowanalytics.snowplow/timing event (#1388)
StorageLoader: wrote JSON Path file for a com.amazon.aws.cloudfront/wd_access_log event (#1285)
StorageLoader: wrote JSON Path file for a com.google.analytics/cookies context (#1409)
StorageLoader: wrote JSON Path file for a com.snowplowanalytics.snowplow/desktop_context (#1421)
Redshift: added Redshift DDL for a com.snowplowanalytics.snowplow/timing event (#1387)
Redshift: added Redshift DDL for a com.snowplowanalytics.snowplow/flash_context (#1304)
Redshift: added Redshift DDL for a com.amazon.aws.cloudfront/wd_access_log event (#1286)
Redshift: added Redshift DDL for a com.google.analytics/cookies context (#1408)
Redshift: added Redshift DDL for a com.snowplowanalytics.snowplow/desktop_context (#1420)
Release 60 Bee Hummingbird (2015-02-03)
---------------------------------------
Common: added VERSION file in root to assist vagrant push (#1293)
Common: added vagrant push scripting to publish Kinesis apps (#1288)
Common: added lzo.yml to up.playbooks (#1325)
Thrift Raw Event: bumped Thrift version to 0.9.1 (#1225)
Thrift Raw Event: added collector-payload-1 and schema-sniffer-1 (#1322)
Thrift Raw Event: created a subproject for each Thrift class (#1298)
Thrift Raw Event: updated README and project description to reflect new structure (#1300)
Thrift Raw Event: renamed to thrift-schemas (#1299)
Scala Stream Collector: bumped to 0.3.0
Scala Stream Collector: started sending CollectorPayloads instead of SnowplowRawEvents (#1226)
Scala Stream Collector: added support for POST requests (#187)
Scala Stream Collector: added support for any {api-vendor}/{api-version} for GET and POST (#652)
Scala Stream Collector: stopped decoding URLs (#1217)
Scala Stream Collector: changed 1x1 pixel response to use a stable GIF (#1260)
Scala Stream Collector: renamed default.conf to config.hocon.sample (#1243)
Scala Stream Collector: started using ThreadLocal to handle Thrift serialization, thanks @denismo and @pkallos! (#1254)
Scala Stream Collector: added healthcheck for load balancers, thanks @duncan! (#1360)
EmrEtlRunner: bumped to 0.11.0
EmrEtlRunner: added "thrift" collector format (#1301)
EmrEtlRunner: implemented time_diff manually (#1310)
EmrEtlRunner: fixed failure reporting when jobflow step(s) created_at is nil (#1351)
Scala Common Enrich: bumped to 0.11.0
Scala Common Enrich: added schema-sniffer-1 and collector-payload-1 dependencies (#1296)
Scala Common Enrich: bumped user-agent-utils version to 1.14 (#1224)
Scala Common Enrich: changed EnrichedEvent field name to ip_organization (#1145)
Scala Common Enrich: changed "thrift" to "thrift-raw" in Loader object (#1302)
Scala Common Enrich: added tests for getLoader function (#558)
Scala Hadoop Enrich: bumped to 0.12.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.11.0 (#1294)
Scala Hadoop Enrich: added collector-payload-1 and snowplow-thrift-raw-event as test dependencies (#1248)
Scala Hadoop Enrich: added support for processing Thrift raw events, thanks @pkallos! (#538)
Scala Hadoop Enrich: added tests to Hadoop Enrich for processing Thrift raw events (#559)
Scala Kinesis Enrich: bumped to 0.3.0
Scala Kinesis Enrich: bumped Scala Common Enrich to 0.11.0 (#1295)
Scala Kinesis Enrich: renamed default.conf to config.hocon.sample (#1242)
Kinesis Elasticsearch Sink: added LICENSE-2.0.txt (#1329)
Kinesis LZO S3 Sink: added. Version 0.1.0, thanks @pkallos! (#1016)
Version 0.9.14 (2014-12-31)
---------------------------
Common: added dedicated Vagrant setup (#1266)
Common: added Quickstart section to README (#1268)
Common: added script to sync region-specific Snowplow Hosted Assets buckets (#1269)
CloudFront Collector: replaced 1x1 pixel with stable GIF (#1259)
Clojure Collector: bumped to 0.9.1
Clojure Collector: increased Tomcat's HTTP header tolerance to 64kB (#1249)
Clojure Collector: changed 1x1 pixel response to use a stable GIF (#1258)
EmrEtlRunner: bumped to 0.10.0
EmrEtlRunner: removed hyphen from the pattern match for Clojure Collector logs (#1194)
EmrEtlRunner: on job failure, log overall jobflow and individual step statuses (#1153)
Scala Common Enrich: bumped to 0.10.0
Scala Common Enrich: bumped Scala Iglu Client to 0.2.0 (#1222)
Scala Common Enrich: updated SnowplowAdapter to accept payload_data versions above 1-0-0 (#1220)
Scala Common Enrich: updated SnowplowAdapter to make charset=utf-8 optional (#1257)
Scala Common Enrich: added Adapter to pre-process Pingdom events (#1164)
Scala Common Enrich: added Adapter to pre-process PagerDuty events (#1158)
Scala Common Enrich: added Adapter to pre-process Mandrill events (#1061)
Scala Hadoop Enrich: bumped to 0.11.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.10.0 (#1223)
Scala Hadoop Enrich: added test job for PingdomAdapter (#1176)
Scala Hadoop Enrich: added test job for PagerdutyAdapter (#1175)
Scala Hadoop Enrich: added test job for MandrillAdapter (#1171)
Scala Hadoop Enrich: added test job for more relaxed payload_data schema matching (#1235)
Scala Hadoop Shred: bumped to 0.3.0
Scala Hadoop Shred: bumped Scala Common Enrich to 0.10.0 (#1236)
Scala Hadoop Shred: bumped Iglu Scala Client to 0.2.0 (#1230)
Scala Hadoop Shred: loosened match criteria for unstructured events and contexts (#1231)
StorageLoader: wrote JSON Path file for com.pingdom/incident_notify_of_close event (#1182)
StorageLoader: wrote JSON Path file for com.pingdom/incident_assign event (#1181)
StorageLoader: wrote JSON Path file for com.pingdom/incident_notify_user event (#1251)
StorageLoader: wrote JSON Path file for com.pagerduty/incident event (#1177)
StorageLoader: wrote JSON Path file for com.mandrill/message_sent event (#1059)
StorageLoader: wrote JSON Path file for com.mandrill/message_bounced event (#1058)
StorageLoader: wrote JSON Path file for com.mandrill/message_opened event (#1057)
StorageLoader: wrote JSON Path file for com.mandrill/message_marked_as_spam event (#1056)
StorageLoader: wrote JSON Path file for com.mandrill/message_delayed event (#1055)
StorageLoader: wrote JSON Path file for com.mandrill/message_soft_bounced event (#1054)
StorageLoader: wrote JSON Path file for com.mandrill/message_clicked event (#1053)
StorageLoader: wrote JSON Path file for com.mandrill/message_rejected event (#1052)
StorageLoader: wrote JSON Path file for com.mandrill/recipient_unsubscribed event (#1051)
Redshift: added Redshift DDL for a com.pingdom/incident_notify_of_close event (#1180)
Redshift: added Redshift DDL for a com.pingdom/incident_assign event (#1179)
Redshift: added Redshift DDL for a com.pingdom/incident_notify_user (#1252)
Redshift: added Redshift DDL for a com.pagerduty/incident event (#1178)
Redshift: added Redshift DDL for a com.mandrill/message_sent event (#1050)
Redshift: added Redshift DDL for a com.mandrill/message_bounced event (#1049)
Redshift: added Redshift DDL for a com.mandrill/message_opened event (#1048)
Redshift: added Redshift DDL for a com.mandrill/message_marked_as_spam event (#1047)
Redshift: added Redshift DDL for a com.mandrill/message_delayed event (#1046)
Redshift: added Redshift DDL for a com.mandrill/message_soft_bounced event (#1045)
Redshift: added Redshift DDL for a com.mandrill/message_clicked event (#1044)
Redshift: added Redshift DDL for a com.mandrill/message_rejected event (#1043)
Redshift: added Redshift DDL for a com.mandrill/recipient_unsubscribed event (#1042)
Redshift: removed trailing commas from com.mailchimp SQL table definitions (#1174)
Version 0.9.13 (2014-12-01)
---------------------------
Scala Common Enrich: bumped to 0.9.1
Scala Common Enrich: added error handling for Netaporter URI parsing (#1216)
Scala Kinesis Enrich: bumped to 0.2.1
Scala Kinesis Enrich: bumped Scala Common Enrich to 0.9.1
Scala Kinesis Enrich: fixed conflict with Specs2 version, thanks @knservis! (#1213)
Scala Hadoop Enrich: bumped to 0.10.1
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.9.1
Deleted test-file in repository root (#1219)
Version 0.9.12 (2014-11-26)
---------------------------
Scala Stream Collector: bumped to 0.2.0
Scala Stream Collector: changed organization to "com.snowplowanalytics" (#1168)
Scala Stream Collector: made the --config option mandatory (#1128)
Scala Stream Collector: added ability to set AWS credentials from environment variables (#1116)
Scala Stream Collector: now enforcing Java 7 for compilation (#1068)
Scala Stream Collector: increased request character limit to 32768 (#987)
Scala Stream Collector: improved performance by using Future, thanks @pkallos! (#580)
Scala Stream Collector, Scala Kinesis Enrich: made endpoint configurable, thanks @sambo1972! (#978)
Scala Stream Collector, Scala Kinesis Enrich: added support for IAM roles, thanks @pkallos! (#534)
Scala Stream Collector, Scala Kinesis Enrich: replaced stream list with describe to tighten permissions, thanks @pkallos! (#535)
Scala Kinesis Enrich: bumped to 0.2.0
Scala Kinesis Enrich: bumped Scala Common Enrich to 0.9.0
Scala Kinesis Enrich: changed organization to "com.snowplowanalytics" (#1167)
Scala Kinesis Enrich: made the --config option mandatory (#1126)
Scala Kinesis Enrich: updated instructions in README (#1125)
Scala Kinesis Enrich: added ability to set AWS credentials from environment variables (#1117)
Scala Kinesis Enrich: now enforcing Java 7 for compilation (#1067)
Scala Kinesis Enrich: replaced printlns with Java Logger (#521)
Scala Kinesis Enrich: started sending bad records to a separate stream (#463)
Scala Kinesis Enrich: added page_url and page_referrer back into enrichment output (#686)
Scala Kinesis Enrich: stopped opening a new file for each enriched event, thanks @pkallos! (#714)
Scala Common Enrich: bumped to 0.9.0
Scala Common Enrich: added BadRow from Scala Hadoop Enrich (#1118)
Scala Common Enrich: added ability to override collector-set nuid with tracker-set tnuid (#1095)
Scala Common Enrich: made URI parsing more permissive using NetAPorter's URI library, thanks @rupeshmane! (#1172)
Scala Hadoop Enrich: bumped to 0.10.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.9.0
Scala Hadoop Enrich: moved BadRow into Scala Common Enrich (#1119)
Scala Hadoop Enrich: updated README with new Snowplow capitalization (#1127)
Kinesis Elasticsearch Sink: added. Version 0.1.0
Version 0.9.11 (2014-11-10)
---------------------------
Clojure Collector: bumped to 0.9.0
Clojure Collector: add support for /:vendor/:version to GET (#1131)
Scala Common Enrich: bumped to 0.8.0
Scala Common Enrich: bumped json4s to 3.2.11 (#1141)
Scala Common Enrich: bumped Scala Iglu Client to 0.1.1 (#1140)
Scala Common Enrich: removed check that POST request has body and content-type (#1132)
Scala Common Enrich: moved payload API detection into CollectorApi.parse (#1113)
Scala Common Enrich: fixed bug in CljTomcatLoader expecting request body to be "_" instead of "-" (#1112)
Scala Common Enrich: added Adapter to pre-process CallRail events (#1108)
Scala Common Enrich: added Adapter to pre-process MailChimp events (#1086)
Scala Common Enrich: added Adapter to pre-process Iglu-compatible events (#1060)
Scala Hadoop Enrich: bumped to 0.9.0
Scala Hadoop Enrich: added job test for unrecognized api name/version (#1115)
Scala Hadoop Enrich: updated DiscardableCfLinesSpec given /not-ice.png is no longer discarded (#1114)
Scala Hadoop Enrich: added test job for MailchimpAdapter (#1159)
Scala Hadoop Enrich: added test job for CallrailAdapter (#1160)
Redshift: removed not null constraint on change_form's value column (#1162)
Redshift: added Redshift DDL for a com.callrail/call_complete event (#1110)
Redshift: added Redshift DDL for a com.mailchimp/campaign_sending_status event (#1085)
Redshift: added Redshift DDL for a com.mailchimp/cleaned_email event (#1084)
Redshift: added Redshift DDL for a com.mailchimp/email_address_change event (#1083)
Redshift: added Redshift DDL for a com.mailchimp/profile_update event (#1082)
Redshift: added Redshift DDL for a com.mailchimp/unsubscribe event (#1081)
Redshift: added Redshift DDL for a com.mailchimp/subscribe event (#1080)
StorageLoader: wrote JSON Path file for com.callrail/call_complete event (#1109)
StorageLoader: wrote JSON Path file for com.mailchimp/campaign_sending_status event (#1079)
StorageLoader: wrote JSON Path file for com.mailchimp/cleaned_email event (#1078)
StorageLoader: wrote JSON Path file for com.mailchimp/email_address_change event (#1077)
StorageLoader: wrote JSON Path file for com.mailchimp/profile_update event (#1076)
StorageLoader: wrote JSON Path file for com.mailchimp/unsubscribe event (#1075)
StorageLoader: wrote JSON Path file for com.mailchimp/subscribe event (#1074)
Version 0.9.10 (2014-11-06)
---------------------------
StorageLoader: wrote JSON Path file for PerformanceTiming (#1147)
StorageLoader: wrote JSON Path file for social_interaction (#1029)
StorageLoader: wrote JSON Path file for site_search (#1027)
StorageLoader: wrote JSON Path file for change_form (#1025)
StorageLoader: wrote JSON Path file for submit_form (#1023)
StorageLoader: wrote JSON Path file for remove_from_cart (#1021)
StorageLoader: wrote JSON Path file for add_to_cart (#1019)
Redshift: converted all Redshift DDLs to use tabs (#1034)
Redshift: added Redshift DDL for PerformanceTiming (#1032)
Redshift: added Redshift DDL for social_interaction (#1030)
Redshift: added Redshift DDL for site_search (#1028)
Redshift: added Redshift DDL for change_form (#1026)
Redshift: added Redshift DDL for submit_form (#1024)
Redshift: added Redshift DDL for remove_from_cart (#1022)
Redshift: added Redshift DDL for add_to_cart (#1020)
Version 0.9.9 (2014-10-27)
--------------------------
.NET Tracker: added git submodule. Version 0.1.0 (#1000)
PHP Tracker: added git submodule. Version 0.1.0 (#1013)
Clojure Collector: bumped to 0.8.0
Clojure Collector: fixed regression in log record format caused by #854 (#992)
Clojure Collector: correctly handles multiple IPs in X-Forwarded-For (#970)
StorageLoader: bumped to 0.3.3
StorageLoader: selecting Snowplow's hosted-assets bucket based on region (#1012)
EmrEtlRunner: bumped to 0.9.2
EmrEtlRunner: no rows to process now returns 0, not 1 (#1018)
EmrEtlRunner: fixed bug where --process-enrich doesn't work, thanks @kingo55! (#1089)
EmrEtlRunner: now checking that output directories are empty before running (#1124)
Scala Common Enrich: bumped to 0.7.0
Scala Common Enrich: bumped scala-maxmind-iplookups to 0.2.0 (#1002)
Scala Common Enrich: added support for non-GA campaign attribution: phase 1 (#402)
Scala Common Enrich: rewrote AttributionEnrichments tests as RefererParserEnrichment tests (#974)
Scala Common Enrich: allow but downcase a-f characters in incoming event_id (#1006)
Scala Common Enrich: extract useragent from ua parameter (#1011)
Scala Common Enrich: fixed issue where unset integer fields throw an NPE (#570)
Scala Common Enrich: fixed issue where unset double fields throw an NPE (#1062)
Scala Common Enrich: added tests for ConversionUtils.stringToJInteger (#1064)
Scala Common Enrich: now enforcing Java 7 for compilation (#1065)
Scala Hadoop Enrich: bumped to 0.8.0
Scala Hadoop Enrich: bumped Scala Common Enrich to 0.7.0 (#995)
Scala Hadoop Enrich: added test for empty integer and double fields to ensure no NPE thrown (#1063)
Scala Hadoop Enrich: now enforcing Java 7 for compilation (#1066)
Scala Hadoop Enrich: updated test jobs to reflect updated useragent parsing (#1070)
Version 0.9.8 (2014-09-18)
--------------------------
iOS Tracker: added git submodule. Version 0.1.1 (#982)
Android Tracker: added git submodule. Version 0.1.1 (#983)
Clojure Collector: bumped to 0.7.0
Clojure Collector: merged snowplow/tomcat-cf-access-log-valve into Snowplow as clojure-collector/access-valve (#898)
Clojure Collector: bumped access-valve to 0.1.0
Clojure Collector: changed access-valve's package path to com.snowplowanalytics.snowplow.collectors.clojure.accessvalve (#924)
Clojure Collector: changed access-valve to use Gradle (#899)
Clojure Collector: changed access-valve to publish to war-resources/.ebextensions (#900)
Clojure Collector: updated access-valve and added web.xml to log request body and content type (#901)
Clojure Collector: fixed empty querystring in access-valve (#938)
Clojure Collector: fixed IP address forwarding for VPC-based environments (#854)
Clojure Collector: added support for API vendor and version in routing (#925)
Clojure Collector: added support for POST as well as GET (#654)
Scala Stream Collector: fixed broken link to `thrift-raw-event`, thanks @bamos! (#955)
Scala Common Enrich: bumped to 0.6.0
Scala Common Enrich: split out Clojure and CloudFront Collector event processing (#943)
Scala Common Enrich: added CljTomcatLoaderSpec tests (#963)
Scala Common Enrich: filtering non-GETs from CloudfrontLoader (#944)
Scala Common Enrich: replaced all Argonaut code with json4s (#945)
Scala Common Enrich: renamed CanonicalOutput to EnrichedEvent (#964)
Scala Common Enrich: replaced CanonicalInput and TrackerPayload with CollectorPayload and RawEvent (#946)
Scala Common Enrich: updated EnrichmentManager to process RawEvent not CanonicalInput (#903)
Scala Common Enrich: added Snowplow Tp2 Adapter to convert event JSON to NEL of RawEvents (#904)
Scala Common Enrich: geo-IP lookup now supports ip parameter on querystring (#961)
Scala Common Enrich: IP address anonymization now works with ip parameter on querystring (#960)
Scala Hadoop Enrich: bumped to 0.7.0
Scala Hadoop Enrich: bumped to Scala Common Enrich 0.6.0 (#940)
Scala Hadoop Enrich: updated to support generating multiple enriched events from one raw payload (#902)
StorageLoader: wrote JSON Path file for mobile_context (#776)
StorageLoader: wrote JSON Path file for geolocation_context (#962)
Redshift: added Redshift DDL for mobile_context (#542)
Redshift: added Redshift DDL for geolocation_context (#950)
Version 0.9.7 (2014-09-02)
--------------------------
Ruby Tracker: bumped git submodule to 0.3.0 (#939)
Java Tracker: bumped git submodule to 0.5.1 (#948)
Node.js Tracker: added git submodule. Version 0.1.0 (#949)
Trackers: fixed broken git submodule links, thanks @OAGr! (#957)
EmrEtlRunner: bumped to 0.9.1
EmrEtlRunner: fixed @jobflow.ec2_subnet_id not being set due to incorrect guard, thanks @rslifka! (#956)
EmrEtlRunner: fixed bugs in --process-bucket (#973)
EmrEtlRunner: renamed --process-bucket option to --process-enrich (#972)
EmrEtlRunner: changed -s option for --skip to -x prevent clash with -s for --start (#975)
EmrEtlRunner: now allows shredding without prior enrichment (#927)
StorageLoader: bumped to 0.3.2
StorageLoader: removed EMPTYASNULL for loading JSONs (#942)
StorageLoader: added missing targetUrl field to ad_impression JSON Path file, thanks @gisripa! (#951)
StorageLoader: made providing jsonpath_assets optional (#958)
StorageLoader: added support for cross-region Redshift COPY (#971)
Hive Storage: bumped table-def.q to 0.2.0
Hive Storage: added and removed fields to synchronize with 0.9.6's enriched event format (#965)
Scala Hadoop Shred: bumped to version 0.2.1
Scala Hadoop Shred: fixed multiple JSONs not being shredded for a single row (#968)
Scala Hadoop Shred: strengthened test suite (#967)
Version 0.9.6 (2014-07-26)
--------------------------
Java Tracker: bumped git submodule to 0.4.0 (#892)
EmrEtlRunner: bumped to 0.9.0
EmrEtlRunner: passed etl_tstamp into Hadoop Enrich as an argument (#396)
EmrEtlRunner: removed enrichment-specific code (#811)
EmrEtlRunner: removed enrichment-specific parameters from config.yml.sample (#809)
EmrEtlRunner: replaced enrichment-specific arguments from EmrEtlRunner (#808)
EmrEtlRunner: removed %3D code following Scalding upgrade (#849)
EmrEtlRunner: fixed contract on partition_by_run (#894)
EmrEtlRunner: updated Bash script to support enrichments path (#916)
StorageLoader: bumped to 0.3.1
StorageLoader: now looking in eu-west-1 region for s3://snowplow-hosted-assets (#895)
StorageLoader: updated combined Bash script to support enrichments path (#917)
Scala Hadoop Enrich: bumped to 0.6.0
Scala Hadoop Enrich: bumped Scala to 2.10.4 (#912)
Scala Hadoop Enrich: bumped Scalding to 0.11.1 (#911)
Scala Hadoop Enrich: bumped Hadoop to 1.2.1 (#913)
Scala Hadoop Enrich: bumped to Scala Common Enrich 0.5.0 (#788)
Scala Hadoop Enrich: passed etl_tstamp into Scala Common Enrich (#817)
Scala Hadoop Enrich: removed event_vendor and ue_name and renamed ue_properties to unstruct_event (#835)
Scala Hadoop Enrich: removed %3D handling for compatibility with old Scalding Args (#850)
Scala Hadoop Enrich: added ability to download additional MaxMind databases (#885)
Scala Hadoop Enrich: added runHadoop and Tool.main tests (#914)
Scala Common Enrich: bumped to 0.5.0
Scala Common Enrich: bumped user-agent-utils version, thanks @pkallos! (#662)
Scala Common Enrich: bumped referer-parser to 0.2.2 (#864)
Scala Common Enrich: bumped httpclient to 4.3.3 (#897)
Scala Common Enrich: bumped scala-maxmind-geoip to scala-maxmind-iplookups 0.1.0 (#882)
Scala Common Enrich: stored etl_tstamp in new field in CanonicalOutput (#818)
Scala Common Enrich: removed event_vendor and ue_name and renamed ue_properties to unstruct_event (#836)
Scala Common Enrich: made referer parsing configurable with list of internal domains (#857)
Scala Common Enrich: migrated configurable enrichments to new EnrichmentRegistry (#858)
Scala Common Enrich: added validation of enrichments JSON (#807)
Scala Common Enrich: replaced "anon_ip_quartets" with "anon_ip_octets" everywhere (#547)
Scala Common Enrich: added ability to extract event_id from querystring (#723)
Scala Common Enrich: extracted CanonicalInput's userId as network_userid, thanks @pkallos! (#855)
Scala Common Enrich: added MaxMind region_name field (#873)
Scala Common Enrich: added IP -> ISP lookup (#861)
Scala Common Enrich: added IP -> organization lookup (#887)
Scala Common Enrich: added IP -> domain lookup (#886)
Scala Common Enrich: added IP -> net speed lookup (#889)
Scala Common Enrich: added validation for transaction ID (#428)
Scala Common Enrich: renamed Tests to Specs for consistency (#618)
Scala Hadoop Shred: bumped to 0.2.0
Scala Hadoop Shred: bumped to Scala Common Enrich 0.5.0 (#918)
Scala Hadoop Shred: trailing empty fields no longer cause shredding for that row to fail (#921)
Scala Hadoop Shred: updated column offsets for enriched events TSV (#915)
Redshift: bumped table-def to 0.4.0
Redshift: migration script added for 0.3.0 to 0.4.0
Redshift: added etl_tstamp to atomic.events (#819)
Redshift: removed event_vendor and ue_name and renamed ue_properties to unstruct_event (#834)
Redshift: added new MaxMind fields (#871)
Redshift: applied runlength encoding to all fields keyed off IP address (#883)
Redshift: migration script added for 0.3.0 to 0.4.0 (#838)
Postgres: bumped table-def to 0.3.0
Postgres: migration script added for 0.2.0 to 0.3.0
Postgres: added etl_tstamp to atomic.events (#820)
Postgres: removed event_vendor and ue_name and renamed ue_properties to unstruct_event (#833)
Postgres: added new MaxMind fields (#871)
Postgres: migration script added for 0.2.0 to 0.3.0 (#837)
Version 0.9.5 (2014-07-09)
--------------------------
Ruby Tracker: added git submodule. Version 0.1.0 (#645)
Java Tracker: added git submodule. Version 0.2.0 (#843)
JavaScript Tracker: bumped git submodule to 2.0.0 (#635)
Python Tracker: bumped Python Tracker git submodule to 0.4.0 (#634)
Scala Hadoop Shred: added. Version 0.1.0
EmrEtlRunner: bumped to 0.8.0
EmrEtlRunner: updated S3DistCp steps to use new S3DistCpStep from Elasticity (#629)
EmrEtlRunner: added --skip s3distcp option (#313)
EmrEtlRunner: added ability to start Lingual in EmrEtlRunner (#623)
EmrEtlRunner: added ability to start HBase in EmrEtlRunner (#622)
EmrEtlRunner: improved load performance by switching ETL to write out to HDFS (#278)
EmrEtlRunner: now invoking Scala Hadoop Shredder after main job (#644)
EmrEtlRunner: added :iglu: section to config.yml for Scala Hadoop Shred (#814)
EmrEtlRunner: updated to run Scala Hadoop Shred following Hadoop Enrich (#815)
EmrEtlRunner: added --skip shred option (#659)
StorageLoader: bumped to 0.3.0
StorageLoader: bumped Sluice to 0.2.1 (#881)
StorageLoader: added initial Ruby.contracts support (#391)
StorageLoader: updated config.yml to support shredding (#897)
StorageLoader: added ACCEPTINVCHARS to StorageLoader (#411)
StorageLoader: wrote JSON Path files for ad_* events (#642)
StorageLoader: wrote JSON Path file for link_click (#599)
StorageLoader: wrote JSON Path file for screen_view (#643)
StorageLoader: wrote JSON Path file for schema.org's WebPage (#772)
StorageLoader: added :jsonpath_assets: setting for StorageLoader (#606)
StorageLoader: added ability to load custom tables using JSON Paths (#607)
StorageLoader: added --skip shred option (#660)
StorageLoader: added :in: hint on StorageLoader configuration, thanks @joaolcorreia! (#755)
Redshift: added Redshift DDL for ad_* events (#639)
Redshift: added Redshift DDL for link_click events (#600)
Redshift: added Redshift DDL for screen_view events (#640)
Redshift: added Redshift DDL for schema.org's WebPage (#771)
Looker Analytics: wrote LookML for ad_* events (#605)
Looker Analytics: wrote LookML for screen_view events (#637)
Looker Analytics: wrote LookML for link_click events (#636)
Looker Analytics: wrote LookML for schema.org's WebPage (#770)
Looker Analytics: updated LookML to use liquid templating (#851)
Version 0.9.4 (2014-05-30)
---------------------------
Redshift: added reference_data.country_codes (#779)
Postgres: added reference_data.country_codes (#781)
Looker Analytics: New 'traffic_pulse' dashboard with globally configurable drill-down variables (#765)
Looker Analytics: Snowplow website specific dimensions and metrics removed: base model is now company-generic (#764)
Looker Analytics: cleaner joining of data sets in Looker model (#763)
Looker Analytics: dimensions and metrics renamed to make it clearer for an analyst getting started with the data (#761)
Looker Analytics: added distkeys and sortkeys to derived tables to speed up query times (#696)
Looker Analytics: derived tables now auto-generated when new data is loaded into atomic.events (#688)
Looker Analytics: 'visits' renamed to 'sessions' (#762)
Looker Analytics: LookML models versioned using SchemaVer (#766)
Version 0.9.3 (2014-05-21)
--------------------------
EmrEtlRunner: bumped to 0.7.0
EmrEtlRunner: bumped Sluice to 0.2.1 (#405)
EmrEtlRunner: bumped Elasticity to 3.0.4 (#665)
EmrEtlRunner: replaced hadoop_version setting with ami_version setting (#701)
EmrEtlRunner: fixed handling of region, placement and ec2_subnet_id (#754)
EmrEtlRunner: fixed regression where 0 files staged still kicks off EMR (#409)
EmrEtlRunner: stopped Sluice file operation threads being killed by folders (#401)
EmrEtlRunner: fixed disabling of Cascading error catching (#721)
EmrEtlRunner: renamed Clojure Collector log files in processing bucket to support multiple instances (#717)
EmrEtlRunner: added initial Ruby.contracts support into EmrEtlRunner (#392)
EmrEtlRunner: updated to use the Ruby Logger (#194)
EmrEtlRunner: updated so it's embeddable in other applications (#128)
EmrEtlRunner: added ability to bundle as a JRuby fat jar (#674)
EmrEtlRunner: added initial unit tests (#672)
Clojure Collector: bumped to 0.6.0
Clojure Collector: load balancer IP address getting stored in logs (#719)
Documentation: removed all Snowplow tracking from READMEs, thanks @acinader! (#720)
Documentation: fixed EmrEtlRunner documentation is (slightly) inconsistent, thanks @pvdb! (#749)
Version 0.9.2 (2014-04-30)
--------------------------
Scala Hadoop Enrich: bumped to 0.5.0
Scala Hadoop Enrich: bumped to Scala Common Enrich 0.4.0 (#699)
Scala Hadoop Enrich: bumped SBT to 0.13.2 (#702)
Scala Hadoop Enrich: bumped to using using sbt-assembly 0.11.2 (#704)
Scala Common Enrich: bumped to 0.4.0
Scala Common Enrich: upgraded to support new and future CloudFront file formats (#698)
Scala Common Enrich: bumped SBT to 0.13.2 (#703)
Scala Hadoop Bad Rows: added. Version 0.1.0
Hive Storage: bumped table-def.q to 0.1.0
Hive Storage: added new unstructured fields to Hive table definition (#709)
Hive Storage: added raw page_url and page_referrer into Hive table (#710)
Hive Storage: added name_tracker field to Hive table (#711)
Version 0.9.1 (2014-04-11)
--------------------------
Scala Hadoop Enrich: bumped to 0.4.0
Scala Hadoop Enrich: bumped to Scala Common Enrich 0.3.0 (#497)
Scala Hadoop Enrich: renamed AnonQuartets to AnonOctets (#498)
Scala Hadoop Enrich: renamed all Snowplow Hadoop Tests to Specs (#515)
Scala Hadoop Enrich: added page_url and page_referrer back into ETL's output (#483)
Scala Common Enrich: bumped to 0.3.0
Scala Common Enrich: bumped Argonaut to 6.0.3 (#620)
Scala Common Enrich: added app and mob as valid platform codes, thanks @kinabalu! (#524)
Scala Common Enrich: added support for remaining platform codes (#516)
Scala Common Enrich: updated POJO in Scalding ETL to include new unstructured fields (#362)
Scala Common Enrich: updated POJO in Scalding ETL to include name_tracker field (#595)
Scala Common Enrich: extract evn from Tracker Protocol (#604)
Scala Common Enrich: extract tna from Tracker Protocol (#616)
Scala Common Enrich: extract and validate unstructured events (#142)
Scala Common Enrich: extract and validate custom contexts (#426)
Scala Common Enrich: reformat incoming event and context JSONs (#589)
Scala Common Enrich: make sure to error a JSON if > length (#567)
EmrEtlRunner: bumped to 0.6.0
EmrEtlRunner: bumped Elasticity to 3.0.2 (#587)
EmrEtlRunner: allowed AWS VPC selection in EmrEtlRunner (#581)
EmrEtlRunner: set :visible_to_all_users to true for EMR jobs, thanks @smugryan! (#560)
Redshift: atomic-def script bumped to 0.3.0
Redshift: migration script added for 0.2.2 to 0.3.0
Redshift: added new unstructured fields to Redshift table definition (#361)
Redshift: changed distkey to be event_id, not domain_userid (#584)
Redshift: added raw page_url and page_referrer into Redshift table (#591)
Redshift: added name_tracker field to Redshift table (#594)
Redshift: converted Redshift varchar(38) for event IDs to char(36) (#282)
Postgres: atomic-def script bumped to 0.2.0
Postgres: migration script added for 0.1.x to 0.2.0
Postgres: added new unstructured fields to Postgres table definition (#359)
Postgres: added raw page_url and page_referrer into Postgres table (#592)
Postgres: added name_tracker field to Postgres table (#593)
Postgres: converted varchar(36) for event IDs to char(36) (#596)
StorageLoader: bumped to 0.2.0
StorageLoader: added TIMEFORMAT 'auto' to StorageLoader to handle outlier dvce_timestamps (#427)
JavaScript Tracker: bumped git submodule to 1.0.1 (#585)
Python Tracker: added git submodule pointing to 0.1.0 (#586)
Version 0.9.0 (2014-02-04)
--------------------------
Thrift Raw Event: added. Version 0.1.0
Thrift Raw Event: specified Thrift IDL for new raw event schema (#430)
Scala Stream Collector: added. Version 0.1.0
Scala Stream Collector: implemented new spray-can (Akka Http) Scala stream collector (#432)
Scala Kinesis Enrich: added. Version 0.1.0
Scala Kinesis Enrich: implemented initial Kinesis-based enrichment (#460)
Scala Common Enrich: bumped to 0.2.0
Scala Common Enrich: added Thrift SnowplowRawEvent as a dependency to common-enrich (#475)
Scala Common Enrich: added ability to read Thrift SnowplowRawEvent (Thrift) (#462)
Scala Common Enrich: renamed CloudFront to Cloudfront in code (#495)
Scala Common Enrich: renamed AnonQuartets to AnonOctets (#491)
Scala Common Enrich: added raw -> CanonicalInput tests (#484)
Scala Common Enrich: updated GET payload extraction to handle empty payloads (#502)
Git submodules: changed git:// protocol in .gitmodules to https:// (#512)
NodeJS Collector: removed contrib-nodejs-collector from 2-collectors (#474)
JavaScript Tracker: bumped JS Tracker submodule to 0.13.1 release (#511)
Version 0.8.13 (2014-01-08)
---------------------------
Looker Analytics: added 0.1.0
Looker Analytics: created Snowplow metadata model for Looker BI (www.looker.com) (#472)
Version 0.8.12 (2014-01-07)
---------------------------
Hadoop ETL: bumped to 0.3.6
Hadoop ETL: bumped to SBT 0.13.0 (#404)
Hadoop ETL: bumped to using sbt-assembly 0.10.1 (#421)
Hadoop ETL: bumped to Scala 2.10.3 (#423)
Hadoop ETL: bumped to Scalding 0.8.11 (#422)
Hadoop ETL: upgraded useragent utils to 1.11 & moved to Maven dependency (#416)
Hadoop ETL: added test running back into sbt-assembly step (#420)
Hadoop ETL: updated copyright messages to be Snowplow not SnowPlow, and to 2014 not 2013 (#419)
Hadoop ETL: added ValidatedString as a type to package.scala (#328)
Hadoop ETL: added missing validation to stringToJByte (#408)
Hadoop ETL: missing page URI no longer interpreted as bad row (#399)
Hadoop ETL: updated CfRegex to reflect Cfcs(Cookie) can be empty (#410)
Hadoop ETL: numeric fields in tr_ and ti_ now parsed to doubles, not madeTsvSafe strings (#400)
Hadoop ETL: moved ETL core into separate project scala-enrich-common (#417)
Scala Common Enrich: updated ETL versioning to include host and common versions (#448)
Postgres: bumped cube-pages.sql to 0.1.1
Postgres: minor fix: cube_pages.complete referenced non-existent table cube_pages.basic, thanks @mrwalker! (#414)
Version 0.8.11 (2013-10-22)
---------------------------
Hadoop ETL: bumped to 0.3.5
Hadoop ETL: added Argonaut 6.0 as a dependency (#342)
Hadoop ETL: added fromTimestamp to EventEnrichments (#340)
Hadoop ETL: added makeTsvSafe to ConversionUtils (#338)
Hadoop ETL: added JsonUtils (#323)
Hadoop ETL: added support for 3 and 4 return values from MapTransformer (#324)
Hadoop ETL: updated GetJsonPayload to use Argonaut and renamed to JsonPayload (#339)
Hadoop ETL: added ability to mask IP addresses in ETL (#309)
Hadoop ETL: refr_ and page_ fields now stored raw (#374)
Hadoop ETL: defensively fixed raw spaces in page and referer URLs (#346)
Hadoop ETL: fixed regression, single-encoded %s logic didn't account for % itself (#347)
Hadoop ETL: added unit tests for fixTabsNewlines (#332)
Hadoop ETL: tests now report the failing CanonicalOutput field (#325)
Hadoop ETL: now handling all fields double-encoded as per CloudFront post-14-September (#348)
Hadoop ETL: added support for 21 Oct CloudFront access log format (#384)
Hadoop ETL: added truncation to refr_term (#379)
Hadoop ETL: added truncation to se_label (#394)
Hadoop ETL: made all prior ME.identity fields TSV-safe (#395)
EmrEtlRunner: bumped to 0.5.0
EmrEtlRunner: bumped Sluice to 0.1.5 (#96)
EmrEtlRunner: bumped Elasticity to 2.6 (#345)
EmrEtlRunner: enabled EMR Job Flow debugging for easier access to logs (#279)
EmrEtlRunner: ETL job no longer fails if there's no data for last run period (#296)
EmrEtlRunner: empty processing dir check now works if dir contains 1 file (#326)
EmrEtlRunner: added ability to mask IP addresses in ETL (#309)
EmrEtlRunner: made the examples match what you get from git out of the box, thanks @shermozle (#331)
StorageLoader: bumped to 0.1.1
StorageLoader: bumped Sluice to 0.1.5 (#96)
StorageLoader: fixed "\" in fields acts as an escape character for Postgres, thanks @kingo55 (#329)
StorageLoader: added ability to --skip analyze (#335)
StorageLoader: moved VACUUM SORT ONLY to a --include step (#321)
StorageLoader: added COMPROWS to config and --include compupdate option (#344)
StorageLoader: changed Postgres VACUUM FULL to VACUUM (#357)
StorageLoader: added TRUNCATECOLUMNS for Redshift load (#360)
StorageLoader: added FILLRECORD to our Redshift COPY command (#380)
Postgres: fixed error in `recipes_basic.technology_mobile` recipe (#397)
Version 0.8.10 (2013-10-18)
---------------------------
Redshift: bumped table-def to 0.2.2
Redshift: moved events table to a new atomic schema in atomic-def.sql (#301)
Redshift: added migration script for 0.2.1 to 0.2.2
Redshift: added SQL DDL to define Redshift recipes (#297)
Redshift: added SQL DDL to define Redshift cubes (#298)
Postgres: bumped table-def to 0.1.1
Postgres: renamed table-def file to atomic-def.sql
Postgres: added migration script for 0.1.0 to 0.1.1
Postgres: moved NOT NULL constraint on event field to event_vendor field (#318)
Postgres: added SQL DDL to define Postgres recipes (#303)
Postgres: added SQL DDL to define Postgres cubes (#302)
Documentation: fixed wrong path to no-js-tracker subdirectory, thanks @gregakespret (#343)
Documentation: improved "Find out more" table in README, thanks @dideler (#353)
Version 0.8.9 (2013-09-05)
--------------------------
Hadoop ETL: bumped to 0.3.4
Hadoop ETL: updated to handle singly-encoded %s in CloudFront querystring field (#333)
Version 0.8.8 (2013-08-04)
--------------------------
JavaScript Tracker: moved into own repo (#277)
Hadoop ETL: bumped to 0.3.3
Hadoop ETL: URL-decodes "%3D" to "=" to allow Hive-style directory names as arguments (#305)
Hadoop ETL: bumped referer-parser to 0.1.1 to fix java.lang.NullPointerException (#314)
EmrEtlRunner: bumped to 0.4.0
EmrEtlRunner: bumped Sluice to 0.0.7 (#299)
EmrEtlRunner: removed :snowplow: section from config.yml.sample (#289)
EmrEtlRunner: simplified EmrEtlRunner and its config (#287)
EmrEtlRunner: added run= to timestamped ETL folder names (#294)
EmrEtlRunner: updated "Jobflow started" stdout message to include jobflow ID (#315)
Hive ETL: removed folder 3-enrich/hive-etl as no longer supported (#286)
Hive storage: updated hive-storage scripts to work with current Redshift-format flatfile (#290)