Skip to content

Commit

Permalink
Added Snowflake / FB / Google Ads in changelogs (airbytehq#825)
Browse files Browse the repository at this point in the history
  • Loading branch information
johnlafleur authored Nov 5, 2020
1 parent ec5378a commit 5aea7a6
Show file tree
Hide file tree
Showing 13 changed files with 48 additions and 50 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

![GitHub Workflow Status](https://img.shields.io/github/workflow/status/airbytehq/airbyte/Airbyte%20CI) ![License](https://img.shields.io/github/license/airbytehq/airbyte)

![](docs/.gitbook/assets/airbyte_horizontal_dark.svg)
![](docs/.gitbook/assets/airbyte_horizontal_dark%20%281%29.svg)

### Data integration made simple, secure and extensible.

The new open-source standard to sync data from applications, APIs & databases to warehouses.

[![](docs/.gitbook/assets/deploy-locally%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29.svg)](docs/deploying-airbyte/on-your-workstation.md) [![](docs/.gitbook/assets/deploy-on-aws%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29.svg)](docs/deploying-airbyte/on-aws-ec2.md) [![](docs/.gitbook/assets/deploy-on-gcp%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29.svg)](docs/deploying-airbyte/on-gcp-compute-engine.md)
[![](docs/.gitbook/assets/deploy-locally%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29%20%282%29.svg)](docs/deploying-airbyte/on-your-workstation.md) [![](docs/.gitbook/assets/deploy-on-aws%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29%20%282%29.svg)](docs/deploying-airbyte/on-aws-ec2.md) [![](docs/.gitbook/assets/deploy-on-gcp%20%281%29%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29%20%281%29%20%281%29%20%282%29.svg)](docs/deploying-airbyte/on-gcp-compute-engine.md)

![](docs/.gitbook/assets/airbyte-ui-for-your-integration-pipelines.png)
![](docs/.gitbook/assets/airbyte-ui-for-your-integration-pipelines%20%281%29.png)

Airbyte is on a mission to make data integration pipelines a commodity.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Here is a high level view of Airbyte's components.

# Architecture

![3.048-Kilometer view](../.gitbook/assets/10-000-feet-view%20%281%29%20%281%29%20%281%29%20%282%29.png)
![3.048-Kilometer view](../.gitbook/assets/10-000-feet-view%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* `UI`: Acts as the control center for Airbyte. From the UI, you can configure new integration connections. You can also track the different syncing jobs and view logs.
* `Config Store`: Stores all the connections information \(credentials, frequency...\).
Expand Down
8 changes: 4 additions & 4 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ Here is what we have in mind:

* Support multiple destinations
* **New destination:** our own Redshift warehouse integration
* **New sources:** 10 additional sources connectors.
* **New sources:** 10 additional sources connectors, including MSSQL, GCS CSV, S3 CSV, SFTP CSV
* As a bonus if we can, update the onboarding experience with pre-filled demo data for the users who just want to see how Airbyte works with the least effort.

## 0.4.0 - expected around 11/04/2020
## 0.4.0 - delivered on 11/04/2020

Here is what we are working on right now:

* **New destination**: our own **Snowflake** warehouse integration
* **New sources:** Facebook Ads, Google Ads, MSSQL, GCS CSV, S3 CSV, SFTP CSV
* as a bonus if we can, update the onboarding experience with pre-filled demo data for the users who just want to see how Airbyte works with the least effort.
* **New sources:** Facebook Ads, Google Ads.

## 0.3.0 - delivered on 10/30/2020

Expand Down
10 changes: 5 additions & 5 deletions docs/deploying-airbyte/on-aws-ec2.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ The instructions have been tested on `Amazon Linux 2 AMI (HVM)`

* Launch a new instance

![](../.gitbook/assets/aws_ec2_launch%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/aws_ec2_launch%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* Select instance AMI

![](../.gitbook/assets/aws_ec2_ami%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/aws_ec2_ami%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* Select instance type

![](../.gitbook/assets/aws_ec2_instance_type%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/aws_ec2_instance_type%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* `Next: Configure Instance Details`
* You can tune parameters or keep the defaults
Expand All @@ -27,7 +27,7 @@ The instructions have been tested on `Amazon Linux 2 AMI (HVM)`
* `Next: Configure Security Groups`
* We are going to allow network for `ssh`

![](../.gitbook/assets/aws_ec2_security_group%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/aws_ec2_security_group%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* `Review and Launch`
* `Launch`
Expand All @@ -38,7 +38,7 @@ The instructions have been tested on `Amazon Linux 2 AMI (HVM)`

* `Launch Instances`

![](../.gitbook/assets/aws_ec2_instance_view%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/aws_ec2_instance_view%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* Wait for the instance to become `Running`

Expand Down
4 changes: 2 additions & 2 deletions docs/deploying-airbyte/on-gcp-compute-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ The instructions have been tested on `Debian GNU/Linux 10 (buster)`

* Launch a new instance

![](../.gitbook/assets/gcp_ce_launch%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/gcp_ce_launch%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* Configure new instance

![](../.gitbook/assets/gcp_ce_configure%20%281%29%20%281%29%20%281%29%20%282%29.png)
![](../.gitbook/assets/gcp_ce_configure%20%281%29%20%281%29%20%281%29%20%282%29%20%281%29.png)

* `Create`

Expand Down
8 changes: 4 additions & 4 deletions docs/getting-started-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ Once you see an Airbyte banner, the UI is ready to go at [http://localhost:8000/

You should see an onboarding page. Enter your email if you want updates about Airbyte and continue.

![](.gitbook/assets/airbyte_get-started.png)
![](.gitbook/assets/airbyte_get-started%20%281%29.png)

## 2. Set up your first connection

Now you will see a wizard that allows you choose the data you want to send through Airbyte.

![](.gitbook/assets/02_set-up-sources%20%281%29.png)
![](.gitbook/assets/02_set-up-sources%20%281%29%20%281%29.png)

As of our alpha launch, we have one database source \(Postgres\) and two API sources \(an exchange rate API and the Stripe API\). We're currently building an integration framework that makes it easy to create sources and destinations, so you should expect many more soon. Please reach out to us if you need a specific integration or would like to help build one.

Expand Down Expand Up @@ -76,15 +76,15 @@ DB Name: postgres

After adding the destination, you can choose what tables and columns you want to sync.

![](.gitbook/assets/03_set-up-connection%20%281%29.png)
![](.gitbook/assets/03_set-up-connection%20%281%29%20%281%29.png)

For this demo, we recommend leaving the defaults and selecting "Every 5 Minutes" as the frequency. Click `Set Up Connection` to finish setting up the sync.

## 3. Check the logs of your first sync

You should now see a list of sources with the source you just added. Click on it to find more information about your connection. This is the page where you can update any settings about this source and how it syncs. There should be a `Completed` job under the history section. If you click on that run, it will show logs from that run.

![](.gitbook/assets/04_source-details%20%281%29.png)
![](.gitbook/assets/04_source-details%20%281%29%20%281%29.png)

One of biggest problems we've seen in tools like Fivetran is the lack of visibility when debugging. In Airbyte, allowing full log access and the ability to debug and fix integration problems is one of our highest priorities. We'll be working hard to make these logs accessible and understandable.

Expand Down
13 changes: 4 additions & 9 deletions docs/integrations/destinations/snowflake.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,17 @@ Each stream will be output into its own table in Snowflake. Each table will cont

#### Features


| Feature | Supported?\(Yes/No\) | Notes |
| :--- | :--- | :--- |
| Full Refresh Sync | Yes | |

## Getting started

We recommend creating an Airbyte-specific warehouse, database, schema, user, and role for writing data into Snowflake so
it is possible to track costs specifically related to Airbyte (including the cost of running this warehouse) and control permissions at a granular level.
Since the Airbyte user creates, drops, and alters tables, `OWNERSHIP` permissions are required in Snowflake. If you are not
following the recommended script below, please limit the `OWNERSHIP` permissions to only the necessary database and schema for the Airbyte user.
We recommend creating an Airbyte-specific warehouse, database, schema, user, and role for writing data into Snowflake so it is possible to track costs specifically related to Airbyte \(including the cost of running this warehouse\) and control permissions at a granular level. Since the Airbyte user creates, drops, and alters tables, `OWNERSHIP` permissions are required in Snowflake. If you are not following the recommended script below, please limit the `OWNERSHIP` permissions to only the necessary database and schema for the Airbyte user.

We provide the following script to create these resources.
Before running, you must change the password to something secure.
You may change the names of the other resources if you desire.
We provide the following script to create these resources. Before running, you must change the password to something secure. You may change the names of the other resources if you desire.

```
```text
-- set variables (these need to be uppercase)
set airbyte_role = 'AIRBYTE_ROLE';
set airbyte_username = 'AIRBYTE_USER';
Expand Down Expand Up @@ -106,3 +100,4 @@ You should now have all the requirements needed to configure Snowflake as a dest
* **Schema**
* **Username**
* **Password**

9 changes: 7 additions & 2 deletions docs/integrations/integrations-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,13 @@ Note: Airbyte is not built on top of Singer, but is compatible with Singer's pro

## Currently under construction

**New sources:** Hubspot, Facebook Ads, Google Ads, MSSQL, GCS CSV, S3 CSV, SFTP CSV
**New destinations:** Snowflake
**New sources:** MSSQL, GCS CSV, S3 CSV, SFTP CSV
**New destinations:** Redshift

## 11/04/2020

**New sources:** [Facebook Ads](sources/facebook-marketing-api.md), [Google Ads](sources/google-adwords.md)
**New destination:** [Snowflake](destinations/snowflake.md)

## 10/30/2020

Expand Down
28 changes: 12 additions & 16 deletions docs/integrations/sources/facebook-marketing-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

## Sync overview

This source can sync data for the core Ad Campaign data available[ in the Facebook Marketing API](https://developers.facebook.com/docs/marketing-api/campaign-structure): Campaigns, AdSets, Ads, and AdCreatives. It can also sync [Ad Insights from the Reporting API](https://developers.facebook.com/docs/marketing-api/insights).
This source can sync data for the core Ad Campaign data available[ in the Facebook Marketing API](https://developers.facebook.com/docs/marketing-api/campaign-structure): Campaigns, AdSets, Ads, and AdCreatives. It can also sync [Ad Insights from the Reporting API](https://developers.facebook.com/docs/marketing-api/insights).

This Source Connector is based on the [Singer Facebook Tap](https://github.com/singer-io/tap-facebook).

### Output schema

This Source is capable of syncing the following core Streams:
This Source is capable of syncing the following core Streams:

* AdSets. [Facebook docs](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign#fields)
* Ads. [Facebook docs](https://developers.facebook.com/docs/marketing-api/reference/adgroup#fields)
* AdCreatives. [Facebook docs](https://developers.facebook.com/docs/marketing-api/reference/ad-creative#fields)
* Campaigns. [Facebook docs](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group#fields)

The linked Facebook docs go into detail about the fields present on those streams.
The linked Facebook docs go into detail about the fields present on those streams.

In addition, this source is capable of syncing ad insights as a stream. Ad insights can also be segmented by the following categories, where each segment is synced as a separate Airbyte stream:

Expand All @@ -25,7 +25,7 @@ In addition, this source is capable of syncing ad insights as a stream. Ad insig
* Platform & Device
* Region

The segmented streams contain entries of campaign/adset/ad combinations for each day broken down by the chosen segment.
The segmented streams contain entries of campaign/adset/ad combinations for each day broken down by the chosen segment.

For more information, see the [Facebook Insights API documentation. ](https://developers.facebook.com/docs/marketing-api/reference/adgroup/insights/)

Expand All @@ -47,11 +47,9 @@ For more information, see the [Facebook Insights API documentation. ](https://de

### Performance considerations

**Important note:** In order for data synced from your Facebook account to be up to date, you might need to apply with Facebook to upgrade your access token to the Ads Management Standard Tier as specified in the [Facebook Access documentation](https://developers.facebook.com/docs/marketing-api/access). Otherwise, Facebook might throttle Airbyte syncs, since the default tier \(Dev Access\) is heavily throttled by Facebook.
**Important note:** In order for data synced from your Facebook account to be up to date, you might need to apply with Facebook to upgrade your access token to the Ads Management Standard Tier as specified in the [Facebook Access documentation](https://developers.facebook.com/docs/marketing-api/access). Otherwise, Facebook might throttle Airbyte syncs, since the default tier \(Dev Access\) is heavily throttled by Facebook.



Note that Airbyte can adapt to throttling from Facebook. In the worst case scenario syncs from Facebook will take longer to complete and data will be less fresh.
Note that Airbyte can adapt to throttling from Facebook. In the worst case scenario syncs from Facebook will take longer to complete and data will be less fresh.

## Getting started

Expand All @@ -65,27 +63,25 @@ Note that Airbyte can adapt to throttling from Facebook. In the worst case scena

### Facebook Ad Account ID

Follow the [Facebook documentation for obtaining your Ad Account ID](https://www.facebook.com/business/help/1492627900875762) and keep that on hand. We'll need this ID to configure Facebook as a source in Airbyte.
Follow the [Facebook documentation for obtaining your Ad Account ID](https://www.facebook.com/business/help/1492627900875762) and keep that on hand. We'll need this ID to configure Facebook as a source in Airbyte.

### Facebook App

#### If you don't have a Facebook App

Visit the [Facebook Developers App hub](https://developers.facebook.com/apps/) and create an App and choose "Manage Business Integrations" as the purpose of the app. Fill out the remaining fields to create your app, then follow along the "Enable the Marketing API for your app" section.
Visit the [Facebook Developers App hub](https://developers.facebook.com/apps/) and create an App and choose "Manage Business Integrations" as the purpose of the app. Fill out the remaining fields to create your app, then follow along the "Enable the Marketing API for your app" section.

#### Enable the Marketing API for your app

From the App's Dashboard screen \(seen in the screenshot below\) enable the Marketing API for your app if it is not already setup.
From the App's Dashboard screen \(seen in the screenshot below\) enable the Marketing API for your app if it is not already setup.

![](../../.gitbook/assets/screen-shot-2020-11-03-at-9.25.21-pm.png)
![](../../.gitbook/assets/screen-shot-2020-11-03-at-9.25.21-pm%20%281%29.png)

### API Access Token

In the App Dashboard screen, click Marketing API --> Tools on the left sidebar. Then highlight all the available token permissions \(`ads_management`, `ads_read`, `read_insights`\) and click "Get token". A long string of characters should appear in front of you; **this is the access token.** Copy this string for use in the Airbyte UI later.

![](../../.gitbook/assets/screen-shot-2020-11-03-at-9.35.40-pm.png)

In the App Dashboard screen, click Marketing API --> Tools on the left sidebar. Then highlight all the available token permissions \(`ads_management`, `ads_read`, `read_insights`\) and click "Get token". A long string of characters should appear in front of you; **this is the access token.** Copy this string for use in the Airbyte UI later.

![](../../.gitbook/assets/screen-shot-2020-11-03-at-9.35.40-pm%20%281%29.png)

With the Ad Account ID and API access token, you should be ready to start pulling data from the Facebook Marketing API. Head to the Airbyte UI to setup your source connector!

8 changes: 5 additions & 3 deletions docs/integrations/sources/google-adwords.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,19 @@ This source is constrained by whatever API limits are set for the Google Adwords

### Requirements

* Google Adwords Manager Account with an approved Developer Token (note: In order to get API access to Google Adwords, you must have a "manager" account. This must be created separately from your standard account. You can find more information about this distinction in the [google ads docs](https://ads.google.com/home/tools/manager-accounts/).)
* Google Adwords Manager Account with an approved Developer Token \(note: In order to get API access to Google Adwords, you must have a "manager" account. This must be created separately from your standard account. You can find more information about this distinction in the [google ads docs](https://ads.google.com/home/tools/manager-accounts/).\)

### Setup guide

This guide will provide information as if starting from scratch. Please skip over any steps you have already completed.

* Create an Adwords Account. Here are [Google's instruction](https://support.google.com/google-ads/answer/6366720) on how to create one.
* Create an Adwords MANAGER Account. Here are [Google's instruction](https://ads.google.com/home/tools/manager-accounts/) on how to create one.
* You should now have two Google Ads accounts: a normal account and a manager account. Link the Manager account to the normal account following [Google's documentation](https://support.google.com/google-ads/answer/7459601).
* Apply for a developer token on your Manager account. This token allows you to access your data from the Google Ads API. Here are [Google's instructions](https://developers.google.com/google-ads/api/docs/first-call/dev-token). The docs are a little unclear on this point, but you will _not_ be able to access your data via the Google Ads API until this token is approved. You cannot use a test developer token, it has to be at least a basic developer token. It usually takes Google 24 hours to respond to these applications.
* This is the value you will use in the `developer_token` field.
* This is the value you will use in the `developer_token` field.
* Fetch your `client_id`, `client_secret`, and `refresh_token`. Google provides [instructions](https://developers.google.com/adwords/api/docs/guides/first-api-call#set_up_oauth2_authentication) on how to do this.
* Select your `customer_ids`. The `customer_ids` refer to the id of each of your Google Ads accounts. This is the 10 digit number in the top corner of the page when you are in google ads ui. The source will only pull data from the accounts for which you provide an id. If you are having trouble finding it, check out [Google's instructions](https://support.google.com/google-ads/answer/1704344).

Wow! That was a lot of steps. We are working on making the OAuth flow for all of our connectors simpler (allowing you to skip needing to get a `developer_token` and a `refresh_token` which are the most painful / time-consuming steps in this walkthrough).
Wow! That was a lot of steps. We are working on making the OAuth flow for all of our connectors simpler \(allowing you to skip needing to get a `developer_token` and a `refresh_token` which are the most painful / time-consuming steps in this walkthrough\).

2 changes: 1 addition & 1 deletion docs/integrations/sources/google-sheets.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Once you've created the Service Account, you need to explicitly give it access t

Finally, you'll need the ID of the Spreadsheet you'd like to sync. To get it, navigate to the spreadsheet in your browser, then copy the portion of the URL which comes after "/d" and before "/edit" or "/view". This is the highlighted portion of the screenshot below:

![](../../.gitbook/assets/screen-shot-2020-10-30-at-2.44.55-pm%20%281%29%20%281%29.png)
![](../../.gitbook/assets/screen-shot-2020-10-30-at-2.44.55-pm%20%281%29%20%281%29%20%281%29.png)

### Setting up in the Airbyte UI

Expand Down

0 comments on commit 5aea7a6

Please sign in to comment.