Transfer data from Snowflake to Sharepoint

What options are available to PUT data into a Sharepoint site? Either a CSV or Excel file would be sufficient.

Hi @JW845446​,

There are a few approaches that come to mind. You didn't mention if you were on Azure, AWS, or GCP but the plan would still be the same. Get the data from Snowflake in a CSV or Excel format and then place it in SharePoint.

The first part is pretty straightforward and out of the box. You can get the data from Snowflake in a CSV file format using the S3 Unload, Blob Unload, or Cloud Storage Unload component. This will unload the data from Snowflake and create 1 or more CSV files in an S3 Bucket, Blob Store, or Cloud Storage.

The second part is where it get's a bit more involved because there is no out of the box component to write back to SharePoint. The only component that comes close is the Data Transfer component but it doesn't have an option for SharePoint. For this, you would need to leverage API calls. It's been many years since I last did any dev work for SharePoint but you may be able to use the API Profiles and API Query component for this part. Some versions of SharePoint only supported SOAP calls and others supported both REST and SOAP. If the version of SharePoint supports REST, I would lean that direction. The other approach to moving or copying the files from your cloud storage (S3, Blob, etc.) to SharePoint is to use Python. You should be able to do everything you need with the Requests module, which you would need to install on your instance. The other modules (Boto3 or Azure or Google-Cloud-Storage) you likely already have on your instance. Of course this second option would require a bit of hand coding but would give you the greatest flexibility. I would personally try to use the API Query method if possible just because it's a little more out of the box and would present a little less technical debt but that's totally up to you and what you are comfortable with.

I hope this helps!

Thank you for the input, Bryan! This seems to be in line with what I found online. I was hoping for a canned solution in Matillion. For my use case, Python is likely the route we will take. Time to learn Python!