What's the best way to fetch all Airtable entries using Azure Synapse Analytics?

Help needed with Azure Synapse and Airtable integration

I’m working on a project where I need to pull data from Airtable into Azure Synapse. I’ve set up the REST integration in my Azure Synapse pipeline and provided the correct API key for authorization. But here’s the problem: it’s only importing the first 100 records into my Azure Synapse data sink.

I’m pretty sure there are more than 100 records in the Airtable I’m trying to access. Does anyone know how to make sure all the records get imported? Is there a setting I’m missing or a different approach I should be using?

I’ve tried looking through the Azure Synapse documentation, but I couldn’t find anything specific to this issue. Any tips or tricks would be really appreciated. Thanks in advance for your help!

I encountered a similar issue when integrating Airtable with Azure Synapse. The solution lies in implementing pagination within your pipeline. Airtable’s API uses cursor-based pagination, so you’ll need to modify your REST API calls to include the ‘offset’ parameter. In Synapse, you can achieve this by using a ForEach activity to iterate through the pages. Inside the ForEach, place your existing Copy activity. Then, use a Set Variable activity to store the ‘offset’ value from the API response, passing this value to the next iteration. Adjust your JSON parsing logic to handle the paginated responses. With a bit of trial and error, this setup should efficiently fetch all your Airtable records.

I have extensive experience working with Azure Synapse and various APIs, and I can confirm that handling pagination is essential. However, an alternative approach that I have successfully employed involves using Azure Data Factory as an intermediary. I suggest setting up an ADF pipeline to extract data from Airtable, storing the output in a scalable storage solution such as Azure Blob Storage or Azure Data Lake, and then using Azure Synapse to ingest the data from that location. In my experience, this method simplifies the process, enhances maintainability, and scales well for large volumes of data.

hey there! i’ve dealt with this before. airtable’s api has a default limit of 100 records per request. you’ll need to implement pagination in your synapse pipeline. use the ‘offset’ parameter in your api calls to fetch subsequent batches. it’s a bit tricky but doable. good luck!