From d0907340fe37b40cddd99ef90dae9cf4a29718c4 Mon Sep 17 00:00:00 2001 From: ian-at-airbyte Date: Tue, 24 Dec 2024 17:16:05 -0800 Subject: [PATCH 1/4] Fix some markup errors in S3 --- docs/integrations/sources/s3.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/integrations/sources/s3.md b/docs/integrations/sources/s3.md index 2b22381e3c5a..51b3cad71834 100644 --- a/docs/integrations/sources/s3.md +++ b/docs/integrations/sources/s3.md @@ -6,8 +6,8 @@ This page contains the setup guide and reference information for the [S3](https: -:::info -Please note that using cloud storage may incur egress costs. Egress refers to data that is transferred out of the cloud storage system, such as when you download files or access them from a different location. For detailed information on egress costs, please consult the [Amazon S3 pricing guide](https://aws.amazon.com/s3/pricing/). +:::warning +Using cloud storage may incur egress costs. Egress refers to data that is transferred out of the cloud storage system, such as when you download files or access them from a different location. For detailed information on egress costs, please consult the [AWS S3 pricing guide](https://aws.amazon.com/s3/pricing/). ::: ## Prerequisites @@ -70,8 +70,11 @@ For more information on managing your access keys, please refer to the #### Option 2: Using an IAM Role (Most secure) + :::note S3 authentication using an IAM role member is not supported using the OSS platform. +::: + @@ -80,10 +83,10 @@ S3 authentication using an IAM role member is not supported using the OSS platfo S3 authentication using an IAM role member must be enabled by a member of the Airbyte team. If you'd like to use this feature, please [contact the Sales team](https://airbyte.com/company/talk-to-sales) for more information. ::: - 1. In the IAM dashboard, click **Roles**, then **Create role**. 2. Choose the **AWS account** trusted entity type. + 3. Set up a trust relationship for the role. This allows the Airbyte instance's AWS account to assume this role. You will also need to specify an external ID, which is a secret key that the trusting service (Airbyte) and the trusted role (the role you're creating) both know. This ID is used to prevent the "confused deputy" problem. The External ID should be your Airbyte workspace ID, which can be found in the URL of your workspace page. Edit the trust relationship policy to include the external ID: ``` From e5fa1606354996afe70cb2a26270135824dbf60e Mon Sep 17 00:00:00 2001 From: ian-at-airbyte Date: Tue, 24 Dec 2024 17:16:47 -0800 Subject: [PATCH 2/4] Fixes an issue with lists getting a larger margin when authors added space between lines in the same list object. --- docusaurus/src/css/custom.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docusaurus/src/css/custom.css b/docusaurus/src/css/custom.css index 663f4b360be0..aed1b86e2747 100644 --- a/docusaurus/src/css/custom.css +++ b/docusaurus/src/css/custom.css @@ -279,4 +279,8 @@ table tr:hover { } table thead tr:hover { background-color: transparent; +} + +.markdown li > p { + margin: 0px !important; } \ No newline at end of file From 04a5599240959a25e28d72bf076c34fa83939dbc Mon Sep 17 00:00:00 2001 From: ian-at-airbyte Date: Tue, 24 Dec 2024 17:16:58 -0800 Subject: [PATCH 3/4] Early draft of new topic --- docs/using-airbyte/delivery-methods.md | 50 ++++++++++++++++++++++++++ docusaurus/sidebars.js | 4 +++ 2 files changed, 54 insertions(+) create mode 100644 docs/using-airbyte/delivery-methods.md diff --git a/docs/using-airbyte/delivery-methods.md b/docs/using-airbyte/delivery-methods.md new file mode 100644 index 000000000000..300bc3d6a69e --- /dev/null +++ b/docs/using-airbyte/delivery-methods.md @@ -0,0 +1,50 @@ +--- +products: all +--- + +# Delivery methods + +Airbyte supports two methods for delivering source data to the destination. + +- Replicate records +- Copy raw files + +This article explains the difference between these methods, when you should each one, and how to configure this option in Airbyte. + +## Replicate records + +When you replicate records, you extract and load structured records into your destination of choice. This method allows for blocking and hashing individual fields or files from a structured schema. Data can be flattened, typed, and deduped depending on the destination. + +This is usually the only option you have. It's ideal for working with structured data like databases, spreadsheets, JSON, and APIs. + +## Copy raw files + +When you copy raw files, you copy files without parsing their contents. Bits are copied into the destination exactly as they appeared in the source. In this case, Airbyte is strictly worried about data movement, and pays no attention to structure or processing. + +This choice is ideal for unstructured text, non-text data like multimedia, and compressed files. However, it's only available for specific connectors that deal with products where unstructured data is common, like object/blob storage solutions. + +### Supported versions and limitations + +Supported Airbyte Versions: + +- Cloud: All Workspaces + +- Self-Managed Community and Self-managed Enterprise: `v1.2.0` or later + +Supported sources: + +- [SFTP bulk](../integrations/sources/sftp-bulk): `v1.3.0` or later + +- [S3](../integrations/sources/s3): `v4.10.1` or later + +- Additional sources may be added later. + +Supported destinations: + +- [S3](../integrations/destinations/s3): `v1.4.0` or later + +- Additional sources may be added later. + +Maximum file size: `1GB` per file. + +## How to configure the delivery method \ No newline at end of file diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index 760d7b5eb075..94a3c06353c0 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -553,6 +553,10 @@ module.exports = { type: "doc", id: "using-airbyte/core-concepts/typing-deduping", }, + { + type: "doc", + id: "using-airbyte/delivery-methods", + }, { type: "category", label: "Transformations", From 134cec5e30abe705b33e5c4e648c08a00642328c Mon Sep 17 00:00:00 2001 From: ian-at-airbyte Date: Tue, 31 Dec 2024 14:36:54 -0800 Subject: [PATCH 4/4] Completed first draft, added some visuals, and updated docs for affected sources. --- docs/integrations/sources/s3.md | 25 +++------- docs/integrations/sources/sftp-bulk.md | 45 +++++++----------- docs/using-airbyte/core-concepts/readme.md | 4 ++ .../delivery-method-copy-raw.png | Bin 0 -> 27532 bytes .../delivery-method-replicate.png | Bin 0 -> 53747 bytes docs/using-airbyte/delivery-methods.md | 32 ++++++++----- 6 files changed, 46 insertions(+), 60 deletions(-) create mode 100644 docs/using-airbyte/delivery-method-copy-raw.png create mode 100644 docs/using-airbyte/delivery-method-replicate.png diff --git a/docs/integrations/sources/s3.md b/docs/integrations/sources/s3.md index 51b3cad71834..832d2b59d9fe 100644 --- a/docs/integrations/sources/s3.md +++ b/docs/integrations/sources/s3.md @@ -121,8 +121,9 @@ S3 authentication using an IAM role member must be enabled by a member of the Ai 2. Click Sources and then click + New source. 3. On the Set up the source page, select S3 from the Source type dropdown. 4. Enter a name for the S3 connector. -5. Enter the name of the **Bucket** containing your files to replicate. -6. Add a stream +5. Choose a [delivery method](../../using-airbyte/delivery-methods) for your data. +6. Enter the name of the **Bucket** containing your files to replicate. +7. Add a stream 1. Choose the **File Format** 2. In the **Format** box, use the dropdown menu to select the format of the files you'd like to replicate. The supported formats are **CSV**, **Parquet**, **Avro** and **JSONL**. Toggling the **Optional fields** button within the **Format** box will allow you to enter additional configurations based on the selected format. For a detailed breakdown of these settings, refer to the [File Format section](#file-format-settings) below. 3. Give a **Name** to the stream @@ -131,7 +132,7 @@ S3 authentication using an IAM role member must be enabled by a member of the Ai 6. (Optional) If you want to enforce a specific schema, you can enter a **Input schema**. By default, this value is set to `{}` and will automatically infer the schema from the file\(s\) you are replicating. For details on providing a custom schema, refer to the [User Schema section](#user-schema). 7. (Optional) Select the **Schemaless** option, to skip all validation of the records against a schema. If this option is selected the schema will be `{"data": "object"}` and all downstream data will be nested in a "data" field. This is a good option if the schema of your records changes frequently. 8. (Optional) Select a **Validation Policy** to tell Airbyte how to handle records that do not match the schema. You may choose to emit the record anyway (fields that aren't present in the schema may not arrive at the destination), skip the record altogether, or wait until the next discovery (which will happen in the next 24 hours). -7. **To authenticate your private bucket**: +8. **To authenticate your private bucket**: - If using an IAM role, enter the **AWS Role ARN**. - If using IAM user credentials, fill the **AWS Access Key ID** and **AWS Secret Access Key** fields with the appropriate credentials. @@ -144,25 +145,11 @@ All other fields are optional and can be left empty. Refer to the [S3 Provider S 3. On the Set up the source page, select S3 from the Source type dropdown. 4. Enter a name for the S3 connector. -#### Copy Raw Files Configuration +#### Delivery Method -:::info - -The raw file replication feature has the following requirements and limitations: -- **Supported Airbyte Versions:** - - Cloud: All Workspaces - - OSS / Enterprise: `v1.2.0` or later -- **Max File Size:** `1GB` per file -- **Supported Destinations:** - - S3: `v1.4.0` or later - -::: - -Copy raw files without parsing their contents. Bits are copied into the destination exactly as they appeared in the source. Recommended for use with unstructured text data, non-text and compressed files. - -Format options will not be taken into account. Instead, files will be transferred to the file-based destination without parsing underlying data. +Choose a [delivery method](../../using-airbyte/delivery-methods) for your data. diff --git a/docs/integrations/sources/sftp-bulk.md b/docs/integrations/sources/sftp-bulk.md index a5856cd403bf..f169a5496086 100644 --- a/docs/integrations/sources/sftp-bulk.md +++ b/docs/integrations/sources/sftp-bulk.md @@ -66,13 +66,14 @@ For more information on SSH key pair authentication, please refer to the 2. Click Sources and then click + New source. 3. On the Set up the source page, select SFTP Bulk from the Source type dropdown. 4. Enter a name for the SFTP Bulk connector. -5. Enter the **Host Address**. -6. Enter your **Username** -7. Enter your authentication credentials for the SFTP server (**Password** or **Private Key**). If you are authenticating with a private key, you can upload the file containing the private key (usually named `rsa_id`) using the Upload file button. -8. In the section titled "The list of streams to sync", enter a **Stream Name**. This will be the name of the stream that will be created in your destination. Add additional streams by clicking "Add". -9. For each stream, select in the dropdown menu the **File Type** you wish to sync. Depending on the format chosen, you'll see a set of options specific to the file type. You can read more about specifics to each file type below. -12. (Optional) Provide a **Start Date** using the provided datepicker, or by entering the date in the format `YYYY-MM-DDTHH:mm:ss.SSSSSSZ`. Incremental syncs will only sync files modified/added after this date. -13. (Optional) Specify the **Host Address**. The default port for SFTP is 2​2. If your remote server is using a different port, enter it here. +5. Choose a [delivery method](../../using-airbyte/delivery-methods) for your data. +6. Enter the **Host Address**. +7. Enter your **Username** +8. Enter your authentication credentials for the SFTP server (**Password** or **Private Key**). If you are authenticating with a private key, you can upload the file containing the private key (usually named `rsa_id`) using the Upload file button. +9. In the section titled "The list of streams to sync", enter a **Stream Name**. This will be the name of the stream that will be created in your destination. Add additional streams by clicking "Add". +10. For each stream, select in the dropdown menu the **File Type** you wish to sync. Depending on the format chosen, you'll see a set of options specific to the file type. You can read more about specifics to each file type below. +11. (Optional) Provide a **Start Date** using the provided datepicker, or by entering the date in the format `YYYY-MM-DDTHH:mm:ss.SSSSSSZ`. Incremental syncs will only sync files modified/added after this date. +12. (Optional) Specify the **Host Address**. The default port for SFTP is 2​2. If your remote server is using a different port, enter it here. (Optional) Determine the **Folder Path**. This determines the directory to search for files in, and defaults to "/". If you prefer to specify a specific folder path, specify the directory on the remote server to be synced. For example, given the file structure: ``` @@ -103,6 +104,14 @@ This pattern will filter for files that match the format `log-YYYYMMDD`, where ` 3. On the Set up the source page, select SFTP Bulk from the Source type dropdown. 4. Enter a name for the SFTP Bulk connector. +#### Delivery Method + + + +Choose a [delivery method](../../using-airbyte/delivery-methods) for your data. + + + #### File-specific Configuration Depending on your **File Type** selection, you will be presented with a few configuration options specific to that file type. @@ -113,28 +122,6 @@ For example, assuming your folder path is not set in the connector configuration If your files are in a folder, include the folder in your glob pattern, like `my_folder/my_prefix_*.csv`. -#### Copy Raw Files Configuration - - - -:::info - -The raw file replication feature has the following requirements and limitations: -- **Supported Airbyte Versions:** - - Cloud: All Workspaces - - OSS / Enterprise: `v1.2.0` or later -- **Max File Size:** `1GB` per file -- **Supported Destinations:** - - S3: `v1.4.0` or later - -::: - -Copy raw files without parsing their contents. Bits are copied into the destination exactly as they appeared in the source. Recommended for use with unstructured text data, non-text and compressed files. - -Format options will not be taken into account. Instead, files will be transferred to the file-based destination without parsing underlying data. - - - ## Supported sync modes The SFTP Bulk source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts/#connection-sync-modes): diff --git a/docs/using-airbyte/core-concepts/readme.md b/docs/using-airbyte/core-concepts/readme.md index 2d45fea90a37..a5a20fbb280c 100644 --- a/docs/using-airbyte/core-concepts/readme.md +++ b/docs/using-airbyte/core-concepts/readme.md @@ -79,6 +79,10 @@ Depending on your destination, you may know this more commonly as the "Dataset", For more details, see our [Namespace documentation](namespaces.md). +## Delivery Method + +You can move data from a source to a destination in one of two ways, depending on whether your data is structured or unstructured. When you replicate records, you extract and load structured records, allowing for blocking and hashing individual fields, typing, and deduping. You can also copy raw files without processing them, which is appropriate for unstructured data. Read more about the difference in [Delivery methods](../delivery-methods). + ## Sync Mode A sync mode governs how Airbyte reads from a source and writes to a destination. Airbyte provides several sync modes depending what you want to accomplish. The sync modes define how your data will sync and whether duplicates will exist in the destination. diff --git a/docs/using-airbyte/delivery-method-copy-raw.png b/docs/using-airbyte/delivery-method-copy-raw.png new file mode 100644 index 0000000000000000000000000000000000000000..33e556cf0ac49d12c8ed71cb70513d3ab42399be GIT binary patch literal 27532 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 D2zN(Q literal 0 HcmV?d00001 diff --git a/docs/using-airbyte/delivery-methods.md b/docs/using-airbyte/delivery-methods.md index 300bc3d6a69e..2feed835c7ff 100644 --- a/docs/using-airbyte/delivery-methods.md +++ b/docs/using-airbyte/delivery-methods.md @@ -15,36 +15,44 @@ This article explains the difference between these methods, when you should each When you replicate records, you extract and load structured records into your destination of choice. This method allows for blocking and hashing individual fields or files from a structured schema. Data can be flattened, typed, and deduped depending on the destination. -This is usually the only option you have. It's ideal for working with structured data like databases, spreadsheets, JSON, and APIs. +For most connectors, this is the only option you have. It's ideal for working with structured data like databases, spreadsheets, JSON, and APIs. + +![Moving individual fields from a source to a destination](delivery-method-replicate.png) ## Copy raw files -When you copy raw files, you copy files without parsing their contents. Bits are copied into the destination exactly as they appeared in the source. In this case, Airbyte is strictly worried about data movement, and pays no attention to structure or processing. +When you copy raw files, you copy files without parsing their contents. Bits are copied into the destination exactly as they appeared in the source. In this case, Airbyte is strictly focused on data movement, and pays no attention to structure or processing. + +This choice is ideal for unstructured text, non-text data like multimedia, and compressed files. However, it's only available on specific connectors that are designed to handle unstructured data, like those related to blob storage solutions. -This choice is ideal for unstructured text, non-text data like multimedia, and compressed files. However, it's only available for specific connectors that deal with products where unstructured data is common, like object/blob storage solutions. +![Moving raw files from a source to a destination without regard for their contents or structure](delivery-method-copy-raw.png) ### Supported versions and limitations -Supported Airbyte Versions: +#### Supported Airbyte versions - Cloud: All Workspaces -- Self-Managed Community and Self-managed Enterprise: `v1.2.0` or later +- Self-Managed Community and Self-Managed Enterprise: `v1.2.0` or later -Supported sources: +#### Supported sources {#supported-sources} -- [SFTP bulk](../integrations/sources/sftp-bulk): `v1.3.0` or later +- [SFTP bulk](../integrations/sources/sftp-bulk): `v1.5.0` or later - [S3](../integrations/sources/s3): `v4.10.1` or later -- Additional sources may be added later. +Additional sources may be added later. -Supported destinations: +#### Supported destinations - [S3](../integrations/destinations/s3): `v1.4.0` or later -- Additional sources may be added later. +Additional destinations may be added later. + +#### Limitations + +- Maximum file size: `1GB` per file. -Maximum file size: `1GB` per file. +## How to configure the delivery method -## How to configure the delivery method \ No newline at end of file +You configure the delivery method on the source. See the docs for [supported connectors](#supported-sources), above. \ No newline at end of file