You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2023/07/24 04:34:22 UTC

[superset] branch master updated: docs: update AWS Athena and Redshift docs (#24751)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new b8a3eeffdb docs: update AWS Athena and Redshift docs (#24751)
b8a3eeffdb is described below

commit b8a3eeffdbfd6db852510ac409e4852fbac2f52c
Author: Multazim Deshmukh <57...@users.noreply.github.com>
AuthorDate: Mon Jul 24 10:04:14 2023 +0530

    docs: update AWS Athena and Redshift docs (#24751)
---
 docs/docs/databases/athena.mdx   |  9 +++-----
 docs/docs/databases/redshift.mdx | 45 ++++++++++++++++++++++++++++++++++++++--
 2 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/docs/docs/databases/athena.mdx b/docs/docs/databases/athena.mdx
index 55282d68ad..9e4493d9a0 100644
--- a/docs/docs/databases/athena.mdx
+++ b/docs/docs/databases/athena.mdx
@@ -26,17 +26,14 @@ s3://... -> s3%3A//...
 
 ### PyAthena
 
-You can also use [PyAthena library](https://pypi.org/project/PyAthena/) (no Java required) with the
+You can also use the [PyAthena library](https://pypi.org/project/PyAthena/) (no Java required) with the
 following connection string:
 
 ```
 awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...
 ```
 
-The PyAthena library also allows to assume a specific IAM role, by [importing the datasource from YAML](https://superset.apache.org/docs/miscellaneous/importing-exporting-datasources/#importing-datasources-from-yaml) and passing extra parameters:
+The PyAthena library also allows to assume a specific IAM role which you can define by adding following parameters in Superset's Athena database connection UI under ADVANCED --> Other --> ENGINE PARAMETERS.
 ```
-databases:
-  - database_name: awsathena
-    sqlalchemy_uri: awsathena+rest://athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...
-    extra: "{\"engine_params\": {\"connect_args\": {\"role_arn\": \"{{  ROLE_ARN  }}\" }}}"
+{"connect_args":{"role_arn":"<role arn>"}}
 ```
diff --git a/docs/docs/databases/redshift.mdx b/docs/docs/databases/redshift.mdx
index 32997adefa..d4bf3e2433 100644
--- a/docs/docs/databases/redshift.mdx
+++ b/docs/docs/databases/redshift.mdx
@@ -10,7 +10,9 @@ version: 1
 The [sqlalchemy-redshift](https://pypi.org/project/sqlalchemy-redshift/) library is the recommended
 way to connect to Redshift through SQLAlchemy.
 
-You'll need to the following setting values to form the connection string:
+This dialect requires either [redshift_connector](https://pypi.org/project/redshift-connector/) or [psycopg2](https://pypi.org/project/psycopg2/) to work properly.
+
+You'll need to set the following values to form the connection string:
 
 - **User Name**: userName
 - **Password**: DBPassword
@@ -18,8 +20,47 @@ You'll need to the following setting values to form the connection string:
 - **Database Name**: Database Name
 - **Port**: default 5439
 
-Here's what the connection string looks like:
+
+### psycopg2
+
+Here's what the SQLALCHEMY URI looks like:
 
 ```
 redshift+psycopg2://<userName>:<DBPassword>@<AWS End Point>:5439/<Database Name>
 ```
+
+
+### redshift_connector
+
+Here's what the SQLALCHEMY URI looks like:
+
+```
+redshift+redshift_connector://<userName>:<DBPassword>@<AWS End Point>:5439/<Database Name>
+```
+
+
+#### Using IAM-based credentials with Redshift cluster:
+
+[Amazon redshift cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) also supports generating temporary IAM-based database user credentials.
+
+Your superset app's [IAM role should have permissions](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-role-permissions.html) to call the `redshift:GetClusterCredentials` operation.
+
+You have to define the following arguments in Superset's redshift database connection UI under ADVANCED --> Others --> ENGINE PARAMETERS.
+
+```
+{"connect_args":{"iam":true,"database":"<database>","cluster_identifier":"<cluster_identifier>","db_user":"<db_user>"}}
+```
+and SQLALCHEMY URI should be set to `redshift+redshift_connector://`
+
+
+#### Using IAM-based credentials with Redshift serverless:
+
+[Redshift serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) supports connection using IAM roles.
+
+Your superset app's IAM role should have `redshift-serverless:GetCredentials` and `redshift-serverless:GetWorkgroup` permissions on Redshift serverless workgroup.
+
+You have to define the following arguments in Superset's redshift database connection UI under ADVANCED --> Others --> ENGINE PARAMETERS.
+
+```
+{"connect_args":{"iam":true,"is_serverless":true,"serverless_acct_id":"<aws account number>","serverless_work_group":"<redshift work group>","database":"<database>","user":"IAMR:<superset iam role name>"}}
+```