-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
🎉 New Source: Bing Ads #4911
🎉 New Source: Bing Ads #4911
Conversation
…udar/2508-bing-ads
/test connector=connectors/source-bing-ads
|
/test connector=connectors/source-bing-ads
|
airbyte-integrations/connectors/source-bing-ads/integration_tests/acceptance.py
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/integration_tests/catalog.json
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
…udar/2508-bing-ads
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/cache.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Outdated
Show resolved
Hide resolved
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.
Really like the use of caching here and nice unit tests.
It would be nice to document the caching strategy somewhere (maybe in README or a docstring). Once I'd read through all the classes it completely makes sense but it could be described somewhere central so reading all the code isn't necessary to gain that understanding. E.g. We need to cache Accounts to reuse in Campaigns, and cache Campaigns to reuse in AdGroups and so on and so on.
Is it the case that BingAds can only ever be full refresh or did we choose not to implement incremental for simplicity?
Other minor review points in comments.
airbyte-integrations/connectors/source-bing-ads/integration_tests/invalid_config.json
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/spec.json
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
Show resolved
Hide resolved
imo this is close enough to being merged that this issue can come after as a separate PR. |
/test connector=connectors/source-bing-ads
|
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.
Thanks for the changes, lgtm!
One note for the future, in case of ever implementing incremental we'd need to ensure that data doesn't get missed due to the caching strategy but for full refresh as is it's no problem
/publish connector=connectors/source-bing-ads
|
What
Bing Ads Source connector #2508
Implemented 4 streams: Account, Campaign, AdGroup, Ad
How
Connector implemented with SDK library https://github.com/BingAds/BingAds-Python-SDK
Recommended reading order
client.py
source.py
cache.py
Pre-merge Checklist
Expand the checklist which is relevant for this PR.
Connector checklist
airbyte_secret
in the connector's spec./gradlew :airbyte-integrations:connectors:<name>:integrationTest
./test connector=connectors/<name>
command as documented here is passing.README.md
docs/SUMMARY.md
if it's a new connectordocs/integrations/<source or destination>/<name>
.docs/integrations/...
. See changelog exampledocs/integrations/README.md
contains a reference to the new connector/publish
command described hereConnector Generator checklist
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changes