Comments (9)
Hey @sphinks - I think you're totally right here - the changes we introduced in 0.7.x were optimized for correctness and not for speed. I think this is one case where it's better to be 99% correct and fast than 100% correct and slow. We have plans to revisit these models to make them a lot more performant, and I think a big part of that will be minimizing the "lookback" period as you're describing!
from snowplow.
Is it possible to make fix for this part of code write now? It will allow to upgrade to new branch and use lot of fixes, while waiting for big refactoring? I can prepare PR in case my idea is ok.
from snowplow.
Sure, feel free to submit a PR! I'd love to take a look at your approach here.
from snowplow.
@drewbanin have created PR: #69 Any idea how to check it 30 days are ok? I was checking plans with original and new code. Looks like new one is much better. But the issues is every project has it is own amount of events per month, so it is better to setup as small interval for session as possible in any case.
from snowplow.
In my experience on a previous project, where we had 2.5 months of Snowplow data (285mm events):
99.82% arrived within 1 hr of firing (diff b/w derived_tstamp
+ collector_tstamp
)
99.88% arrived within 24 hr
We want to remove the full look-back and rebalance speed and correctness in 0.8.x. I wonder if we should even look back 30 days?
from snowplow.
@jtcohen6 @sphinks I'd be inclined to make it less than 30 days for sure. We can either do:
- Always reprocess the last 2-3 days of data
- Dynamically find the last day that dbt ran, then reprocess data in that interval
I think the second approach is more aligned with how dbt usually works. You guys buy that?
from snowplow.
@drewbanin but taking second approach is not reflecting the idea of initial commit as far as I understand. We talking events starting from last date dbt was running, but take a look in the whole history to find match for session. In case we replace history match with last date dbt was running, do we have any new info? I mean history interval we are reprocessing will be equal to interval of non processed events. Am I misunderstand second approach?
from snowplow.
Have created a PR #71 to fix the issue.
from snowplow.
Closing this issue, since we merged #71 and released 0.8.0
from snowplow.
Related Issues (20)
- Deduplication in snowplow_web_page_context drops all events that have a duplicate HOT 1
- NoneType has no len() error. HOT 7
- Support new snowplow data model HOT 2
- Compilation Error in model snowplow_web_ua_parser_context (models/page_views/optional/snowplow_web_ua_parser_context.sql) at path ['enabled']: None is not of type 'boolean' Code: 10004 HOT 3
- When are the todos in bigquery going to be implemented? Columns missing HOT 2
- no snowplow_users model - lookml should be removed HOT 1
- Testing for late-arriving facts HOT 1
- Update package readme
- Use enabled config to implement cross-database support HOT 2
- Map inferred_user_id in snowplow_page_views HOT 1
- Out of range exception HOT 4
- "Unrecognized name: root_id" and "No matching signature for function TIMESTAMP" HOT 3
- Fails to exclude page views from pingdom HOT 1
- snowplow_web_events_internal_fixed is not used
- Syntax Error in BigQuery snowplow_page_views
- Package tidy up
- Note undesired behavior from setting enabled: true in root project
- Add Spark support HOT 1
- Snowflake web page context is unnecessarily separated and is not incremental HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from snowplow.