Thanks for reaching out to Microsoft Q&A
It sounds like you’re encountering intermittent network issues when copying data from Google BigQuery to Blob storage. The errors “End of TCP stream” and “keepalive watchdog timeout” suggest that the gRPC connection between your ADF pipeline and BigQuery is being interrupted.
Possible Causes
Network Instability: Temporary network issues can cause the gRPC connection to drop.
BigQuery Connection Limits: BigQuery might be closing idle connections or hitting connection limits.
Resource Contention: Running multiple parallel copy activities might be causing resource contention, leading to timeouts.
Solutions
- Retry Logic: Implement retry logic in your ADF pipeline to handle transient errors. This can help mitigate the impact of temporary network issues.
- Increase Timeout Settings: Adjust the timeout settings for your gRPC connections to allow more time for the operations to complete.
- Optimize Parallelism: Reduce the number of parallel copy activities to see if it alleviates the issue. You can gradually increase the parallelism to find a balance.
- Monitor Network Health: Use network monitoring tools to check for any instability or issues in your network that might be causing the interruptions.
- BigQuery API Usage: Ensure you are using the most efficient API for your use case. The BigQuery Storage Read API might offer better performance and reliability for large data transfers.
Example Retry Logic in ADF
{
"name": "CopyData",
"type": "Copy",
"policy": {
"retry": 3,
"retryIntervalInSeconds": 30
},
"source": {
"type": "BigQuerySource",
"query": "SELECT * FROM your_table"
},
"sink": {
"type": "BlobSink",
"blobPath": "your_blob_path"
}
}
This configuration will retry the copy operation up to three times with a 30-second interval between attempts.
Hope this helps. Do let us know if you any further queries.