{"id":2367,"date":"2017-12-14T04:25:21","date_gmt":"2017-12-14T04:25:21","guid":{"rendered":"https:\/\/zappysys.com\/blog\/?p=2367"},"modified":"2019-11-22T06:09:49","modified_gmt":"2019-11-22T06:09:49","slug":"import-export-data-amazon-athena-using-ssis","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/","title":{"rendered":"Import \/ Export data from Amazon Athena using SSIS"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2378 alignleft\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\" alt=\"\" width=\"147\" height=\"115\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png 510w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo-300x235.png 300w\" sizes=\"(max-width: 147px) 100vw, 147px\" \/><\/a>In our previous post we explored unlimited possibilities to <a href=\"https:\/\/zappysys.com\/blog\/how-to-call-amazon-aws-api-using-ssis-ec2-lambda-api-gateway-sqs\/\" target=\"_blank\" rel=\"noopener\">call Amazon AWS API using SSIS<\/a>. Now in this post we will learn how to import \/ export data from Amazon Athena\u00a0using SSIS. Amazon Athena is very similar service like <a href=\"https:\/\/zappysys.com\/blog\/get-data-google-bigquery-using-ssis\/\" target=\"_blank\" rel=\"noopener\">Google BigQuery which we documented already<\/a>.\u00a0 To read data from Amazon Athena we will use <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-file-source\/\" target=\"_blank\" rel=\"noopener\">ZappySys JSON \/ REST API Source<\/a>\u00a0which supports excellent JSON parsing capability <a href=\"https:\/\/zappysys.com\/blog\/parse-multi-dimensional-json-array-ssis\/\" target=\"_blank\" rel=\"noopener\">like this<\/a>.<\/p>\n<h2><\/h2>\n<h2><\/h2>\n<h2><span id=\"Prerequisites\">Prerequisites<\/span><\/h2>\n<p>Before we do hello world demo for calling Amazon AWS API, you will need to make sure following prerequisites are met.<\/p>\n<ol>\n<li>SSIS designer installed.\u00a0Sometimes it is referred as BIDS or SSDT (<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssdt\/download-sql-server-data-tools-ssdt\" target=\"_blank\" rel=\"noopener\">download it from Microsoft site<\/a>).<\/li>\n<li>Basic knowledge of SSIS package\u00a0development using\u00a0<em>Microsoft SQL Server Integration Services<\/em>.<\/li>\n<li>Access to valid AWS credentials (Access Key, Secret Key for your IAM User).\u00a0<a href=\"http:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_credentials_access-keys.html\" target=\"_blank\" rel=\"noopener\">Click here to learn more<\/a>\u00a0about IAM users and Access Key\/Secret Key<\/li>\n<li>Make sure\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\"><em>SSIS PowerPack<\/em><\/a>\u00a0is installed.\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/download\/\" target=\"_blank\" rel=\"noopener\">Click here to download<\/a>.<\/li>\n<\/ol>\n<h2>Steps needed to read data from Amazon Athena<\/h2>\n<p>To read data from Amazon Athena you need to do atleast 3 steps at very high level. Later on this article we will see each step in depth.<\/p>\n<ol>\n<li>Call <a href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_StartQueryExecution.html\" target=\"_blank\" rel=\"noopener\">StartQueryExecution API<\/a> to send SQL Query (Its Job Style API so this call starts Job)<\/li>\n<li>Keep checking Job Status by calling\u00a0 <a href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_GetQueryExecution.html\" target=\"_blank\" rel=\"noopener\">GetQueryExecution API<\/a> (In the response check State field for Status &#8211; We need to look for word SUCCESS)<\/li>\n<li>Once Job is finished it produces CSV file in S3 Bucket (Output Location is supplied in Step-1)<\/li>\n<\/ol>\n<div id=\"attachment_8355\" style=\"width: 923px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8355\" class=\"size-full wp-image-8355\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png\" alt=\"Read Amazon Athena Query output in SSIS (S3 CSV files)\" width=\"913\" height=\"658\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png 913w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output-300x216.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output-768x553.png 768w\" sizes=\"(max-width: 913px) 100vw, 913px\" \/><\/a><p id=\"caption-attachment-8355\" class=\"wp-caption-text\">Read Amazon Athena Query output in SSIS (S3 CSV files)<\/p><\/div>\n<h2>AWS Console &#8211; Athena Query Editor \/ Configure Output Settings<\/h2>\n<p>Few things you might have to setup before you can call Athena API in SSIS<\/p>\n<ol>\n<li>Make sure your IAM user has correct permission (We used existing policies for ease of use but you can use custom policy for precise permission set)<\/li>\n<li>Configure default output location for your Athena queries<\/li>\n<\/ol>\n<div id=\"attachment_8360\" style=\"width: 996px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/configure-amazon-athena-permission-policy.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8360\" class=\"size-full wp-image-8360\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/configure-amazon-athena-permission-policy.png\" alt=\"Configure IAM user permission to call Amazon Athena API\" width=\"986\" height=\"581\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/configure-amazon-athena-permission-policy.png 986w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/configure-amazon-athena-permission-policy-300x177.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/configure-amazon-athena-permission-policy-768x453.png 768w\" sizes=\"(max-width: 986px) 100vw, 986px\" \/><\/a><p id=\"caption-attachment-8360\" class=\"wp-caption-text\">Configure IAM user permission to call Amazon Athena API<\/p><\/div>\n<div id=\"attachment_8361\" style=\"width: 837px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/set-athena-query-output-location.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8361\" class=\"size-full wp-image-8361\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/set-athena-query-output-location.png\" alt=\"Set Athena Query Output Location\" width=\"827\" height=\"454\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/set-athena-query-output-location.png 827w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/set-athena-query-output-location-300x165.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/set-athena-query-output-location-768x422.png 768w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><\/a><p id=\"caption-attachment-8361\" class=\"wp-caption-text\">Set Athena Query Output Location<\/p><\/div>\n<div id=\"attachment_8362\" style=\"width: 1080px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8362\" class=\"size-full wp-image-8362\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console.png\" alt=\"Testing Athena Query inside Amazon AWS Console (Query Editor)\" width=\"1070\" height=\"628\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console.png 1070w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console-300x176.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console-768x451.png 768w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-test-query-editor-aws-console-1024x601.png 1024w\" sizes=\"(max-width: 1070px) 100vw, 1070px\" \/><\/a><p id=\"caption-attachment-8362\" class=\"wp-caption-text\">Testing Athena Query inside Amazon AWS Console (Query Editor)<\/p><\/div>\n<h2>Creating Connection to call Athena API in SSIS<\/h2>\n<p>Any API calls made to Amazon Athena service using <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-file-source\/\" target=\"_blank\" rel=\"noopener\">ZappySys JSON \/ REST API Source<\/a>\u00a0 or \u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">ZS REST API Task<\/a>\u00a0needs OAuth connection.<\/p>\n<p>For REST API Task configure as below (More details about using REST API Task is in the next section).<\/p>\n<ol>\n<li>Drag ZS REST API Task from Control Flow Toolbox<img decoding=\"async\" class=\"figureimage\" title=\"SSIS REST Api Web Service Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/rest-api-task\/ssis-rest-api-web-service-task-drag.png\" alt=\"SSIS REST Api Task - Drag and Drop\" \/><\/li>\n<li>Double click to edit.<\/li>\n<li>Change Request URL Access Mode to [<strong>Url from Connection<\/strong>]<\/li>\n<li>Now select <strong>&lt;&lt;New OAuth Connection&gt;&gt;<\/strong> from connection drop down<\/li>\n<li>On OAuth connection select <strong>Amazon AWS API v4<\/strong> as Provider<\/li>\n<li>Enter your <strong>Access Key<\/strong> and <strong>Secret Key<\/strong><\/li>\n<\/ol>\n<div class=\"su-note\"  style=\"border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#fff8b7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">Amazon AWS account must have access to Athena API calls and S3 Bucket\u00a0<\/div><\/div>\n<div id=\"attachment_2370\" style=\"width: 702px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-aws-api-connection-call-rest.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2370\" class=\"size-full wp-image-2370\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-aws-api-connection-call-rest.png\" alt=\"Create SSIS Connection for Amazon AWS API Call (Athena REST API Example)\" width=\"692\" height=\"651\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-aws-api-connection-call-rest.png 692w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-aws-api-connection-call-rest-300x282.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><p id=\"caption-attachment-2370\" class=\"wp-caption-text\">Create SSIS Connection for Amazon AWS API Call (Athena REST API Example)<\/p><\/div>\n<h2>Creating Table in Amazon Athena using API call<\/h2>\n<p>For this demo we assume you have already created sample table in Amazon Athena. If you wish to automate creating amazon athena table using SSIS then you need to call <a href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/create-table.html\" target=\"_blank\" rel=\"noopener\">CREATE TABLE<\/a> DDL command using\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">ZS REST API Task<\/a>.<\/p>\n<ol>\n<li>In the previous <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">ZS REST API Task<\/a>\u00a0select OAuth connection (See previous section)<\/li>\n<li>Enter <strong>Request Url<\/strong> as below<strong><br \/>\n<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/athena.us-east-1.amazonaws.com\/<\/pre>\n<\/li>\n<li>In the <strong>HTTP Headers<\/strong> enter below 2 headers\n<pre class=\"lang:default highlight:0 decode:true\">X-Amz-Target: AmazonAthena.StartQueryExecution\r\nContent-Type: application\/x-amz-json-1.1<\/pre>\n<\/li>\n<li>Change Request method to <strong>POST<\/strong><\/li>\n<li>In the Body enter below\n<pre class=\"lang:default highlight:0 decode:true \">{\r\n \"ResultConfiguration\": {\r\n \"OutputLocation\": \"s3:\/\/my-bucket\/output-files\/\"\r\n },\r\n \"QueryString\": \"create external table tbl01 (CustomerID STRING, CompanyName STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 's3:\/\/my-bucket\/input-files\/';\",\r\n \"ClientRequestToken\": \"{{System::ExecutionInstanceGUID}}\"\r\n}<\/pre>\n<p><strong>Notice:<\/strong> Rather than using hard coded\u00a0 DDL SQL Statement we can use variable placeholder (e.g. <span class=\"lang:default highlight:0 decode:true crayon-inline\">&#8220;QueryString&#8221;: &#8220;{{User::Query,FUN_JSONENCODE}}&#8221;<\/span>\u00a0\u00a0 ). Use\u00a0<span class=\"lang:default highlight:0 decode:true crayon-inline\">FUN_JSONENCODE<\/span>\u00a0to replace new line with \\r\\n else JSON becomes invalid.<\/li>\n<li>Now click <strong>Test Request \/ Response<\/strong>. This will create a new Athena table which we will query in later section.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>Notice that in above Body\u00a0ClientRequestToken is a unique number each time you have to call <a href=\"http:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_StartQueryExecution.html#athena-StartQueryExecution-request-ClientRequestToken\" target=\"_blank\" rel=\"noopener\">StartQueryExecution API<\/a>\u00a0to make it simple we used SSIS system variable\u00a0<strong>System::ExecutionInstanceGUID<\/strong>. Its unique for each execution. You can also use newid() function from SQL Server and save result to variable if you like.<\/p>\n<p>Here is the screenshot of above Request<\/p>\n<div id=\"attachment_2368\" style=\"width: 821px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2368\" class=\"size-full wp-image-2368\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png\" alt=\"RESt API Task - Create table in Amazon Athena using SSIS (StartQueryExecution API Call)\" width=\"811\" height=\"760\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png 811w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table-300x281.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table-768x720.png 768w\" sizes=\"(max-width: 811px) 100vw, 811px\" \/><\/a><p id=\"caption-attachment-2368\" class=\"wp-caption-text\">RESt API Task &#8211; Create table in Amazon Athena using SSIS (StartQueryExecution API Call)<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>Uploading data for Amazon Athena (Source files)<\/h2>\n<p>Once you have athena table created, we will need some data to query. Loading data to amazon athena table is nothing but upload files to S3. If you noticed we added below line in CREATE TABLE statement in the previous section. This means all source files are located at this S3 location.<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">LOCATION 's3:\/\/my-bucket\/input-files\/'<\/pre>\n<p>We have written blog post to explain this process (<a href=\"https:\/\/zappysys.com\/blog\/load-data-sql-server-to-amazon-s3\/\" target=\"_blank\" rel=\"noopener\">Click Here &#8211; How to load data from SQL server to S3 files<\/a>).<\/p>\n<h2>Extract data from Amazon Athena using SSIS\u00a0(Query Athena)<\/h2>\n<p>Now its time to read some data by writing SQL query for Athena data (i.e. S3 files). As we mentioned earlier, reading data from Athena can be done using following steps.<\/p>\n<ol>\n<li>Call\u00a0 <a href=\"http:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_StartQueryExecution.html#athena-StartQueryExecution-request-ClientRequestToken\" target=\"_blank\" rel=\"noopener\">StartQueryExecution API<\/a>\u00a0 using REST API Task to execute your Query (It returns you QueryExecutionID). Use same technique as Create Table example. Replace CREATE Table command in body with your SQL Query (New line must be replaced by \\r\\n in JSON).<\/li>\n<li>Use REST API Task to call\u00a0<a href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_GetQueryExecution.html\" target=\"_blank\" rel=\"noopener\">GetQueryExecution API<\/a>\u00a0and configure periodic status check loop (Task keeps waiting until Success or Failure Value not found in Response)<\/li>\n<li>Once data is available read data using <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-amazon-s3-csv-file-source\/\" target=\"_blank\" rel=\"noopener\">S3 CSV File Source<\/a><\/li>\n<li>At last you can clean up query output files or keep it if some other process wants to read it (You can also <a href=\"https:\/\/stackoverflow.com\/questions\/41413528\/amazon-aws-athena-removing-temp-files\" target=\"_blank\" rel=\"noopener\">clean up S3 files using bucket retention policy<\/a> automatically at scheduled interval).<\/li>\n<\/ol>\n<p>Now lets see each step in depth<\/p>\n<h3>Step1-Start Amazon Athena Query Execution<\/h3>\n<p>Now first thing is to execute Athena Query by calling\u00a0<a href=\"http:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_StartQueryExecution.html#athena-StartQueryExecution-request-ClientRequestToken\" target=\"_blank\" rel=\"noopener\">StartQueryExecution API<\/a>\u00a0. Below steps are almost same steps as we saw in section\u00a0<strong>Creating Table in Amazon Athena using API call<\/strong><\/p>\n<p>Only part is different here is SQL query is SELECT query rather than CREATE TABLE.<\/p>\n<ol>\n<li>Drag and drop\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">ZS REST API Task<\/a>\u00a0from SSIS toolbox<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS REST Api Web Service Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/rest-api-task\/ssis-rest-api-web-service-task-drag.png\" alt=\"SSIS REST Api Task - Drag and Drop\" \/><\/li>\n<li>Enter <strong>Request Url<\/strong> as below<strong><br \/>\n<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/athena.us-east-1.amazonaws.com\/<\/pre>\n<\/li>\n<li>In the <strong>HTTP Headers<\/strong> enter below 2 headers\n<pre class=\"lang:default highlight:0 decode:true\">X-Amz-Target: AmazonAthena.StartQueryExecution\r\nContent-Type: application\/x-amz-json-1.1<\/pre>\n<\/li>\n<li>Change Request method to <strong>POST<\/strong><\/li>\n<li>In the Body enter below\n<pre class=\"lang:default highlight:0 decode:true\">{\r\n  \"ResultConfiguration\": {\r\n    \"OutputLocation\": \"s3:\/\/my-bucket\/output-files\/\"\r\n  },\r\n  \"QueryString\": \"select * from sampledb.elb_logs\\r\\nlimit 100000\",\r\n  \"ClientRequestToken\": \"{{System::ExecutionInstanceGUID}}\"\r\n}<\/pre>\n<p><strong>Notice:<\/strong> Rather than using hard coded\u00a0 SQL Query we can use variable placeholder (e.g. <span class=\"lang:default highlight:0 decode:true crayon-inline\">&#8220;QueryString&#8221;: &#8220;{{User::Query,FUN_JSONENCODE}}&#8221;<\/span>\u00a0\u00a0 ). Use\u00a0<span class=\"lang:default highlight:0 decode:true crayon-inline\">FUN_JSONENCODE<\/span>\u00a0to replace new line with \\r\\n else JSON becomes invalid.<\/p>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2368\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png\" alt=\"RESt API Task - Create table in Amazon Athena using SSIS (StartQueryExecution API Call)\" width=\"811\" height=\"760\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table.png 811w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table-300x281.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-create-table-768x720.png 768w\" sizes=\"(max-width: 811px) 100vw, 811px\" \/><\/a><\/li>\n<li>Now go to <strong>Response Settings<\/strong> Tab and configure below way to extract QueryExecutionId (we will need it later).\n<p>Set Extract Type as Json.<br \/>\nEnter Expression as <span class=\"lang:default highlight:0 decode:true  crayon-inline\">$.QueryExecutionId<\/span><br \/>\nCheck Save output to Variable and create new Variable (we can name as\u00a0QueryExecutionId )<\/p>\n<div id=\"attachment_8356\" style=\"width: 860px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-save-query-execution-id.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8356\" class=\"size-full wp-image-8356\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-save-query-execution-id.png\" alt=\"Call Athena SQL, Save Amazon Athena QueryExecutionId in SSIS Variable\" width=\"850\" height=\"336\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-save-query-execution-id.png 850w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-save-query-execution-id-300x119.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-save-query-execution-id-768x304.png 768w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/a><p id=\"caption-attachment-8356\" class=\"wp-caption-text\">Call Athena SQL, Save Amazon Athena QueryExecutionId in SSIS Variable<\/p><\/div><\/li>\n<li>That&#8217;s it now we can move to next step<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>Step2 &#8211; Wait until Athena Query Execution is done<\/h3>\n<p>New version of ZS REST API Task includes <strong>Status check<\/strong> feature. This feature avoids complex looping logic. Here is how to configure to check Job Status (Wait until Query execution is finished). Steps are almost same as previous section except three things ( Headers, Body and Status Check Tab)<\/p>\n<p>For Status check we will call\u00a0<a href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/APIReference\/API_GetQueryExecution.html\" target=\"_blank\" rel=\"noopener\">GetQueryExecution API<\/a>\u00a0.<\/p>\n<ol>\n<li>Drag and drop\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">ZS REST API Task<\/a>\u00a0from SSIS toolbox<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS REST Api Web Service Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/rest-api-task\/ssis-rest-api-web-service-task-drag.png\" alt=\"SSIS REST Api Task - Drag and Drop\" \/><\/li>\n<li>Enter <strong>Request Url<\/strong> as below<strong><br \/>\n<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true\">https:\/\/athena.us-east-1.amazonaws.com\/<\/pre>\n<\/li>\n<li>In the <strong>HTTP Headers<\/strong> enter below 2 headers\n<pre class=\"lang:default highlight:0 decode:true\">X-Amz-Target: AmazonAthena.GetQueryExecution\r\nContent-Type: application\/x-amz-json-1.1<\/pre>\n<\/li>\n<li>Change Request method to <strong>POST<\/strong><\/li>\n<li>In the <strong>Body<\/strong> enter below\n<pre class=\"lang:default highlight:0 decode:true\">{\"QueryExecutionId\": \"{{User::QueryExecutionId}}\"}<\/pre>\n<p><strong>Notice:<\/strong>\u00a0Here we have used Variable in the body. This variable we extracted in the previous step. It contains QueryExecution ID for the Job we submitted.<\/p>\n<div id=\"attachment_8358\" style=\"width: 860px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-getqueryexecution-status-check-loop.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8358\" class=\"size-full wp-image-8358\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-getqueryexecution-status-check-loop.png\" alt=\"SSIS Amazon Athena - Call GetQueryExecution API (Status Check)\" width=\"850\" height=\"556\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-getqueryexecution-status-check-loop.png 850w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-getqueryexecution-status-check-loop-300x196.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-amazon-athena-getqueryexecution-status-check-loop-768x502.png 768w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/a><p id=\"caption-attachment-8358\" class=\"wp-caption-text\">SSIS Amazon Athena &#8211; Call GetQueryExecution API (Status Check)<\/p><\/div><\/li>\n<li>Now go to <strong>Status Check<\/strong> Tab and configure below way to implement Status check loop. We want to stop check once status is SUCCESS or FAILED or CANCELLED. If we find\u00a0FAILED or CANCELLED in State field then we must fail the step with error.\n<ol>\n<li>Check Enable Status Check<\/li>\n<li>Enter Success Value as <span class=\"lang:default highlight:0 decode:true crayon-inline \">SUCCEEDED<\/span><\/li>\n<li>Check Fail Task option and enter this regex in the text box\u00a0<span class=\"lang:default highlight:0 decode:true crayon-inline \">FAILED|CANCELLED<\/span><\/li>\n<li>In the Interval enter 5 seconds delay after each iteration.<\/li>\n<\/ol>\n<\/li>\n<li>That&#8217;s it. Status check Tab will look like below. Now we can move to next step\n<div id=\"attachment_8357\" style=\"width: 536px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/rest-api-job-status-check-loop.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8357\" class=\"size-full wp-image-8357\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/rest-api-job-status-check-loop.png\" alt=\"REST API Status check Loop - Keep checking until JOB is done\" width=\"526\" height=\"391\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/rest-api-job-status-check-loop.png 526w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/rest-api-job-status-check-loop-300x223.png 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/a><p id=\"caption-attachment-8357\" class=\"wp-caption-text\">REST API Status check Loop &#8211; Keep checking until JOB is done<\/p><\/div><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>Step3-Read data from Athena Query output files (CSV \/ JSON stored in S3 bucket)<\/h3>\n<p>When you create Athena table you have to specify query output folder and data input location and file format (e.g. CSV, JSON, Avro, ORC, Parquet &#8230;) they can be GZip, Snappy Compressed. Once you execute query it generates CSV file. Zappysys can read CSV, TSV or JSON files using <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-amazon-s3-csv-file-source\/\" target=\"_blank\" rel=\"noopener\">S3 CSV File Source<\/a> or <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-amazon-s3-json-file-source\/\" target=\"_blank\" rel=\"noopener\">S3 JSON File Source<\/a>\u00a0connectors. In this section we will use CSV connector to read Athena output files.<\/p>\n<p>Here is how to Athena output data<\/p>\n<ol>\n<li>Drag and drop Data flow task from SSIS Toolbox<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS Data Flow Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/drag-and-drop-data-flow-task.png\" alt=\"SSIS Data Flow Task - Drag and Drop\" \/><\/li>\n<li>Double click data flow and drag and drop\u00a0\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-amazon-s3-csv-file-source\/\" target=\"_blank\" rel=\"noopener\">ZS Amazon S3 CSV File Source<\/a><br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS Amazon S3 CSV Source - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/amazon-s3-csv-source\/ssis-amazon-s3-csv-file-source-drag.png\" alt=\"SSIS Amazon S3 CSV Source - Drag and Drop\" \/><\/li>\n<li>Double click to configure it.<\/li>\n<li>\u00a0Click New Connection and configure S3 Connection<\/li>\n<li>Once connection is created, browse to S3 bucket \/ folder location where Athena outputs files.<\/li>\n<li>Replace file name with variable like below\n<pre class=\"lang:default highlight:0 decode:true \">my-bucket\/output-files\/{{User::QueryExecutionId}}.csv<\/pre>\n<p>&nbsp;<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<div id=\"attachment_2371\" style=\"width: 1214px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2371\" class=\"size-full wp-image-2371\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files.png\" alt=\"Reading data from Amazon Athena CSV files (Stored in S3)\" width=\"1204\" height=\"675\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files.png 1204w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files-300x168.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files-768x431.png 768w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/ssis-read-athena-csv-output-from-aws-s3-storage-csv-files-1024x574.png 1024w\" sizes=\"(max-width: 1204px) 100vw, 1204px\" \/><\/a><p id=\"caption-attachment-2371\" class=\"wp-caption-text\">Reading data from Amazon Athena CSV files (Stored in S3)<\/p><\/div>\n<h2>Putting all together &#8211; Athena Data Extract Example<\/h2>\n<p>Here is final package with all pieces we talked.<\/p>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8355\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png\" alt=\"Read Amazon Athena Query output in SSIS (S3 CSV files)\" width=\"913\" height=\"658\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output.png 913w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output-300x216.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/query-read-data-from-amazon-athena-ssis-s3-csv-output-768x553.png 768w\" sizes=\"(max-width: 913px) 100vw, 913px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>You have seen that using ZappySys SSIS PowerPack how quickly you can integrate with Amazon Athena and other AWS Cloud Services.\u00a0\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\">Download SSIS PowerPack<\/a>\u00a0and try it out by yourself.<\/p>\n<p><strong>Keywords:<\/strong> Extract data from Amazon Athena | Read from Amazon Athena Query file | Import \/ Export data from Amazon Athena | Fetch data from Amazon Athena<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In our previous post we explored unlimited possibilities to call Amazon AWS API using SSIS. Now in this post we will learn how to import \/ export data from Amazon Athena\u00a0using SSIS. Amazon Athena is very similar service like Google BigQuery which we documented already.\u00a0 To read data from Amazon Athena we will use [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2378,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[225,99,258,259,181,16,17,205,8,10],"tags":[260,128,6,3,35,12,4],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag &amp; drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag &amp; drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ZappySys Blog\" \/>\r\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ZappySys\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2017-12-14T04:25:21+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2019-11-22T06:09:49+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"510\" \/>\r\n\t<meta property=\"og:image:height\" content=\"399\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"ZappySys\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/zappysys\/\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ZappySys\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/\",\"url\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/\",\"name\":\"Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\",\"datePublished\":\"2017-12-14T04:25:21+00:00\",\"dateModified\":\"2019-11-22T06:09:49+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag & drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png\",\"width\":510,\"height\":399},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Import \/ Export data from Amazon Athena using SSIS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zappysys.com\/blog\/#website\",\"url\":\"https:\/\/zappysys.com\/blog\/\",\"name\":\"ZappySys Blog\",\"description\":\"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zappysys.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\",\"name\":\"ZappySys\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"caption\":\"ZappySys\"},\"sameAs\":[\"http:\/\/www.zappysys.com\/\",\"https:\/\/www.facebook.com\/ZappySys\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/\"],\"url\":\"https:\/\/zappysys.com\/blog\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog","description":"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag & drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/","og_locale":"en_US","og_type":"article","og_title":"Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog","og_description":"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag & drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.","og_url":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2017-12-14T04:25:21+00:00","article_modified_time":"2019-11-22T06:09:49+00:00","og_image":[{"width":510,"height":399,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png","type":"image\/png"}],"author":"ZappySys","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/zappysys\/","twitter_misc":{"Written by":"ZappySys","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/","url":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/","name":"Import \/ Export data from Amazon Athena using SSIS | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png","datePublished":"2017-12-14T04:25:21+00:00","dateModified":"2019-11-22T06:09:49+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Learn how to integrate Amazon Athena data using SSIS. Import\/Export data using drag & drop. Execute and Read Athena Query output (CSV, JSON) from S3 Bucket.","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/12\/amazon-athena-integration-logo.png","width":510,"height":399},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/import-export-data-amazon-athena-using-ssis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Import \/ Export data from Amazon Athena using SSIS"}]},{"@type":"WebSite","@id":"https:\/\/zappysys.com\/blog\/#website","url":"https:\/\/zappysys.com\/blog\/","name":"ZappySys Blog","description":"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zappysys.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82","name":"ZappySys","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","caption":"ZappySys"},"sameAs":["http:\/\/www.zappysys.com\/","https:\/\/www.facebook.com\/ZappySys\/","https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/"],"url":"https:\/\/zappysys.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/2367"}],"collection":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/comments?post=2367"}],"version-history":[{"count":10,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/2367\/revisions"}],"predecessor-version":[{"id":8366,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/2367\/revisions\/8366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/2378"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=2367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=2367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=2367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}