From b8d823ed7893b5f69ab044838fd061deeb3f3d47 Mon Sep 17 00:00:00 2001 From: Ben Fradet Date: Thu, 29 Mar 2018 10:05:08 +0100 Subject: [PATCH] Spark Enrich: bump scala-common-enrich to 0.32.0 (closes #3674) --- .../spark-enrich/project/Dependencies.scala | 24 +++++++++--------- .../enrichments/registry/GeoIP2-City.mmdb | Bin 0 -> 19403 bytes .../registry/GeoIP2-Connection-Type.mmdb | Bin 0 -> 2463 bytes .../enrichments/registry/GeoIP2-Domain.mmdb | Bin 0 -> 4947 bytes .../enrichments/registry/GeoIP2-ISP.mmdb | Bin 0 -> 75113 bytes .../common/enrichments/registry/GeoIPCity.dat | Bin 4065 -> 0 bytes .../enrichments/registry/GeoIPDomain.dat | Bin 2808 -> 0 bytes .../common/enrichments/registry/GeoIPISP.dat | Bin 4752 -> 0 bytes .../registry/GeoIPNetSpeedCell.dat | Bin 2887 -> 0 bytes .../common/enrichments/registry/GeoIPOrg.dat | Bin 4938 -> 0 bytes .../EnrichJobSpec.scala | 11 ++++---- .../bad/BadTrackerCfLinesSpec.scala | 2 +- .../bad/NullNumericFieldsSpec.scala | 2 +- .../good/ApiRequestEnrichmentCfLineSpec.scala | 20 +++++++-------- .../good/Core2015RefreshSpec.scala | 20 +++++++-------- .../CurrencyConversionTransactionSpec.scala | 20 +++++++-------- .../good/DerivedTstampSpec.scala | 18 ++++++------- .../good/PageViewCfLineSpec.scala | 20 +++++++-------- .../good/SqlQueryEnrichmentCfLineSpec.scala | 22 ++++++++-------- .../good/StructEventCfLineSpec.scala | 22 ++++++++-------- .../good/TransactionCfLineSpec.scala | 18 ++++++------- .../good/UnstructEventBase64CfLineSpec.scala | 16 ++++++------ .../good/UnstructEventCfLineSpec.scala | 20 +++++++-------- integration-tests/sql-enrichment-test.sql | 2 +- 24 files changed, 118 insertions(+), 119 deletions(-) create mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-City.mmdb create mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Connection-Type.mmdb create mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Domain.mmdb create mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-ISP.mmdb delete mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPCity.dat delete mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPDomain.dat delete mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPISP.dat delete mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPNetSpeedCell.dat delete mode 100644 3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPOrg.dat diff --git a/3-enrich/spark-enrich/project/Dependencies.scala b/3-enrich/spark-enrich/project/Dependencies.scala index 5396c95a3f..72e9f3a1ec 100644 --- a/3-enrich/spark-enrich/project/Dependencies.scala +++ b/3-enrich/spark-enrich/project/Dependencies.scala @@ -34,7 +34,7 @@ object Dependencies { val spark = "2.2.0" val scalaz7 = "7.0.9" val scopt = "3.5.0" - val commonEnrich = "0.30.0" + val commonEnrich = "0.32.0" val igluClient = "0.5.0" // Scala (test only) val specs2 = "2.3.13" @@ -45,19 +45,19 @@ object Dependencies { object Libraries { // Java - val hadoopLZO = "com.hadoop.gplcompression" % "hadoop-lzo" % V.hadoopLZO - val elephantBird = "com.twitter.elephantbird" % "elephant-bird-core" % V.elephantBird + val hadoopLZO = "com.hadoop.gplcompression" % "hadoop-lzo" % V.hadoopLZO + val elephantBird = "com.twitter.elephantbird" % "elephant-bird-core" % V.elephantBird // Scala - val sparkCore = "org.apache.spark" %% "spark-core" % V.spark % "provided" - val sparkSQL = "org.apache.spark" %% "spark-sql" % V.spark % "provided" - val scalaz7 = "org.scalaz" %% "scalaz-core" % V.scalaz7 - val scopt = "com.github.scopt" %% "scopt" % V.scopt - val commonEnrich = "com.snowplowanalytics" %% "snowplow-common-enrich" % V.commonEnrich - val igluClient = "com.snowplowanalytics" %% "iglu-scala-client" % V.igluClient + val sparkCore = "org.apache.spark" %% "spark-core" % V.spark % "provided" + val sparkSQL = "org.apache.spark" %% "spark-sql" % V.spark % "provided" + val scalaz7 = "org.scalaz" %% "scalaz-core" % V.scalaz7 + val scopt = "com.github.scopt" %% "scopt" % V.scopt + val commonEnrich = "com.snowplowanalytics" %% "snowplow-common-enrich" % V.commonEnrich + val igluClient = "com.snowplowanalytics" %% "iglu-scala-client" % V.igluClient // Thrift - val snowplowRawEvent = "com.snowplowanalytics" % "snowplow-thrift-raw-event" % V.snowplowRawEvent - val collectorPayload = "com.snowplowanalytics" % "collector-payload-1" % V.collectorPayload + val snowplowRawEvent = "com.snowplowanalytics" % "snowplow-thrift-raw-event" % V.snowplowRawEvent + val collectorPayload = "com.snowplowanalytics" % "collector-payload-1" % V.collectorPayload // Scala (test only) - val specs2 = "org.specs2" %% "specs2-core" % V.specs2 % "test" + val specs2 = "org.specs2" %% "specs2-core" % V.specs2 % "test" } } diff --git a/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-City.mmdb b/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-City.mmdb new file mode 100644 index 0000000000000000000000000000000000000000..ab8b82d2df33b110a891452132887384cfce43dc GIT binary patch literal 19403 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 literal 0 HcmV?d00001 diff --git a/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Connection-Type.mmdb b/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Connection-Type.mmdb new file mode 100644 index 0000000000000000000000000000000000000000..ab73a05cd4c001972ce8f9797dab70aa940036e8 GIT binary patch literal 2463 zcmZA0cYG8@6u|MfA@tr`fTbspfJU)b5`iQ{P$Hs;$KKr}EbQ%`dv}cW^U~`xTTfmmE6>JULz_zd*Y!5rYj<6H#4AY?ss$mzH0W)D1)IcrN z!EC69U11K)h22EtCz0KW=0OAO0rO!`SO9y$-mnn%fkm({Bw#T(dcUhglA30b6v;Fw zXoMz1^nGNBh)Z%QECUZR;6nge*iWOMJ%k+Op#aNae?!!4>HD|nZI3g*4p|{`fKKXz z90)7nAcHyJ!E_!Xa%h}9Oyux5I)auXMUGUqO%Oq*yv*C{3kk(mh<(3i$yMIugQfX7qv%vow?>JXf^zk zyj0{erd$qJw6BvZ>D0HnTJP`@%dZhxt)mBsu7&I1dbmO4Muy!4H^(z?5xJG*ZE!o> z5x3mQl)FUkrgjh98@Jp?%l!uZ(arrH6nQ9aSwr$+ctqq;raTt6JWlNicv9pkTAq$u zo)K9~@>zH;u01dELL9wlzE5ZuDvSqntro&BCp5EH`w+~cnjW!cSPQ0%6svG z_o=nP2k@cDM|6H1cYY%BDap@B@;_!?>2ub70bh!I6|ei6*EsLlKIzTaWG{|DHI2-57zV?k1V+F}7zH+rhA{?x4YOy&II+f4n*bA`6v|){ zOoj%7{$2h1uWe2$@O_oayMdp`w`A3fYS-}!**4p%sdAE@np!WFuU4;JU+*;6yMB5~D#)x`m~?$7Y)Lc*VaCZPGS1QE)Fe%o~A zFPcW59rxK$pWUExdAoY!M7y-nS*GlbtRBOrKNGm~u literal 0 HcmV?d00001 diff --git a/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Domain.mmdb b/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIP2-Domain.mmdb new file mode 100644 index 0000000000000000000000000000000000000000..4c37c34df7536569b36005996787da6a2daa1e1f GIT binary patch literal 4947 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 Nhn-vIqH*6v{~tI&R(Jpa literal 0 HcmV?d00001 diff --git a/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPCity.dat b/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPCity.dat deleted file mode 100644 index 230526c65dde42c5dd55a8dfca27acd77c30f449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4065 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 diff --git a/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPNetSpeedCell.dat b/3-enrich/spark-enrich/src/test/resources/com/snowplowanalytics/snowplow/enrich/common/enrichments/registry/GeoIPNetSpeedCell.dat deleted file mode 100644 index bb528f470dca976ad466b4b0ad6181637ca7a573..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2887 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 "GeoIPCity.dat" - case "isp" => "GeoIPISP.dat" - case "organization" => "GeoIPOrg.dat" - case "domain" => "GeoIPDomain.dat" - case "netspeed" => "GeoIPNetSpeedCell.dat" + case "geo" => "GeoIP2-City.mmdb" + case "isp" => "GeoIP2-ISP.mmdb" + case "domain" => "GeoIP2-Domain.mmdb" + case "connectionType" => "GeoIP2-Connection-Type.mmdb" }) } @@ -430,7 +429,7 @@ object EnrichJobSpec { |} |}, |{ - |"schema": "iglu:com.snowplowanalytics.snowplow/ip_lookups/jsonschema/1-0-0", + |"schema": "iglu:com.snowplowanalytics.snowplow/ip_lookups/jsonschema/2-0-0", |"data": { |"vendor": "com.snowplowanalytics.snowplow", |"name": "ip_lookups", diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/BadTrackerCfLinesSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/BadTrackerCfLinesSpec.scala index ae047e3d06..4ead5553b8 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/BadTrackerCfLinesSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/BadTrackerCfLinesSpec.scala @@ -26,7 +26,7 @@ object BadTrackerCfLinesSpec { val expected = List( """{"line":"2012-05-24 00:08:40 LHR5 3397 74.125.17.210 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html Mozilla/5.0%20(Linux;%20U;%20Android%202.3.4;%20generic)%20AppleWebKit/535.1%20(KHTML,%20like%20Gecko;%20Google%20Web%20Preview)%20Version/4.0%20Mobile%20Safari/535.1 e=pv&p=mobile&page=Psycards%2520book%2520and%2520deck%2520starter%2520pack%2520-%2520Psychic%2520Bazaar&tid=721410&uid=3798cdce0493133e&vid=1&lang=en&refr=http%253A%252F%252Fwww.google.com%252Fm%252Fsearch&res=640x960&cookie=1","errors":[{"level":"error","message":"Field [p]: [mobile] is not a supported tracking platform"}]}""", """{"line":"2012-05-24 00:06:42 LHR5 3402 213.52.50.8 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%205_1_1%20like%20Mac%20OS%20X)%20AppleWebKit/534.46%20(KHTML,%20like%20Gecko)%20Version/5.1%20Mobile/9B206%20Safari/7534.48.3 e=lol&page=Psycards%2520book%2520and%2520deck%2520starter%2520pack%2520-%2520Psychic%2520Bazaar&tid=019539&uid=e7bccbb647296c98&vid=a&p=web&aid=CFe23a&fp=1906624389&tz=Europe%2FLondon&cd=24&lang=en-us&refr=http%253A%252F%252Fwww.google.com%252Fsearch%253Fhl%253Den%2526q%253Dthe%252Bpsycard%252Bstory%2526oq%253Dthe%252Bpsycard%252Bstory%2526aq%253Df%2526aqi%253D%2526aql%253D%2526gs_l%253Dmobile-gws-serp.12...0.0.0.6358.0.0.0.0.0.0.0.0..0.0...0.0.JrNbKlRgHbQ%2526mvs%253D0&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=0&f_gears=1&f_ag=0&res=320x480&cookie=1","errors":[{"level":"error","message":"Field [e]: [lol] is not a recognised event code"},{"level":"error","message":"Field [vid]: cannot convert [a] to Int"},{"level":"error","message":"Unrecognized event [null]"}]}""", - """{"line":"2012-05-24 00:06:42 LHR5 3402 90.194.12.51 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%205_1_1%20like%20Mac%20OS%20X)%20AppleWebKit/534.46%20(KHTML,%20like%20Gecko)%20Version/5.1%20Mobile/9B206%20Safari/7534.48.3 e=lol&ue_px=am9obitzbWl0aA&page=Psycards%2520book%2520and%2520deck%2520starter%2520pack%2520-%2520Psychic%2520Bazaar&tid=019539&uid=e7bccbb647296c98&vid=a&p=web&aid=CFe23a&fp=1906624389&tz=Europe%2FLondon&cd=24&lang=en-us&refr=http%253A%252F%252Fwww.google.com%252Fsearch%253Fhl%253Den%2526q%253Dthe%252Bpsycard%252Bstory%2526oq%253Dthe%252Bpsycard%252Bstory%2526aq%253Df%2526aqi%253D%2526aql%253D%2526gs_l%253Dmobile-gws-serp.12...0.0.0.6358.0.0.0.0.0.0.0.0..0.0...0.0.JrNbKlRgHbQ%2526mvs%253D0&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=0&f_gears=1&f_ag=0&res=320x480&cookie=1","errors":[{"level":"error","message":"Field [e]: [lol] is not a recognised event code"},{"level":"error","message":"Field [vid]: cannot convert [a] to Int"},{"level":"error","message":"Field [ue_px]: invalid JSON [john+smith] with parsing error: Unrecognized token 'john': was expecting ('true', 'false' or 'null') at [Source: john+smith; line: 1, column: 5]"},{"level":"error","message":"Unrecognized event [null]"}]}""" + """{"line":"2012-05-24 00:06:42 LHR5 3402 90.194.12.51 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%205_1_1%20like%20Mac%20OS%20X)%20AppleWebKit/534.46%20(KHTML,%20like%20Gecko)%20Version/5.1%20Mobile/9B206%20Safari/7534.48.3 e=lol&ue_px=am9obitzbWl0aA&page=Psycards%2520book%2520and%2520deck%2520starter%2520pack%2520-%2520Psychic%2520Bazaar&tid=019539&uid=e7bccbb647296c98&vid=a&p=web&aid=CFe23a&fp=1906624389&tz=Europe%2FLondon&cd=24&lang=en-us&refr=http%253A%252F%252Fwww.google.com%252Fsearch%253Fhl%253Den%2526q%253Dthe%252Bpsycard%252Bstory%2526oq%253Dthe%252Bpsycard%252Bstory%2526aq%253Df%2526aqi%253D%2526aql%253D%2526gs_l%253Dmobile-gws-serp.12...0.0.0.6358.0.0.0.0.0.0.0.0..0.0...0.0.JrNbKlRgHbQ%2526mvs%253D0&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=0&f_gears=1&f_ag=0&res=320x480&cookie=1","errors":[{"level":"error","message":"Field [e]: [lol] is not a recognised event code"},{"level":"error","message":"Field [vid]: cannot convert [a] to Int"},{"level":"error","message":"Field [ue_px]: invalid JSON [john+smith] with parsing error: Unrecognized token 'john': was expecting ('true', 'false' or 'null') at [Source: (String)\"john+smith\"; line: 1, column: 5]"},{"level":"error","message":"Unrecognized event [null]"}]}""" ) } diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/NullNumericFieldsSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/NullNumericFieldsSpec.scala index b1f06772e0..dcd1dcb6a2 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/NullNumericFieldsSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/bad/NullNumericFieldsSpec.scala @@ -33,7 +33,7 @@ class NullNumericFieldsSpec extends Specification with EnrichJobSpec { override def appName = "null-numeric-fields" sequential "A job which processes a CF file containing 1 event with null int and double fields" should { - runEnrichJob(NullNumericFieldsSpec.lines, "clj-tomcat", "2", true, List("geo", "organization")) + runEnrichJob(NullNumericFieldsSpec.lines, "clj-tomcat", "2", true, List("geo")) "write a bad row JSON containing the input line and all errors" in { val Some(bads) = readPartFile(dirs.badRows) diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/ApiRequestEnrichmentCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/ApiRequestEnrichmentCfLineSpec.scala index f9b260621e..db34102a3e 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/ApiRequestEnrichmentCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/ApiRequestEnrichmentCfLineSpec.scala @@ -21,7 +21,7 @@ object ApiRequestEnrichmentCfLineSpec { import EnrichJobSpec._ val contexts = """eyJkYXRhIjpbeyJkYXRhIjp7Im9zVHlwZSI6Ik9TWCIsImFwcGxlSWRmdiI6InNvbWVfYXBwbGVJZGZ2Iiwib3BlbklkZmEiOiJzb21lX0lkZmEiLCJjYXJyaWVyIjoic29tZV9jYXJyaWVyIiwiZGV2aWNlTW9kZWwiOiJsYXJnZSIsIm9zVmVyc2lvbiI6IjMuMC4wIiwiYXBwbGVJZGZhIjoic29tZV9hcHBsZUlkZmEiLCJhbmRyb2lkSWRmYSI6InNvbWVfYW5kcm9pZElkZmEiLCJkZXZpY2VNYW51ZmFjdHVyZXIiOiJBbXN0cmFkIn0sInNjaGVtYSI6ImlnbHU6Y29tLnNub3dwbG93YW5hbHl0aWNzLnNub3dwbG93L21vYmlsZV9jb250ZXh0L2pzb25zY2hlbWEvMS0wLTAifSx7ImRhdGEiOnsibG9uZ2l0dWRlIjoxMCwiYmVhcmluZyI6NTAsInNwZWVkIjoxNiwiYWx0aXR1ZGUiOjIwLCJhbHRpdHVkZUFjY3VyYWN5IjowLjMsImxhdGl0dWRlTG9uZ2l0dWRlQWNjdXJhY3kiOjAuNSwibGF0aXR1ZGUiOjd9LCJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9nZW9sb2NhdGlvbl9jb250ZXh0L2pzb25zY2hlbWEvMS0wLTAifV0sInNjaGVtYSI6ImlnbHU6Y29tLnNub3dwbG93YW5hbHl0aWNzLnNub3dwbG93L2NvbnRleHRzL2pzb25zY2hlbWEvMS0wLTAifQ==""" val lines = Lines( - s"2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&cx=$contexts&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow-website%2Fsignup_form_submitted%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22name%22%3A%22Bob%C2%AE%22%2C%22email%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22company%22%3A%22SP%22%2C%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" + s"2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&cx=$contexts&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow-website%2Fsignup_form_submitted%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22name%22%3A%22Bob%C2%AE%22%2C%22email%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22company%22%3A%22SP%22%2C%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" ) val expected = List( "pbzsite", @@ -37,21 +37,21 @@ object ApiRequestEnrichmentCfLineSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "2876815413", "9795bd0203804cd1", "43", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, - null, - "nuvox.net", // Using the MaxMind domain lookup service + null, // Using the MaxMind domain lookup service null, "http://www.psychicbazaar.com/2-tarot-cards", null, // No page title for events @@ -139,7 +139,7 @@ object ApiRequestEnrichmentCfLineSpec { null, null, null, - "America/New_York", + "America/Los_Angeles", null, null, null, diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/Core2015RefreshSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/Core2015RefreshSpec.scala index c59a646962..008f1d638e 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/Core2015RefreshSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/Core2015RefreshSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object Core2015RefreshSpec { import EnrichJobSpec._ val lines = Lines( - "2013-10-07 23:35:30 LHR3 828 70.46.123.145 GET d10wr4jwvp55f9.cloudfront.net /i 200 http://www.psychicbazaar.com/2-tarot-cards/genre/native%2520american/type/all/view/list?utm_source=GoogleSearch&utm_medium=cpc&utm_term=native%2520american%2520tarot%2520deck&utm_content=39254295088&cid=uk-tarot--native-american&gclid=CI6thtbxhboCFTMctAod0FcAdQ Mozilla/5.0%2520(compatible;%2520MSIE%25209.0;%2520Windows%2520NT%25206.0;%2520Trident/5.0) e=pp&page=Tarot%2520cards%2520-%2520Native%2520american%2520-%2520Psychic%2520Bazaar&pp_mix=0&pp_max=0&pp_miy=0&pp_may=0&stm=1381188927571&dtm=1381188927571&tid=734991&vp=784x532&ds=1063x1726&vid=1&sid=75d0fc90-cef4-11e4-8830-0800200c9a66&duid=81aa96d6d6ee6ad4&p=web&tv=js-0.12.0&fp=1202972880&aid=pbzsite&lang=en-gb&cs=utf-8&tz=Europe%252FLondon&refr=http%253A%252F%252Fwww.google.com%252Fuds%252Fafs%253Fq%253Dnative%252520american%252520tarot%252520deck%252520religion%252520and%252520spirituality%252520card%252520corn%252520dance%2525203%2526client%253Dmonstermarketplace-infosites-search%2526channel%253Doutboundteleservices%2526hl%253Den%2526adtest%253Dfalse%2526oe%253Dutf8%2526ie%253Dutf8%2526r%253Dm%2526adpage%253D1%2526fexp%253D21404%25252C7000108%2526jsei%253D4%2526format%253Dn3%25257Cn3%2526ad%253Dn6%2526nocache%253D8231381188870735%2526num%253D0%2526output%253Duds_ads_only%2526v%253D3%2526u_his%253D2%2526u_tz%253D60%2526dt%253D1381188870736%2526u_w%253D1024%2526u_h%253D768%2526biw%253D784%2526bih%253D515%2526psw%253D784%2526psh%253D269%2526frm%253D0%2526ui%253Duv3atlt20ld20lv20ff1st14sd12sv12sa10af3srslipva-wi562-wi562%2526rurl%253Dhttp%25253A%25252F%25252Fwww.vivasearch.com%25252Fsearch%25252F%25253Fq%25253Dnative%25252Bamerican%25252Btarot%25252Bdeck%25252Breligion%25252Band%25252Bspirituality%25252Bcard%25252Bcorn%25252Bdance%25252B3%252526t%25253DH476469%252526gc%25253Dw13%252526sid%25253DCNCRousx1br-1GbJoA3wpw%252526utm_source%25253DH%252526utm_medium%25253Dpaid%252526cid%25253DH476469%2526referer%253Dhttp%25253A%25252F%25252F14468.6103.1.gameshud.com%25252Ffp%25253Fip%25253D81.106.34.172%252526q%25253DNative%25252BAmerican%25252BTarot%25252BDeck%25252B%25252528Religion%25252Band%25252BSpirituality%25252529%25252B%2525255BCards%2525255D%25252Bcorn%25252Bdance%25252B3%252526ua%25253DMozilla%2525252F5.0%25252B%25252528compatible%2525253B%25252BMSIE%25252B9.0%2525253B%25252BWindows%25252BNT%25252B6.0%2525253B%25252BTrident%2525252F5.0%25252529%252526ts%25253D1381188845562%252526sig%25253D3f9mz-69KddNRBXDy8jc95VhqkjyWeTKvvhqTWa9tyDVTnCAEJ6B79LSwsgKcBLPtUfE62OQnCJuvbfJXoGdIS92QkObhKYW1G5yhSG7vCdt61Y6z7RcSupxJ2Y4bw3mzYbSBaegl5DlBva7KCE-JtnOCTrRa7e6hNMxUVr_gL1oBeYFqwy8JZx0VuXyaYisBjdRKQeAyHYf5cb3I6d1CmZXTN3J7h7X2bV1Vp2TkAuJRzcfAj-WOJtneQ&f_java=1&res=1024x768&cd=24&cookie=1&url=http%253A%252F%252Fwww.psychicbazaar.com%252F2-tarot-cards%252Fgenre%252Fnative%252520american%252Ftype%252Fall%252Fview%252Flist%253Futm_source%253DGoogleSearch%2526legacy_campaign%253Dbad_campaign%2526utm_medium%253Dcpc%2526medium%253Dbad_campaign%2526utm_term%253Dnative%252520american%252520tarot%252520deck%2526utm_content%253D39254295088%2526source%253Dbad_source%2526medium%253Dbad_medium%2526legacy_term%253Dbad_term%2526cid%253Duk-tarot--native-american%2526gclid%253DCI6thtbxhboCFTMctAod0FcAdQ%2526_sp%253D4da6ee6d6d69aa18.1381188927100&ua=IE%25207%2520-%2520Mozilla%252F4.0%2520(compatible%253B%2520MSIE%25207.0%253B%2520Windows%2520NT%25205.1%253B%2520.NET%2520CLR%25201.1.4322%253B%2520.NET%2520CLR%25202.0.50727%253B%2520.NET%2520CLR%25203.0.04506.30) - Hit oNtMBkd1kwF3sDxbjn7s-uaTSS7xEELs7o7B7lPosUWuMy3lQLc_QA==" + "2013-10-07 23:35:30 LHR3 828 216.160.83.56 GET d10wr4jwvp55f9.cloudfront.net /i 200 http://www.psychicbazaar.com/2-tarot-cards/genre/native%2520american/type/all/view/list?utm_source=GoogleSearch&utm_medium=cpc&utm_term=native%2520american%2520tarot%2520deck&utm_content=39254295088&cid=uk-tarot--native-american&gclid=CI6thtbxhboCFTMctAod0FcAdQ Mozilla/5.0%2520(compatible;%2520MSIE%25209.0;%2520Windows%2520NT%25206.0;%2520Trident/5.0) e=pp&page=Tarot%2520cards%2520-%2520Native%2520american%2520-%2520Psychic%2520Bazaar&pp_mix=0&pp_max=0&pp_miy=0&pp_may=0&stm=1381188927571&dtm=1381188927571&tid=734991&vp=784x532&ds=1063x1726&vid=1&sid=75d0fc90-cef4-11e4-8830-0800200c9a66&duid=81aa96d6d6ee6ad4&p=web&tv=js-0.12.0&fp=1202972880&aid=pbzsite&lang=en-gb&cs=utf-8&tz=Europe%252FLondon&refr=http%253A%252F%252Fwww.google.com%252Fuds%252Fafs%253Fq%253Dnative%252520american%252520tarot%252520deck%252520religion%252520and%252520spirituality%252520card%252520corn%252520dance%2525203%2526client%253Dmonstermarketplace-infosites-search%2526channel%253Doutboundteleservices%2526hl%253Den%2526adtest%253Dfalse%2526oe%253Dutf8%2526ie%253Dutf8%2526r%253Dm%2526adpage%253D1%2526fexp%253D21404%25252C7000108%2526jsei%253D4%2526format%253Dn3%25257Cn3%2526ad%253Dn6%2526nocache%253D8231381188870735%2526num%253D0%2526output%253Duds_ads_only%2526v%253D3%2526u_his%253D2%2526u_tz%253D60%2526dt%253D1381188870736%2526u_w%253D1024%2526u_h%253D768%2526biw%253D784%2526bih%253D515%2526psw%253D784%2526psh%253D269%2526frm%253D0%2526ui%253Duv3atlt20ld20lv20ff1st14sd12sv12sa10af3srslipva-wi562-wi562%2526rurl%253Dhttp%25253A%25252F%25252Fwww.vivasearch.com%25252Fsearch%25252F%25253Fq%25253Dnative%25252Bamerican%25252Btarot%25252Bdeck%25252Breligion%25252Band%25252Bspirituality%25252Bcard%25252Bcorn%25252Bdance%25252B3%252526t%25253DH476469%252526gc%25253Dw13%252526sid%25253DCNCRousx1br-1GbJoA3wpw%252526utm_source%25253DH%252526utm_medium%25253Dpaid%252526cid%25253DH476469%2526referer%253Dhttp%25253A%25252F%25252F14468.6103.1.gameshud.com%25252Ffp%25253Fip%25253D81.106.34.172%252526q%25253DNative%25252BAmerican%25252BTarot%25252BDeck%25252B%25252528Religion%25252Band%25252BSpirituality%25252529%25252B%2525255BCards%2525255D%25252Bcorn%25252Bdance%25252B3%252526ua%25253DMozilla%2525252F5.0%25252B%25252528compatible%2525253B%25252BMSIE%25252B9.0%2525253B%25252BWindows%25252BNT%25252B6.0%2525253B%25252BTrident%2525252F5.0%25252529%252526ts%25253D1381188845562%252526sig%25253D3f9mz-69KddNRBXDy8jc95VhqkjyWeTKvvhqTWa9tyDVTnCAEJ6B79LSwsgKcBLPtUfE62OQnCJuvbfJXoGdIS92QkObhKYW1G5yhSG7vCdt61Y6z7RcSupxJ2Y4bw3mzYbSBaegl5DlBva7KCE-JtnOCTrRa7e6hNMxUVr_gL1oBeYFqwy8JZx0VuXyaYisBjdRKQeAyHYf5cb3I6d1CmZXTN3J7h7X2bV1Vp2TkAuJRzcfAj-WOJtneQ&f_java=1&res=1024x768&cd=24&cookie=1&url=http%253A%252F%252Fwww.psychicbazaar.com%252F2-tarot-cards%252Fgenre%252Fnative%252520american%252Ftype%252Fall%252Fview%252Flist%253Futm_source%253DGoogleSearch%2526legacy_campaign%253Dbad_campaign%2526utm_medium%253Dcpc%2526medium%253Dbad_campaign%2526utm_term%253Dnative%252520american%252520tarot%252520deck%2526utm_content%253D39254295088%2526source%253Dbad_source%2526medium%253Dbad_medium%2526legacy_term%253Dbad_term%2526cid%253Duk-tarot--native-american%2526gclid%253DCI6thtbxhboCFTMctAod0FcAdQ%2526_sp%253D4da6ee6d6d69aa18.1381188927100&ua=IE%25207%2520-%2520Mozilla%252F4.0%2520(compatible%253B%2520MSIE%25207.0%253B%2520Windows%2520NT%25205.1%253B%2520.NET%2520CLR%25201.1.4322%253B%2520.NET%2520CLR%25202.0.50727%253B%2520.NET%2520CLR%25203.0.04506.30) - Hit oNtMBkd1kwF3sDxbjn7s-uaTSS7xEELs7o7B7lPosUWuMy3lQLc_QA==" ) val expected = List( @@ -37,19 +37,19 @@ object Core2015RefreshSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "1202972880", "81aa96d6d6ee6ad4", "1", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", - null, - "26.461502", - "-80.0728", - "Florida", - null, // No additional MaxMind databases used + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", + null, // Using the ISP lookup service null, null, null, @@ -139,7 +139,7 @@ object Core2015RefreshSpec { null, null, null, - "America/New_York", + "America/Los_Angeles", "CI6thtbxhboCFTMctAod0FcAdQ", "Google", null, diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/CurrencyConversionTransactionSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/CurrencyConversionTransactionSpec.scala index ccd4422bcf..eb497f1274 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/CurrencyConversionTransactionSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/CurrencyConversionTransactionSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object CurrencyConversionTransactionSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 - Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=tr&tr_id=order-123&tr_af=psychicbazaar&tr_tt=8000&tr_tx=200&tr_sh=50&tr_ci=London&tr_st=England&tr_co=UK&dtm=1364177017342&tr_cu=USD&tid=028288&duid=a279872d76480afb&vid=1&aid=CFe23a&lang=en-GB&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=0&res=1920x1080&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail&cv=clj-0.3.0-tom-0.0.2" + "2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 - Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=tr&tr_id=order-123&tr_af=psychicbazaar&tr_tt=8000&tr_tx=200&tr_sh=50&tr_ci=London&tr_st=England&tr_co=UK&dtm=1364177017342&tr_cu=USD&tid=028288&duid=a279872d76480afb&vid=1&aid=CFe23a&lang=en-GB&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=0&res=1920x1080&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail&cv=clj-0.3.0-tom-0.0.2" ) val expected = List( @@ -43,16 +43,16 @@ object CurrencyConversionTransactionSpec { "1", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, null, - null, - "Cable/DSL", // Using the MaxMind netspeed lookup service + null, // Using the MaxMind netspeed lookup service "http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail", null, // No page title for transactions null, @@ -139,7 +139,7 @@ object CurrencyConversionTransactionSpec { null, // ti_currency null, // ti_price_base "EUR", // base_currency - "America/New_York", + "America/Los_Angeles", null, null, null, @@ -166,7 +166,7 @@ class CurrencyConversionTransactionSpec extends Specification with EnrichJobSpec if (sys.env.get("OER_KEY").isDefined) { "A job which processes a CloudFront file containing 1 valid transaction" should { runEnrichJob(CurrencyConversionTransactionSpec.lines, "cloudfront", "4", true, - List("geo", "netspeed"), true) + List("geo"), true) "correctly output 1 transaction" in { val Some(goods) = readPartFile(dirs.output) diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/DerivedTstampSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/DerivedTstampSpec.scala index 4dc570761a..76b1ea5322 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/DerivedTstampSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/DerivedTstampSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object DerivedTstampSpec { import EnrichJobSpec._ val lines = Lines( - "2013-10-07 23:35:30 LHR3 828 70.46.123.145 GET d10wr4jwvp55f9.cloudfront.net /i 200 http://www.psychicbazaar.com/2-tarot-cards/genre/native%2520american/type/all/view/list?utm_source=GoogleSearch&utm_medium=cpc&utm_term=native%2520american%2520tarot%2520deck&utm_content=39254295088&cid=uk-tarot--native-american&gclid=CI6thtbxhboCFTMctAod0FcAdQ Mozilla/5.0%2520(compatible;%2520MSIE%25209.0;%2520Windows%2520NT%25206.0;%2520Trident/5.0) e=pp&page=Tarot%2520cards%2520-%2520Native%2520american%2520-%2520Psychic%2520Bazaar&pp_mix=0&pp_max=0&pp_miy=0&pp_may=0&stm=1381188927572&dtm=1381188927571&tid=734991&vp=784x532&ds=1063x1726&vid=1&sid=75d0fc90-cef4-11e4-8830-0800200c9a66&duid=81aa96d6d6ee6ad4&p=web&tv=js-0.12.0&fp=1202972880&aid=pbzsite&lang=en-gb&cs=utf-8&tz=Europe%252FLondon&refr=http%253A%252F%252Fwww.google.com%252Fuds%252Fafs%253Fq%253Dnative%252520american%252520tarot%252520deck%252520religion%252520and%252520spirituality%252520card%252520corn%252520dance%2525203%2526client%253Dmonstermarketplace-infosites-search%2526channel%253Doutboundteleservices%2526hl%253Den%2526adtest%253Dfalse%2526oe%253Dutf8%2526ie%253Dutf8%2526r%253Dm%2526adpage%253D1%2526fexp%253D21404%25252C7000108%2526jsei%253D4%2526format%253Dn3%25257Cn3%2526ad%253Dn6%2526nocache%253D8231381188870735%2526num%253D0%2526output%253Duds_ads_only%2526v%253D3%2526u_his%253D2%2526u_tz%253D60%2526dt%253D1381188870736%2526u_w%253D1024%2526u_h%253D768%2526biw%253D784%2526bih%253D515%2526psw%253D784%2526psh%253D269%2526frm%253D0%2526ui%253Duv3atlt20ld20lv20ff1st14sd12sv12sa10af3srslipva-wi562-wi562%2526rurl%253Dhttp%25253A%25252F%25252Fwww.vivasearch.com%25252Fsearch%25252F%25253Fq%25253Dnative%25252Bamerican%25252Btarot%25252Bdeck%25252Breligion%25252Band%25252Bspirituality%25252Bcard%25252Bcorn%25252Bdance%25252B3%252526t%25253DH476469%252526gc%25253Dw13%252526sid%25253DCNCRousx1br-1GbJoA3wpw%252526utm_source%25253DH%252526utm_medium%25253Dpaid%252526cid%25253DH476469%2526referer%253Dhttp%25253A%25252F%25252F14468.6103.1.gameshud.com%25252Ffp%25253Fip%25253D81.106.34.172%252526q%25253DNative%25252BAmerican%25252BTarot%25252BDeck%25252B%25252528Religion%25252Band%25252BSpirituality%25252529%25252B%2525255BCards%2525255D%25252Bcorn%25252Bdance%25252B3%252526ua%25253DMozilla%2525252F5.0%25252B%25252528compatible%2525253B%25252BMSIE%25252B9.0%2525253B%25252BWindows%25252BNT%25252B6.0%2525253B%25252BTrident%2525252F5.0%25252529%252526ts%25253D1381188845562%252526sig%25253D3f9mz-69KddNRBXDy8jc95VhqkjyWeTKvvhqTWa9tyDVTnCAEJ6B79LSwsgKcBLPtUfE62OQnCJuvbfJXoGdIS92QkObhKYW1G5yhSG7vCdt61Y6z7RcSupxJ2Y4bw3mzYbSBaegl5DlBva7KCE-JtnOCTrRa7e6hNMxUVr_gL1oBeYFqwy8JZx0VuXyaYisBjdRKQeAyHYf5cb3I6d1CmZXTN3J7h7X2bV1Vp2TkAuJRzcfAj-WOJtneQ&f_java=1&res=1024x768&cd=24&cookie=1&url=http%253A%252F%252Fwww.psychicbazaar.com%252F2-tarot-cards%252Fgenre%252Fnative%252520american%252Ftype%252Fall%252Fview%252Flist%253Futm_source%253DGoogleSearch%2526legacy_campaign%253Dbad_campaign%2526utm_medium%253Dcpc%2526medium%253Dbad_campaign%2526utm_term%253Dnative%252520american%252520tarot%252520deck%2526utm_content%253D39254295088%2526source%253Dbad_source%2526medium%253Dbad_medium%2526legacy_term%253Dbad_term%2526cid%253Duk-tarot--native-american%2526gclid%253DCI6thtbxhboCFTMctAod0FcAdQ%2526_sp%253D4da6ee6d6d69aa18.1381188927100&ua=IE%25207%2520-%2520Mozilla%252F4.0%2520(compatible%253B%2520MSIE%25207.0%253B%2520Windows%2520NT%25205.1%253B%2520.NET%2520CLR%25201.1.4322%253B%2520.NET%2520CLR%25202.0.50727%253B%2520.NET%2520CLR%25203.0.04506.30) - Hit oNtMBkd1kwF3sDxbjn7s-uaTSS7xEELs7o7B7lPosUWuMy3lQLc_QA==" + "2013-10-07 23:35:30 LHR3 828 216.160.83.56 GET d10wr4jwvp55f9.cloudfront.net /i 200 http://www.psychicbazaar.com/2-tarot-cards/genre/native%2520american/type/all/view/list?utm_source=GoogleSearch&utm_medium=cpc&utm_term=native%2520american%2520tarot%2520deck&utm_content=39254295088&cid=uk-tarot--native-american&gclid=CI6thtbxhboCFTMctAod0FcAdQ Mozilla/5.0%2520(compatible;%2520MSIE%25209.0;%2520Windows%2520NT%25206.0;%2520Trident/5.0) e=pp&page=Tarot%2520cards%2520-%2520Native%2520american%2520-%2520Psychic%2520Bazaar&pp_mix=0&pp_max=0&pp_miy=0&pp_may=0&stm=1381188927572&dtm=1381188927571&tid=734991&vp=784x532&ds=1063x1726&vid=1&sid=75d0fc90-cef4-11e4-8830-0800200c9a66&duid=81aa96d6d6ee6ad4&p=web&tv=js-0.12.0&fp=1202972880&aid=pbzsite&lang=en-gb&cs=utf-8&tz=Europe%252FLondon&refr=http%253A%252F%252Fwww.google.com%252Fuds%252Fafs%253Fq%253Dnative%252520american%252520tarot%252520deck%252520religion%252520and%252520spirituality%252520card%252520corn%252520dance%2525203%2526client%253Dmonstermarketplace-infosites-search%2526channel%253Doutboundteleservices%2526hl%253Den%2526adtest%253Dfalse%2526oe%253Dutf8%2526ie%253Dutf8%2526r%253Dm%2526adpage%253D1%2526fexp%253D21404%25252C7000108%2526jsei%253D4%2526format%253Dn3%25257Cn3%2526ad%253Dn6%2526nocache%253D8231381188870735%2526num%253D0%2526output%253Duds_ads_only%2526v%253D3%2526u_his%253D2%2526u_tz%253D60%2526dt%253D1381188870736%2526u_w%253D1024%2526u_h%253D768%2526biw%253D784%2526bih%253D515%2526psw%253D784%2526psh%253D269%2526frm%253D0%2526ui%253Duv3atlt20ld20lv20ff1st14sd12sv12sa10af3srslipva-wi562-wi562%2526rurl%253Dhttp%25253A%25252F%25252Fwww.vivasearch.com%25252Fsearch%25252F%25253Fq%25253Dnative%25252Bamerican%25252Btarot%25252Bdeck%25252Breligion%25252Band%25252Bspirituality%25252Bcard%25252Bcorn%25252Bdance%25252B3%252526t%25253DH476469%252526gc%25253Dw13%252526sid%25253DCNCRousx1br-1GbJoA3wpw%252526utm_source%25253DH%252526utm_medium%25253Dpaid%252526cid%25253DH476469%2526referer%253Dhttp%25253A%25252F%25252F14468.6103.1.gameshud.com%25252Ffp%25253Fip%25253D81.106.34.172%252526q%25253DNative%25252BAmerican%25252BTarot%25252BDeck%25252B%25252528Religion%25252Band%25252BSpirituality%25252529%25252B%2525255BCards%2525255D%25252Bcorn%25252Bdance%25252B3%252526ua%25253DMozilla%2525252F5.0%25252B%25252528compatible%2525253B%25252BMSIE%25252B9.0%2525253B%25252BWindows%25252BNT%25252B6.0%2525253B%25252BTrident%2525252F5.0%25252529%252526ts%25253D1381188845562%252526sig%25253D3f9mz-69KddNRBXDy8jc95VhqkjyWeTKvvhqTWa9tyDVTnCAEJ6B79LSwsgKcBLPtUfE62OQnCJuvbfJXoGdIS92QkObhKYW1G5yhSG7vCdt61Y6z7RcSupxJ2Y4bw3mzYbSBaegl5DlBva7KCE-JtnOCTrRa7e6hNMxUVr_gL1oBeYFqwy8JZx0VuXyaYisBjdRKQeAyHYf5cb3I6d1CmZXTN3J7h7X2bV1Vp2TkAuJRzcfAj-WOJtneQ&f_java=1&res=1024x768&cd=24&cookie=1&url=http%253A%252F%252Fwww.psychicbazaar.com%252F2-tarot-cards%252Fgenre%252Fnative%252520american%252Ftype%252Fall%252Fview%252Flist%253Futm_source%253DGoogleSearch%2526legacy_campaign%253Dbad_campaign%2526utm_medium%253Dcpc%2526medium%253Dbad_campaign%2526utm_term%253Dnative%252520american%252520tarot%252520deck%2526utm_content%253D39254295088%2526source%253Dbad_source%2526medium%253Dbad_medium%2526legacy_term%253Dbad_term%2526cid%253Duk-tarot--native-american%2526gclid%253DCI6thtbxhboCFTMctAod0FcAdQ%2526_sp%253D4da6ee6d6d69aa18.1381188927100&ua=IE%25207%2520-%2520Mozilla%252F4.0%2520(compatible%253B%2520MSIE%25207.0%253B%2520Windows%2520NT%25205.1%253B%2520.NET%2520CLR%25201.1.4322%253B%2520.NET%2520CLR%25202.0.50727%253B%2520.NET%2520CLR%25203.0.04506.30) - Hit oNtMBkd1kwF3sDxbjn7s-uaTSS7xEELs7o7B7lPosUWuMy3lQLc_QA==" ) val expected = List( @@ -37,18 +37,18 @@ object DerivedTstampSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "1202972880", "81aa96d6d6ee6ad4", "1", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", - null, - "26.461502", - "-80.0728", - "Florida", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, // No additional MaxMind databases used null, null, @@ -139,7 +139,7 @@ object DerivedTstampSpec { null, null, null, - "America/New_York", + "America/Los_Angeles", "CI6thtbxhboCFTMctAod0FcAdQ", "Google", null, diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/PageViewCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/PageViewCfLineSpec.scala index b603d3c330..247f042163 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/PageViewCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/PageViewCfLineSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object PageViewCfLineSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-24 00:06:42 LHR5 3402 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/crystals/335-howlite-tumble-stone.html?view=print#detail Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%205_1_1%20like%20Mac%20OS%20X)%20AppleWebKit/534.46%20(KHTML,%20like%20Gecko)%20Version/5.1%20Mobile/9B206%20Safari/7534.48.3 &e=pv&eid=550e8400-e29b-41d4-a716-446655440000&page=Psychic%20Bazaar%09Shop&dtm=1364219529188&tid=637309&vp=2560x935&ds=2543x1273&vid=41&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%253A%252F%252Fwww.google.com%252Fsearch%253Fq%253Dgateway%252Boracle%252Bcards%252Bdenise%252Blinn%2526hl%253Den%2526client%253Dsafari&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Fcrystals%2F335-howlite-tumble-stone.html%3Fview%3Dprint%23detail&cv=clj-0.5.0-tom-0.0.4" + "2012-05-24 00:06:42 LHR5 3402 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/crystals/335-howlite-tumble-stone.html?view=print#detail Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%205_1_1%20like%20Mac%20OS%20X)%20AppleWebKit/534.46%20(KHTML,%20like%20Gecko)%20Version/5.1%20Mobile/9B206%20Safari/7534.48.3 &e=pv&eid=550e8400-e29b-41d4-a716-446655440000&page=Psychic%20Bazaar%09Shop&dtm=1364219529188&tid=637309&vp=2560x935&ds=2543x1273&vid=41&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%253A%252F%252Fwww.google.com%252Fsearch%253Fq%253Dgateway%252Boracle%252Bcards%252Bdenise%252Blinn%2526hl%253Den%2526client%253Dsafari&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Fcrystals%2F335-howlite-tumble-stone.html%3Fview%3Dprint%23detail&cv=clj-0.5.0-tom-0.0.4" ) val expected = List( "pbzsite", @@ -36,20 +36,20 @@ object PageViewCfLineSpec { "clj-0.5.0-tom-0.0.4", etlVersion, null, // No user_id set - "70.46.123.x", + "216.160.83.x", "2876815413", "9795bd0203804cd1", "41", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", - null, - "26.461502", - "-80.0728", - "Florida", - "FDN Communications", // Using the ISP lookup service - null, + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", + "Century Link", // Using the ISP lookup service + "Lariat Software", null, null, "http://www.psychicbazaar.com/crystals/335-howlite-tumble-stone.html?view=print#detail", diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/SqlQueryEnrichmentCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/SqlQueryEnrichmentCfLineSpec.scala index b1b4b32082..bf276d61ad 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/SqlQueryEnrichmentCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/SqlQueryEnrichmentCfLineSpec.scala @@ -21,7 +21,7 @@ object SqlQueryEnrichmentCfLineSpec { import EnrichJobSpec._ val contexts = """eyJkYXRhIjpbeyJkYXRhIjp7Im9zVHlwZSI6Ik9TWCIsImFwcGxlSWRmdiI6InNvbWVfYXBwbGVJZGZ2Iiwib3BlbklkZmEiOiJzb21lX0lkZmEiLCJjYXJyaWVyIjoiYm9yaXMiLCJkZXZpY2VNb2RlbCI6ImxhcmdlIiwib3NWZXJzaW9uIjoiMy4wLjAiLCJhcHBsZUlkZmEiOiJzb21lX2FwcGxlSWRmYSIsImFuZHJvaWRJZGZhIjoic29tZV9hbmRyb2lkSWRmYSIsImRldmljZU1hbnVmYWN0dXJlciI6IkFtc3RyYWQifSwic2NoZW1hIjoiaWdsdTpjb20uc25vd3Bsb3dhbmFseXRpY3Muc25vd3Bsb3cvbW9iaWxlX2NvbnRleHQvanNvbnNjaGVtYS8xLTAtMCJ9LHsiZGF0YSI6eyJsb25naXR1ZGUiOjEwLCJiZWFyaW5nIjo1MCwic3BlZWQiOjI1LjAsImFsdGl0dWRlIjoyMCwiYWx0aXR1ZGVBY2N1cmFjeSI6MC4zLCJsYXRpdHVkZUxvbmdpdHVkZUFjY3VyYWN5IjowLjUsImxhdGl0dWRlIjo3fSwic2NoZW1hIjoiaWdsdTpjb20uc25vd3Bsb3dhbmFseXRpY3Muc25vd3Bsb3cvZ2VvbG9jYXRpb25fY29udGV4dC9qc29uc2NoZW1hLzEtMC0wIn1dLCJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0wIn0=""" val lines = Lines( - s"2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&cx=$contexts&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow-website%2Fsignup_form_submitted%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22name%22%3A%22Bob%C2%AE%22%2C%22email%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22company%22%3A%22SP%22%2C%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" + s"2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&cx=$contexts&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow-website%2Fsignup_form_submitted%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22name%22%3A%22Bob%C2%AE%22%2C%22email%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22company%22%3A%22SP%22%2C%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" ) val expected = List( "pbzsite", @@ -37,21 +37,21 @@ object SqlQueryEnrichmentCfLineSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "2876815413", "9795bd0203804cd1", "43", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, - null, - "nuvox.net", // Using the MaxMind domain lookup service + null, // Using the MaxMind domain lookup service null, "http://www.psychicbazaar.com/2-tarot-cards", null, // No page title for events @@ -139,14 +139,14 @@ object SqlQueryEnrichmentCfLineSpec { null, null, null, - "America/New_York", + "America/Los_Angeles", null, null, null, null, null, null, - """{"schema":"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1","data":[{"schema":"iglu:com.acme/user/jsonschema/1-0-0","data":[{"city":"Delray Beach","country":"US","pk":4}]},{"schema":"iglu:com.snowplowanalytics.snowplow/ua_parser_context/jsonschema/1-0-0","data":{"useragentFamily":"Firefox","useragentMajor":"12","useragentMinor":"0","useragentPatch":null,"useragentVersion":"Firefox 12.0","osFamily":"Windows 7","osMajor":null,"osMinor":null,"osPatch":null,"osPatchMinor":null,"osVersion":"Windows 7","deviceFamily":"Other"}}]}""", + """{"schema":"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1","data":[{"schema":"iglu:com.acme/user/jsonschema/1-0-0","data":[{"city":"Milton","country":"US","pk":4}]},{"schema":"iglu:com.snowplowanalytics.snowplow/ua_parser_context/jsonschema/1-0-0","data":{"useragentFamily":"Firefox","useragentMajor":"12","useragentMinor":"0","useragentPatch":null,"useragentVersion":"Firefox 12.0","osFamily":"Windows 7","osMajor":null,"osMinor":null,"osPatch":null,"osPatchMinor":null,"osVersion":"Windows 7","deviceFamily":"Other"}}]}""", null, "2012-05-27 11:35:53.000", "com.snowplowanalytics.snowplow-website", diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/StructEventCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/StructEventCfLineSpec.scala index 578505e152..9a2b0af4f2 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/StructEventCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/StructEventCfLineSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object StructEventCfLineSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-27 11:35:53 DFW3 3343 255.255.255.255 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/internal/_session/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=se&se_ca=ecomm&se_ac=add-to-basket&se_la=%CE%A7%CE%B1%CF%81%CE%B9%CF%84%CE%AF%CE%BD%CE%B7&se_pr=1&ip=70.46.123.145&se_va=35708.23&dtm=1364230969450&tid=598951&evn=com.snowplowanalytics&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail" + "2012-05-27 11:35:53 DFW3 3343 255.255.255.255 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/internal/_session/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=se&se_ca=ecomm&se_ac=add-to-basket&se_la=%CE%A7%CE%B1%CF%81%CE%B9%CF%84%CE%AF%CE%BD%CE%B7&se_pr=1&ip=216.160.83.56&se_va=35708.23&dtm=1364230969450&tid=598951&evn=com.snowplowanalytics&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail" ) val expected = List( "pbzsite", @@ -36,20 +36,20 @@ object StructEventCfLineSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.x.x", // Anonymization and geo both work using &ip= + "216.160.x.x", // Anonymization and geo both work using &ip= "2876815413", "9795bd0203804cd1", "43", null, // No network_userid set - "US", // Anonymization and geo both work using &ip= - "FL", - "Delray Beach", - null, - "26.461502", - "-80.0728", - "Florida", + "US", // US geolocation + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, // No additional MaxMind databases used - "DSLAM WAN Allocation", // Using the MaxMind organization lookup service + null, null, null, "http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail", @@ -143,7 +143,7 @@ class StructEventCfLineSpec extends Specification with EnrichJobSpec { override def appName = "struct-event-cf-lines" sequential "A job which processes a CloudFront file containing 1 valid custom structured event" should { - runEnrichJob(StructEventCfLineSpec.lines, "cloudfront", "2", true, List("geo", "organization")) + runEnrichJob(StructEventCfLineSpec.lines, "cloudfront", "2", true, List("geo")) "correctly output 1 custom structured event" in { val Some(goods) = readPartFile(dirs.output) diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/TransactionCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/TransactionCfLineSpec.scala index 4cd13d9d30..63d49161e6 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/TransactionCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/TransactionCfLineSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object TransactionCfLineSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 - Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=tr&tr_id=order-123&tr_af=psychicbazaar&tr_tt=8000&tr_tx=200&tr_sh=50&tr_ci=London&tr_st=England&tr_co=UK&dtm=1364177017342&cx=eyJkYXRhIjpbeyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy91cmlfcmVkaXJlY3QvanNvbnNjaGVtYS8xLTAtMCIsImRhdGEiOnsidXJpIjoiaHR0cDovL3Nub3dwbG93YW5hbHl0aWNzLmNvbS8ifX1dLCJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0wIn0=&tid=028288&duid=a279872d76480afb&vid=1&aid=CFe23a&lang=en-GB&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=0&res=1920x1080&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail&cv=clj-0.3.0-tom-0.0.2" + "2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 - Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=tr&tr_id=order-123&tr_af=psychicbazaar&tr_tt=8000&tr_tx=200&tr_sh=50&tr_ci=London&tr_st=England&tr_co=UK&dtm=1364177017342&cx=eyJkYXRhIjpbeyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy91cmlfcmVkaXJlY3QvanNvbnNjaGVtYS8xLTAtMCIsImRhdGEiOnsidXJpIjoiaHR0cDovL3Nub3dwbG93YW5hbHl0aWNzLmNvbS8ifX1dLCJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0wIn0=&tid=028288&duid=a279872d76480afb&vid=1&aid=CFe23a&lang=en-GB&f_pdf=0&f_qt=1&f_realp=0&f_wma=1&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=0&res=1920x1080&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2Foracles%2F119-psycards-book-and-deck-starter-pack.html%3Fview%3Dprint%23detail&cv=clj-0.3.0-tom-0.0.2" ) val expected = List( "CFe23a", @@ -42,16 +42,16 @@ object TransactionCfLineSpec { "1", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, null, - null, - "Cable/DSL", // Using the MaxMind netspeed lookup service + null, // Using the MaxMind netspeed lookup service "http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail", null, // No page title for transactions null, @@ -142,7 +142,7 @@ class TransactionCfLineSpec extends Specification with EnrichJobSpec { override def appName = "transaction-cf-lines" sequential "A job which processes a CloudFront file containing 1 valid transaction" should { - runEnrichJob(TransactionCfLineSpec.lines, "cloudfront", "4", true, List("geo", "netspeed")) + runEnrichJob(TransactionCfLineSpec.lines, "cloudfront", "4", true, List("geo", "connectionType")) "correctly output 1 transaction" in { val Some(goods) = readPartFile(dirs.output) diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventBase64CfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventBase64CfLineSpec.scala index 6125404404..4a4d2ad145 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventBase64CfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventBase64CfLineSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object UnstructEventBase64CfLineSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&ue_px=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy91bnN0cnVjdF9ldmVudC9qc29uc2NoZW1hLzEtMC0wIiwiZGF0YSI6eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy5pbnB1dC1hZGFwdGVycy9zZWdtZW50X3dlYmhvb2tfY29uZmlnL2pzb25zY2hlbWEvMS0wLTAiLCJkYXRhIjp7InZlbmRvciI6Is6nzrHPgc65z4TOr869zrcgTkVXIFVuaWNvZGUgdGVzdCIsIm5hbWUiOiJhbGV4K3Rlc3RAc25vd3Bsb3dhbmFseXRpY3MuY29tIiwicGFyYW1ldGVycyI6eyJtYXBwaW5ncyI6eyJldmVudHNQZXJNb250aCI6IjwgMSBtaWxsaW9uIiwic2VydmljZVR5cGUiOiJ1bnN1cmUifX19fX0=&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" + "2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&ue_px=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy91bnN0cnVjdF9ldmVudC9qc29uc2NoZW1hLzEtMC0wIiwiZGF0YSI6eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy5pbnB1dC1hZGFwdGVycy9zZWdtZW50X3dlYmhvb2tfY29uZmlnL2pzb25zY2hlbWEvMS0wLTAiLCJkYXRhIjp7InZlbmRvciI6Is6nzrHPgc65z4TOr869zrcgTkVXIFVuaWNvZGUgdGVzdCIsIm5hbWUiOiJhbGV4K3Rlc3RAc25vd3Bsb3dhbmFseXRpY3MuY29tIiwicGFyYW1ldGVycyI6eyJtYXBwaW5ncyI6eyJldmVudHNQZXJNb250aCI6IjwgMSBtaWxsaW9uIiwic2VydmljZVR5cGUiOiJ1bnN1cmUifX19fX0=&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" ) val expected = List( "pbzsite", @@ -36,21 +36,21 @@ object UnstructEventBase64CfLineSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "2876815413", "9795bd0203804cd1", "43", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, null, - "nuvox.net", // Using the MaxMind domain lookup service null, "http://www.psychicbazaar.com/2-tarot-cards", null, // No page title for events diff --git a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventCfLineSpec.scala b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventCfLineSpec.scala index b9b469e211..253110c9fa 100644 --- a/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventCfLineSpec.scala +++ b/3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/UnstructEventCfLineSpec.scala @@ -20,7 +20,7 @@ import org.specs2.mutable.Specification object UnstructEventCfLineSpec { import EnrichJobSpec._ val lines = Lines( - "2012-05-27 11:35:53 DFW3 3343 70.46.123.145 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow.input-adapters%2Fsegment_webhook_config%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22vendor%22%3A%22%CE%A7%CE%B1%CF%81%CE%B9%CF%84%CE%AF%CE%BD%CE%B7%20NEW%20Unicode%20test%22%2C%22name%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22parameters%22%3A%7B%22mappings%22%3A%7B%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" + "2012-05-27 11:35:53 DFW3 3343 216.160.83.56 GET d3gs014xn8p70.cloudfront.net /ice.png 200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:12.0)%20Gecko/20100101%20Firefox/12.0 &e=ue&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow.input-adapters%2Fsegment_webhook_config%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22vendor%22%3A%22%CE%A7%CE%B1%CF%81%CE%B9%CF%84%CE%AF%CE%BD%CE%B7%20NEW%20Unicode%20test%22%2C%22name%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22parameters%22%3A%7B%22mappings%22%3A%7B%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards" ) val expected = List( "pbzsite", @@ -36,21 +36,21 @@ object UnstructEventCfLineSpec { "cloudfront", etlVersion, null, // No user_id set - "70.46.123.145", + "216.160.83.56", "2876815413", "9795bd0203804cd1", "43", null, // No network_userid set "US", // US geolocation - "FL", - "Delray Beach", + "WA", + "Milton", + "98354", + "47.2513", + "-122.3149", + "Washington", null, - "26.461502", - "-80.0728", - "Florida", null, - null, - "nuvox.net", // Using the MaxMind domain lookup service + null, // Using the MaxMind domain lookup service null, "http://www.psychicbazaar.com/2-tarot-cards", null, // No page title for events @@ -138,7 +138,7 @@ object UnstructEventCfLineSpec { null, null, null, - "America/New_York", + "America/Los_Angeles", null, null, null, diff --git a/integration-tests/sql-enrichment-test.sql b/integration-tests/sql-enrichment-test.sql index bdf33ed823..8115911b0a 100644 --- a/integration-tests/sql-enrichment-test.sql +++ b/integration-tests/sql-enrichment-test.sql @@ -13,4 +13,4 @@ CREATE TABLE IF NOT EXISTS enrichment_test( INSERT INTO enrichment_test(city,date_time,name,speed,aux,country,pk) VALUES ('New York','2016-02-07T10:10:00.000Z','eve',2.5,'ue_test_ny','USA',3); INSERT INTO enrichment_test(city,date_time,name,speed,aux,country,pk) VALUES ('Krasnoyarsk','2016-01-07T10:10:34.000Z','alice',10.0,'ue_test_krsk','Russia',1); INSERT INTO enrichment_test(city,date_time,name,speed,aux,country,pk) VALUES ('London','2016-01-08T10:00:34.000Z','bob',25.0,'ue_test_london','England',2); -INSERT INTO enrichment_test(city,date_time,name,speed,aux,country,pk) VALUES ('Delray Beach','2016-01-08T10:00:34.000Z','boris',25.0,'ue_test_delray','US',4); +INSERT INTO enrichment_test(city,date_time,name,speed,aux,country,pk) VALUES ('Milton','2016-01-08T10:00:34.000Z','boris',25.0,'ue_test_milton','US',4);