embulk-input-mixpanel 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/embulk-input-mixpanel.gemspec +1 -1
- data/lib/embulk/input/mixpanel.rb +6 -10
- data/test/embulk/input/test_mixpanel.rb +16 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: feae04dbd0d3d9eebea301fecf14418a588723d4
|
4
|
+
data.tar.gz: 0ae3937206d959f34f1d542297925388f616f31b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 742c1956e206d8876f40bf564b40d072cf4f8416850e10584228a4f290a889a2171354b94ce23e2f1b84cbb28e3401e640ea4f4084648b43de0a0ac0ea91d158
|
7
|
+
data.tar.gz: 3827c9c15d5db544261a1c666286ed4a465d8caf42a1cce0ab21f55e7092c9322430df180ec0b08af645df3de271fe461885863388a2aa019ccbaa4a8d27de79
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
## 0.5.4 - 2017-08-15
|
2
|
-
* [bug] Fix a bug when `fetch_days` is 1 plugin will fetch 2 days instead of 1
|
2
|
+
* [bug] Fix a bug when `fetch_days` is 1 plugin will fetch 2 days instead of 1 [#51](https://github.com/treasure-data/embulk-input-mixpanel/pull/51)
|
3
3
|
|
4
4
|
## 0.5.3 - 2017-08-07
|
5
5
|
* [enhancement] Allow user to choose to run incremental or not `incremental` option default to true [#50](https://github.com/treasure-data/embulk-input-mixpanel/pull/50)
|
@@ -24,11 +24,8 @@ module Embulk
|
|
24
24
|
$city $region mp_country_code $browser $browser_version $device $current_url $initial_referrer $initial_referring_domain $os $referrer $referring_domain $screen_height $screen_width $search_engine $city $region $mp_country_code $timezone $browser_version $browser $initial_referrer $initial_referring_domain $os $last_seen $city $region mp_country_code $app_release $app_version $carrier $ios_ifa $os_version $manufacturer $lib_version $model $os $screen_height $screen_width $wifi $city $region $mp_country_code $timezone $ios_app_release $ios_app_version $ios_device_model $ios_lib_version $ios_version $ios_ifa $last_seen $city $region mp_country_code $app_version $bluetooth_enabled $bluetooth_version $brand $carrier $has_nfc $has_telephone $lib_version $manufacturer $model $os $os_version $screen_dpi $screen_height $screen_width $wifi $google_play_services $city $region mp_country_code $timezone $android_app_version $android_app_version_code $android_lib_version $android_os $android_os_version $android_brand $android_model $android_manufacturer $last_seen
|
25
25
|
).uniq.freeze
|
26
26
|
|
27
|
-
# NOTE: It takes long time to fetch data between from_date to
|
28
|
-
# to_date by one API request. So this plugin fetches data
|
29
|
-
# between each 7 (SLICE_DAYS_COUNT) days.
|
30
|
-
SLICE_DAYS_COUNT = 7
|
31
27
|
|
28
|
+
DEFAULT_FETCH_DAYS = 7
|
32
29
|
DEFAULT_TIME_COLUMN = 'time'
|
33
30
|
|
34
31
|
def self.transaction(config, &control)
|
@@ -68,7 +65,8 @@ module Embulk
|
|
68
65
|
incremental_column: incremental_column,
|
69
66
|
retry_limit: config.param(:retry_limit, :integer, default: 5),
|
70
67
|
latest_fetched_time: latest_fetched_time,
|
71
|
-
incremental: incremental
|
68
|
+
incremental: incremental,
|
69
|
+
slice_range: config.param(:slice_range, :integer, default: 7)
|
72
70
|
}
|
73
71
|
|
74
72
|
if task[:fetch_unknown_columns] && task[:fetch_custom_properties]
|
@@ -161,8 +159,7 @@ module Embulk
|
|
161
159
|
prev_latest_fetched_time = task[:latest_fetched_time] || 0
|
162
160
|
prev_latest_fetched_time_format = Time.at(prev_latest_fetched_time).strftime("%F %T %z")
|
163
161
|
current_latest_fetched_time = prev_latest_fetched_time
|
164
|
-
|
165
|
-
@dates.each_slice(SLICE_DAYS_COUNT) do |dates|
|
162
|
+
@dates.each_slice(task[:slice_range]) do |dates|
|
166
163
|
ignored_record_count = 0
|
167
164
|
unless preview?
|
168
165
|
Embulk.logger.info "Fetching data from #{dates.first} to #{dates.last} ..."
|
@@ -196,7 +193,6 @@ module Embulk
|
|
196
193
|
end
|
197
194
|
page_builder.add(values)
|
198
195
|
end
|
199
|
-
|
200
196
|
if ignored_record_count > 0
|
201
197
|
Embulk.logger.warn "Skipped already loaded #{ignored_record_count} records. These record times are older or equal than previous fetched record time (#{prev_latest_fetched_time} @ #{prev_latest_fetched_time_format})."
|
202
198
|
end
|
@@ -316,12 +312,12 @@ module Embulk
|
|
316
312
|
end
|
317
313
|
|
318
314
|
def self.default_guess_start_date
|
319
|
-
Date.today -
|
315
|
+
Date.today - DEFAULT_FETCH_DAYS - 1
|
320
316
|
end
|
321
317
|
|
322
318
|
def self.guess_range(config)
|
323
319
|
from_date = config.param(:from_date, :string, default: default_guess_start_date.to_s)
|
324
|
-
fetch_days = config.param(:fetch_days, :integer, default:
|
320
|
+
fetch_days = config.param(:fetch_days, :integer, default: DEFAULT_FETCH_DAYS)
|
325
321
|
range = RangeGenerator.new(from_date, fetch_days).generate_range
|
326
322
|
if range.empty?
|
327
323
|
return default_guess_start_date..(Date.today - 1)
|
@@ -541,6 +541,7 @@ module Embulk
|
|
541
541
|
retry_initial_wait_sec: 0,
|
542
542
|
retry_limit: 3,
|
543
543
|
latest_fetched_time: 0,
|
544
|
+
slice_range: 7
|
544
545
|
}
|
545
546
|
end
|
546
547
|
end
|
@@ -585,6 +586,20 @@ module Embulk
|
|
585
586
|
@plugin.run
|
586
587
|
end
|
587
588
|
|
589
|
+
class SliceRangeRunTest < self
|
590
|
+
|
591
|
+
def test_default_slice_range
|
592
|
+
plugin = Mixpanel.new(task.merge(slice_range: 2), nil, nil, @page_builder)
|
593
|
+
stub(plugin).preview? {false}
|
594
|
+
stub(plugin).fetch(["2015-02-22", "2015-02-23"],0){[]}
|
595
|
+
stub(plugin).fetch(["2015-02-24", "2015-02-25"],0){[]}
|
596
|
+
stub(plugin).fetch(["2015-02-26", "2015-02-27"],0){[]}
|
597
|
+
stub(plugin).fetch(["2015-02-28", "2015-03-01"],0){[]}
|
598
|
+
mock(@page_builder).finish
|
599
|
+
plugin.run
|
600
|
+
end
|
601
|
+
end
|
602
|
+
|
588
603
|
class NonIncrementalRunTest < self
|
589
604
|
|
590
605
|
def test_non_incremental_run
|
@@ -807,6 +822,7 @@ module Embulk
|
|
807
822
|
retry_initial_wait_sec: 2,
|
808
823
|
retry_limit: 3,
|
809
824
|
latest_fetched_time: 0,
|
825
|
+
slice_range: 7
|
810
826
|
}
|
811
827
|
end
|
812
828
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-mixpanel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yoshihara
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
224
|
version: '0'
|
225
225
|
requirements: []
|
226
226
|
rubyforge_project:
|
227
|
-
rubygems_version: 2.6.
|
227
|
+
rubygems_version: 2.6.6
|
228
228
|
signing_key:
|
229
229
|
specification_version: 4
|
230
230
|
summary: Mixpanel input plugin for Embulk
|