-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Source Facebook marketing: Fix duplicating records during insights lookback period #13047
Source Facebook marketing: Fix duplicating records during insights lookback period #13047
Conversation
Signed-off-by: Sergey Chvalyuk <[email protected]>
/test connector=connectors/source-facebook-marketing
|
Codecov Report
@@ Coverage Diff @@
## master #13047 +/- ##
=========================================
Coverage ? 91.72%
=========================================
Files ? 11
Lines ? 870
Branches ? 0
=========================================
Hits ? 798
Misses ? 72
Partials ? 0 Continue to review full report at Codecov.
|
Signed-off-by: Sergey Chvalyuk <[email protected]>
…cessed_in_lookback_period Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
/test connector=connectors/source-facebook-marketing
|
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
Signed-off-by: Sergey Chvalyuk <[email protected]>
/test connector=connectors/source-facebook-marketing
|
if date_start and pendulum.parse(record["updated_time"]).date() <= date_start: | ||
continue |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice - this seems to be the main logical change
today = pendulum.today(tz="UTC").date() | ||
end_date = min(self._end_date, today) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps since we are going to prevent looking at "today" again once that date has already been looked up, the earliest day we look at should be "yesterday" (e.g. today - 1). This way, we won't try to look up data for a partial day without being able to update it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have changed logic to sync only for yesterday
Signed-off-by: Sergey Chvalyuk <[email protected]>
/test connector=connectors/source-facebook-marketing
|
/publish connector=connectors/source-facebook-marketing
|
/publish connector=connectors/source-facebook-marketing
|
…okback period (airbytehq#13047) Signed-off-by: Sergey Chvalyuk <[email protected]>
@grubberr @evantahler there is something I don't fully understand, in this change, the connector is still downloading the data for the last 28 days but only commits the records with date later than the state. Is that right? Wouldn't make more sense to call the FB API with that filter to avoid unnecessary calls? |
Signed-off-by: Sergey Chvalyuk [email protected]
What
Connector during incremental stream constantly re-read all records for
insights_loopback_period
(default 28 days) producing duplicate records.Improve logic to re-read only record which were updated.
Recommended reading order
x.java
y.python
🚨 User Impact 🚨
Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.
Pre-merge Checklist
Expand the relevant checklist and delete the others.
Updating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereTests
Unit
Put your unit tests output here.
Integration
Put your integration tests output here.
Acceptance
Put your acceptance tests output here.