

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Consultar um banco de dados
<a name="query-databases"></a>

Para consultar bancos de dados hospedados por seu cluster do Amazon Redshift, você tem duas opções:
+ Conecte-se ao cluster e execute consultas no Console de gerenciamento da AWS com o Query Editor. 

  Se você usa o editor de consulta no console do Amazon Redshift, não precisa baixar e configurar um aplicativo cliente SQL. 
+ Conecte-se ao cluster por meio de uma ferramenta de cliente SQL, como SQL Workbench/J. 

  O Amazon Redshift oferece suporte a ferramentas do cliente SQL conectadas por meio de Java Database Connectivity (JDBC) e Open Database Connectivity (ODBC) O Amazon Redshift não fornece nem instala nenhuma biblioteca ou ferramenta do cliente SQL, portanto, você deve instalá-las no computador cliente ou na instância do Amazon EC2 para usá-las. Você pode usar a maioria das ferramentas do cliente SQL que oferecem suporte aos drivers do JDBC ou do ODBC.

**nota**  
 Quando você escreve procedimentos armazenados, recomendamos a prática de proteger valores confidenciais:   
 Não codifique nenhuma informação confidencial na lógica do procedimento armazenado. Por exemplo, não atribua uma senha de usuário em uma instrução CREATE USER no corpo de um procedimento armazenado. Isso representa um risco de segurança, pois valores codificados podem ser registrados como metadados de esquema nas tabelas do catálogo. Em vez disso, transmita valores confidenciais, como senhas, como argumentos ao procedimento armazenado por meio de parâmetros.   
Para obter mais informações sobre os procedimentos armazenados, consulte [CREATE PROCEDURE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_PROCEDURE.html) e [“Criar procedimentos armazenados no Amazon Redshift”](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html). Para obter mais informações sobre tabelas de catálogo, consulte [“Tabelas de catálogo do sistema”](https://docs.aws.amazon.com/redshift/latest/dg/c_intro_catalog_views.html).

# Conectar-se ao Amazon Redshift
<a name="cluster-syntax"></a>

É possível se conectar ao banco de dados utilizando a sintaxe a seguir.

```
cluster-name.account-number.aws-region.redshift.amazonaws.com/database-name
```

Os elementos de sintaxe são definidos da forma a seguir.
+  `cluster-name` 

   O nome do cluster. 
+  `account-number` 

   O identificador exclusivo associado ao número da conta da AWS em determinada Região da AWS. Todos os clusters criados por uma conta específica em determinada Região da AWS têm o mesmo `account-number`. 
+  `aws-region` 

   O código da Região da AWS onde se encontra o cluster. 
+  `database-name` 

   O nome do banco de dados. 

Por exemplo, a string de conexão a seguir especifica o banco de dados `my-db` no cluster `my-cluster` na Região da AWS us-east-1.

```
my-cluster.123456789012.us-east-1.redshift.amazonaws.com/my-db
```

# Consultar um banco de dados usando o Editor de Consultas V2
<a name="query-editor-v2"></a>

O editor de consultas v2 é uma aplicação de cliente SQL baseada na Web separada que você usa para criar e executar consultas no data warehouse do Amazon Redshift. O editor de consultas v2 é usado principalmente para editar e executar consultas, visualizar resultados e compartilhar seu trabalho com sua equipe. Com o editor de consultas v2, é possível criar bancos de dados, esquemas, tabelas e funções definidas pelo usuário (UDFs). Em um painel de exibição em árvore, é possível visualizar os esquemas de cada um de seus bancos de dados. É possível visualizar tabelas, exibições, UDFs e procedimentos armazenados de cada esquema. O editor de consultas v2 é um substituto do editor de consultas anterior. 

**nota**  
O editor de consultas v2 está disponível em Regiões da AWS comerciais. Para obter uma lista de Regiões da AWS onde o editor de consultas v2 está disponível, consulte os endpoints listados para o [Editor de consultas v2 do Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) na *Referência geral da Amazon Web Services*. 

Para ver uma demonstração do editor de consultas v2, assista aos vídeos a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/IwZNIroJUnc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/IwZNIroJUnc)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/4EIV4XTE9iI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/4EIV4XTE9iI)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/7y-f1wlyVhI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/7y-f1wlyVhI)


O editor de consultas v2 conta com um rico conjunto de recursos para gerenciar e executar suas instruções SQL. Os tópicos das seções a seguir apresentam os primeiros passos de muitos desses recursos. Explore o editor de consultas v2 por conta própria para se familiarizar com seus recursos. 

# Configurar sua Conta da AWS
<a name="query-editor-v2-getting-started"></a>

Esse conjunto de tarefas pode ser usado para configurar o Editor de Consultas v2 para consultar um banco de dados do Amazon Redshift. Com as devidas permissões, você pode acessar dados em um cluster ou grupo de trabalho do Amazon Redshift pertencente à sua Conta da AWS que está na Região da AWS atual.

Na primeira vez que um administrador configura o editor de consultas v2 para sua Conta da AWS, ele escolhe a AWS KMS key que será usada para criptografar recursos do editor de consultas v2. Por padrão, uma chave de propriedade da AWS é usada para criptografar recursos. Como alternativa, um administrador pode usar uma chave gerenciada pelo cliente escolhendo o nome do recurso da Amazon (ARN) da chave na página de configuração. 

Depois de configurar uma conta, as configurações de criptografia do AWS KMS não poderão ser alteradas. Para obter mais informações sobre como criar e usar uma chave gerenciada pelo cliente com o editor de consultas v2, consulte [Criar uma chave AWS KMS gerenciada pelo cliente para usar com o editor de consultas v2](#query-editor-v2-kms-key). O administrador também pode selecionar um S3 bucket (Bucket do S3) e um caminho que é usado para alguns recursos, como carregar dados de um arquivo. Para obter mais informações, consulte [Carregar dados de uma configuração e fluxo de trabalho de arquivo local](query-editor-v2-loading-data-local.md). 

O editor de consultas v2 do Amazon Redshift é compatível com autenticação, criptografia, isolamento e conformidade para manter seus dados em repouso e em trânsito seguros. Para obter mais informações sobre segurança de dados e o editor de consultas v2, consulte: 
+ [Criptografia inativa](security-server-side-encryption.md)
+ [Criptografia em trânsito](security-encryption-in-transit.md)
+ [Análise de configuração e vulnerabilidade no Amazon Redshift](security-vulnerability-analysis-and-management.md)

O AWS CloudTrail captura chamadas de API e eventos relacionados realizados por sua Conta da AWS ou em nome dela e entrega os arquivos de log a um bucket do Amazon S3 que você especificar. Você pode identificar quais usuários e contas chamaram AWS, o endereço IP de origem de onde as chamadas foram feitas e quando elas ocorreram. Para saber mais sobre como o editor de consultas v2 é executado no AWS CloudTrail, consulte [Registrar em log com o CloudTrail](logging-with-cloudtrail.md). Para obter mais informações sobre o CloudTrail, consulte o [ Guia do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). 

O editor de consultas v2 conta com cotas ajustáveis para alguns de seus recursos. Para obter mais informações, consulte [Cotas para objetos do Amazon Redshift](amazon-redshift-limits.md#amazon-redshift-limits-quota). 

## Recursos criados com o editor de consultas v2
<a name="query-editor-v2-resources"></a>

No editor de consultas v2, é possível criar recursos como consultas e gráficos salvos. Todos os recursos no editor de consultas v2 estão associados a um usuário ou perfil do IAM. Recomendamos anexar políticas a um perfil do IAM e atribuir o perfil a um usuário.

No editor de consultas v2, é possível adicionar e remover etiquetas para consultas e gráficos salvos. Você pode usar essas etiquetas ao configurar políticas personalizadas do IAM ou para pesquisar recursos. Também é possível gerenciar as etiquetas coletivamente usando o Tag Editor no AWS Resource Groups.

É possível configurar perfis do IAM com políticas do IAM para compartilhar consultas com outras pessoas na mesma Conta da AWS na Região da AWS.

## Criar uma chave AWS KMS gerenciada pelo cliente para usar com o editor de consultas v2
<a name="query-editor-v2-kms-key"></a>

**Para criar uma chave gerenciada pelo cliente de criptografia simétrica**:

Você pode criar uma chave de criptografia simétrica gerenciada pelo cliente para criptografar recursos do editor de consultas v2 usando o console do AWS KMS ou operações de API do AWS KMS. Para obter instruções sobre como criar uma chave, consulte [“Criar chaves do AWS KMS de criptografia simétrica”](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor do AWS Key Management Service*.

**Política de chaves**

As políticas de chaves controlam o acesso à chave gerenciada pelo seu cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para obter mais informações, consulte [Gerenciar do acesso às chaves do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access)) no *Guia do desenvolvedor do AWS Key Management Service*. 

Para usar a chave gerenciada pelo cliente com o editor de consultas do Amazon Redshift v2, as seguintes operações de API deverão ser permitidas na política de chaves: 
+ `kms:GenerateDataKey`: gera uma chave de dados simétrica exclusiva para criptografar seus dados.
+ `kms:Decrypt`: descriptografa dados que foram criptografados com a chave gerenciada pelo cliente.
+ `kms:DescribeKey`: fornece os principais detalhes gerenciados pelo cliente para permitir que o serviço valide a chave. 

Veja a seguir um exemplo de política do AWS KMS para Conta da AWS `111122223333`. Na primeira seção, o `kms:ViaService` limita o uso da chave para o serviço do editor de consultas v2 (que é chamado `sqlworkbench.region.amazonaws.com` na política). A Conta da AWS que usará a chave deve ser `111122223333`. Na segunda seção, o usuário raiz e os principais administradores da Conta da AWS `111122223333` podem acessar a chave.

 Ao criar uma Conta da AWS, você começa com uma identidade de login única chamada *usuário-raiz* da Conta da AWS, que tem acesso total a todos os recursos e Serviços da AWS. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-consolepolicy",
    "Statement": [
        {
            "Sid": "Allow access to principals authorized to use Amazon Redshift Query Editor V2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "sqlworkbench.us-east-1.amazonaws.com",
                    "kms:CallerAccount": "111122223333"
                }
            }
        },
        {
            "Sid": "Allow access for key administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:*"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_ID"
        }
    ]
}
```

------

Os recursos a seguir fornecem mais informações sobre chaves do AWS KMS:
+ Para obter mais informações sobre políticas do AWS KMS, consulte [Especificar permissões em uma política](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#overview-policy-elements) no *Guia do desenvolvedor do AWS Key Management Service*. 
+ Para obter informações sobre solução de problemas em políticas do AWS KMS, consulte [Solucionar problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam) no *Guia do desenvolvedor AWS Key Management Service*. 
+ Para obter mais informações sobre chaves, consulte [Chaves do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) no *Guia do desenvolvedor do AWS Key Management Service*.

## Acessar o editor de consultas v2
<a name="query-editor-v2-configure"></a>

Para acessar o editor de consultas v2, é necessário ter permissão. Um administrador pode anexar uma das seguintes políticas gerenciadas pela AWS ao perfil para conceder permissão. (Recomendamos anexar políticas a um perfil do IAM e atribuir o perfil a um usuário.) Essas políticas gerenciadas pela AWS são redigidas com diferentes opções que controlam como os recursos de marcação permitem o compartilhamento de consultas. Você pode usar o console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) para anexar políticas do IAM. 
+ **AmazonRedshiftQueryEditorV2FullAccess**: concede acesso total às operações e recursos do editor de consultas v2 do Amazon Redshift. Essa política também concede acesso a outros serviços necessários.
+ **AmazonRedshiftQueryEditorV2NoSharing**: concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift sem compartilhar recursos. Essa política também concede acesso a outros serviços necessários. 
+ **AmazonRedshiftQueryEditorV2ReadSharing**: concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift com compartilhamento limitado de recursos. A entidade principal concedida pode ler os recursos compartilhados com sua equipe, mas não pode atualizá-los. Essa política também concede acesso a outros serviços necessários. 
+ **AmazonRedshiftQueryEditorV2ReadWriteSharing**: concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift com compartilhamento de recursos. A entidade principal concedida pode ler e atualizar os recursos compartilhados com sua equipe. Essa política também concede acesso a outros serviços necessários. 

Você também pode criar sua própria política com base nas permissões concedidas e negadas nas políticas gerenciadas fornecidas. Se usar o editor de políticas de console do IAM para criar sua própria política, escolha **SQL Workbench** como o serviço para o qual você está criando a política no editor visual. O editor de consultas v2 usa o nome do serviço AWS SQL Workbench no editor visual e no IAM Policy Simulator. 

Para que uma entidade principal (um usuário ou perfil do IAM atribuído) se conecte a um cluster do Amazon Redshift, ela precisa das permissões em uma das políticas gerenciadas do editor de consultas v2. Também precisam da permissão `redshift:GetClusterCredentialsWithIAM` ou `redshift:GetClusterCredentials` para o cluster. Para obter essa permissão, alguém com permissão administrativa pode anexar uma política aos perfis do IAM usados para se conectar ao cluster usando credenciais temporárias. Você pode definir o escopo da política para clusters específicos ou ser mais genérico. Para acessar mais informações sobre permissão para usar credenciais temporárias, consulte [Criar um perfil do IAM ou um usuário com permissões para chamar GetClusterCredentialsWithIAM ou GetClusterCredentials](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions). 

Para uma entidade principal (geralmente, um usuário com um perfil do IAM atribuído) ativar a capacidade na página **Configurações da conta** para outras pessoas na conta para **Exportar o conjunto de resultados**, ela precisa da permissão `sqlworkbench:UpdateAccountExportSettings` anexada ao perfil. Essa permissão está incluída na política gerenciada `AmazonRedshiftQueryEditorV2FullAccess` da AWS.

À medida que novos recursos são adicionados ao editor de consultas v2, as políticas gerenciadas da AWS são atualizadas conforme a necessidade. Se você criar sua própria política com base nas permissões concedidas e negadas nas políticas gerenciadas fornecidas, edite suas políticas para mantê-las atualizadas com as alterações nas políticas gerenciadas. Para obter mais informações sobre políticas gerenciadas no Amazon Redshift, consulte [Políticas gerenciadas pela AWS para o Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.managed-policies).

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
+ Usuários e grupos no Centro de Identidade do AWS IAM:

  Crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.
+ Usuários gerenciados no IAM com provedor de identidades:

  Crie um perfil para a federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ Usuários do IAM:
  + Crie um perfil que seu usuário possa assumir. Siga as instruções em [Criação de um perfil para um usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.
  + (Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em [Adição de permissões a um usuário (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

**nota**  
Se um administrador do Centro de Identidade do AWS IAM remover todas as associações do conjunto de permissões de um determinado conjunto de permissões em toda a conta, o acesso a qualquer recurso do editor de consultas originalmente associado ao conjunto de permissões removido deixará de estar acessível. Se, posteriormente, as mesmas permissões forem recriadas, um novo identificador interno será criado. Como o identificador interno foi alterado, o acesso aos recursos do editor de consultas anteriormente de propriedade de um usuário não pode ser acessado. Recomendamos que, antes de administradores excluírem um conjunto de permissões, os usuários desse conjunto de permissões exportem recursos do editor de consultas, como notebooks e consultas, como backup.

## Configuração de etiquetas de entidade principal para se conectar a um cluster ou a um grupo de trabalho pelo editor de consultas v2
<a name="query-editor-v2-principal-tags-iam"></a>

Para se conectar ao cluster ou ao grupo de trabalho usando a opção de usuário federado, configure o perfil do IAM ou o usuário com etiquetas de entidade principal. Como alternativa, configure o provedor de identidades (IdP) para transmitir `RedshiftDbUser` e (opcionalmente) `RedshiftDbGroups`. Para obter mais informações sobre como usar o IAM para gerenciar etiquetas, consulte [Transmitir etiquetas de sessão no AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) no *Guia do usuário do IAM*. Para configurar o acesso usando o AWS Identity and Access Management, um administrador pode adicionar etiquetas usando o console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

**Como adicionar etiquetas de entidades principais a um perfil do IAM**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Roles (Funções)** no painel de navegação.

1. Selecione a função que precisa de acesso ao editor de consultas v2 usando um usuário federado.

1. Escolha a guia **Tags**.

1. Selecione **Manage tags** (Gerenciar tags).

1. Selecione **Adicionar tag** e insira `RedshiftDbUser` em **Chave** e um **valor** para o nome do usuário federado.

1. Se preferir, escolha **Adicionar tag** e insira `RedshiftDbGroups` em **Chave** e o **valor** do nome do grupo a ser associado ao usuário.

1. Selecione **Save changes** (Salvar alterações) para visualizar a lista de etiquetas associadas ao perfil do IAM escolhido. A propagação das alterações pode levar vários segundos.

1. Para usar o usuário federado, atualize a página do editor de consultas v2 após a propagação das alterações.

**Configurar o provedor de identidades (IdP) para transmitir etiquetas de entidades principais**  
O procedimento para configurar etiquetas usando um provedor de identidades (IdP) varia de acordo com o IdP. Consulte a documentação do IdP para obter instruções sobre como transmitir informações de usuário e grupo para atributos SAML. Quando configurado corretamente, os seguintes atributos aparecem em sua resposta SAML que é usada pelo AWS Security Token Service para preencher nas tags de entidades principais para `RedshiftDbUser` e `RedshiftDbGroups`. 

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbUser">
    <AttributeValue>db-user-name</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbGroups">
    <AttributeValue>db-groups</AttributeValue>
</Attribute>
```

 O *db\$1groups* opcional deve ser uma lista separada por dois pontos, como `group1:group2:group3`.

Além disso, você pode definir o atributo `TransitiveTagKeys` para persistir as etiquetas durante o encadeamento de funções.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>RedshiftDbUser</AttributeValue>
  <AttributeValue>RedshiftDbGroups</AttributeValue>
</Attribute>
```

Para obter mais informações sobre como configurar o editor de consultas v2, consulte [Permissões necessárias para usar o editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

Para obter informações sobre como configurar os Serviços de Federação do Active Directory (AD FS), consulte a publicação do blog: [Federate access to Amazon Redshift query editor v2 with Active Directory Federation Services (AD FS)](https://aws.amazon.com/blogs//big-data/federate-access-to-amazon-redshift-query-editor-v2-with-active-directory-federation-services-ad-fs-part-3/) (Acesso federado ao editor de consultas v2 do Amazon Redshift com os Serviços de Federação do Active Directory [AD FS]). 

Para obter informações sobre como configurar o Okta, consulte a publicação do blog: [ Federate single sign-on access to Amazon Redshift query editor v2 with Okta](https://aws.amazon.com/blogs//big-data/federate-single-sign-on-access-to-amazon-redshift-query-editor-v2-with-okta/) (Acesso federado de logon único ao editor de consultas v2 do Amazon Redshift com Okta). 

**nota**  
Quando você se conecta ao cluster ou ao grupo de trabalho usando a opção de conexão de **Usuário federado** do editor de consultas v2, o provedor de identidades (IdP) pode fornecer etiquetas de entidade principal personalizadas para `RedshiftDbUser` e `RedshiftDbGroups`. Atualmente, o Centro de Identidade do AWS IAM não dá suporte para a passagem direta de etiquetas de entidade principal personalizadas para o editor de consultas v2.

# Abrir o editor de consultas v2
<a name="query-editor-v2-open"></a>

Com o Amazon Redshift, é possível executar consultas SQL no cluster do data warehouse usando o Editor de Consultas V2 no console do Amazon Redshift. O Editor de Consultas V2 é uma ferramenta baseada na web que oferece uma interface simples para executar consultas ad hoc, explorar dados e realizar tarefas de análise de dados. As seções a seguir oferecem orientações sobre como abrir o Editor de Consultas V2 no console e utilizar suas funcionalidades de forma eficaz.

**Para abrir o editor de consultas v2**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Redshift em [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. No menu do navegador, selecione **Editor** e **Query editor V2** (Editor de consultas V2). O editor de consultas v2 é aberto em uma nova guia do navegador.

A página do editor de consultas tem um menu do navegador no qual você escolhe uma exibição da seguinte maneira:

**Editor ![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-align-left.png)**  
Você gerencia e consulta os dados organizados como tabelas e contidos em um banco de dados. O banco de dados pode conter dados armazenados ou uma referência a dados armazenados em outro lugar, como o Amazon S3. Você se conecta a um banco de dados contido em um cluster ou em um grupo de trabalho com tecnologia sem servidor.  
Ao trabalhar na visualização **Editor**, você tem os seguintes controles:   
+ O campo **Cluster** ou **Workgroup** (Grupo de trabalho) exibe o nome ao qual você está conectado no momento. O campo **Database** (Banco de dados) exibe os bancos de dados dentro do cluster ou grupo de trabalho. As ações que você executa na visualização **Database** (Banco de dados) padrão para atuar no banco de dados selecionado. 
+ Uma visualização hierárquica de exibição em árvore de seus clusters ou grupos de trabalho, bancos de dados e esquemas. Em esquemas, é possível trabalhar com suas tabelas, exibições, funções e procedimentos armazenados. Cada objeto na exibição em árvore oferece suporte a um menu de contexto para executar ações associadas, como **Refresh**(Atualizar) ou **Drop** (Descartar), para o objeto. 
+ Uma ação **Create** (Criar) ![\[The create icon used in the AWS Console.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png) para criar bancos de dados, esquemas, tabelas e funções.
+ Uma ação ![\[The upload icon used in the AWS Console.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-upload.png)**Carregar dados** para carregar dados do Amazon S3 ou de um arquivo local para o banco de dados.
+ Um ícone **Save** (Salvar) ![\[The floppy disk icon used in the AWS Console.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-floppy-disk.png) para salvar sua consulta. 
+ Um ícone **Shortcuts** (Atalhos) ![\[The shortcut icon used in the AWS Console.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-key-command.png) para exibir atalhos de teclado para o editor. 
+ Um ícone ![\[The more actions icon used in the AWS Console.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-more.png)**Mais** para exibir mais ações no editor. Como: 
  + **Compartilhar com minha equipe**: para compartilhar um caderno com sua equipe. Para obter mais informações, consulte [Compartilhar e trabalhar em equipe](query-editor-v2-team.md).
  + **Atalhos**: para exibir atalhos de teclado para o editor.
  + **Histórico de guias**: para exibir o histórico de guias de uma guia no editor.
  + **Atualizar preenchimento automático**: para atualizar as sugestões exibidas ao criar SQL.
+ Uma área ![\[The editor icon in the AWS Console where can enter and run queries.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) **Editor** na qual você pode digitar e executar uma consulta. 

  Depois de executar uma consulta, é exibida a guia **Result** (Resultado) com os resultados. Aqui é onde você pode ativar **Chart** (Gráfico) para visualizar seus resultados. Você também pode **Export** (Exportar) os resultados.
+ Uma área ![\[The icon in the AWS Console where you can add sections to enter and run SQL or add Markdown.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) **Notebook** (Caderno) na qual você pode adicionar seções para inserir e executar SQL ou adicionar Markdown. 

  Depois de executar uma consulta, é exibida a guia **Result** (Resultado) com os resultados. Aqui é lugar em que você pode **Export** (Exportar) os resultados.

**Consultas ![\[A folder icon used in the AWS Console used to query databases.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-folder-close.png)**  
Uma consulta contém os comandos SQL para gerenciar e consultar dados em um banco de dados. Ao usar o editor de consultas v2 para carregar dados de exemplo, ele também cria e salva consultas de exemplo para você.  
 Ao escolher uma consulta salva, é possível abri-la, renomeá-la e excluí-la usando o menu de contexto (clique com o botão direito do mouse). Você pode visualizar atributos, como o **ARN da consulta**, de uma consulta salva escolhendo **Detalhes da consulta**. Você também pode ver o histórico de versões, editar as etiquetas anexadas à consulta e compartilhá-la com sua equipe.

**Cadernos ![\[A book icon used in the AWS Console used as SQL notebook.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-manual.png)**  
Um caderno SQL contém células SQL e Markdown. Use cadernos SQL para organizar, anotar e compartilhar vários comandos SQL em um único documento.  
 Ao escolher um caderno salvo, é possível abri-lo, renomeá-lo, duplicá-lo e excluí-lo usando o menu de contexto (clique com o botão direito do mouse). Você pode visualizar atributos, como o **ARN do caderno**, de um caderno salvo escolhendo **Detalhes do caderno**. Você também pode ver o histórico de versões, editar as etiquetas anexadas ao caderno, exportá-lo e compartilhá-lo com sua equipe. Para obter mais informações, consulte [Cadernos no Amazon RedshiftCadernos](query-editor-v2-notebooks.md).

**Gráficos ![\[Icon of a chart used in the AWS Console as visual representation of data.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-chart.png)**  
Gráfico é uma representação visual dos dados. O editor de consultas v2 fornece ferramentas para criar vários tipos de gráfico e salvá-los.   
 Ao escolher um gráfico salvo, é possível abri-lo, renomeá-lo e excluí-lo usando o menu de contexto (clique com o botão direito do mouse). Você pode visualizar atributos, como o **ARN do gráfico**, de um gráfico salvo escolhendo **Detalhes do gráfico**. Você também pode editar as etiquetas anexadas ao gráfico e exportá-lo. Para obter mais informações, consulte [Visualizar resultados da consulta](query-editor-v2-charts.md). 

**Histórico ![\[Icon of a clock used in the AWS Console for query history.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-clock.png)**  
O histórico de consultas é uma lista das consultas que você executou usando o editor de consultas v2 do Amazon Redshift. Essas consultas foram executadas como consultas individuais ou como parte de um caderno SQL. Para obter mais informações, consulte [Visualizar o histórico de consultas e guias](query-editor-v2-history.md). 

**Consultas programadas  ![\[Icon of a calendar used in the AWS Console for scheduled queries.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-calendar.png)**  
Uma consulta programada é uma consulta configurada para iniciar em horários específicos.

 Todas as visualizações do editor de consultas v2 têm os seguintes ícones:
+ Um ícone ![\[Icon of a quarter moon used in the AWS Console to switch between light and dark modes.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-moon.png) **Visual mode** (Modo visual) para alternar entre o modo claro e o modo escuro.
+ Um ícone ![\[Icon of a gear used in the AWS Console to show settings.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-cog.png) **Settings** (Configurações) para mostrar um menu das diferentes telas de configurações.
  + Um ícone ![\[Icon used in the AWS Console to show editor preferences.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-properties.png) **Editor preferences** (Preferências do editor) para editar suas preferências ao usar o editor de consultas v2. Aqui você pode **Editar configurações do espaço de trabalho** para alterar o tamanho da fonte, o tamanho da guia e outras configurações de exibição. Você também pode ativar (ou desativar) o **Preenchimento automático** para mostrar sugestões ao inserir SQL.
  + Um ícone ![\[Icon used in the AWS Console to view connections used in the editor tab.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-connection.png) **Connections** (Conexões) para visualizar as conexões usadas pelas guias do editor.

    A conexão é usada para recuperar dados de um banco de dados. Ela é criada para um banco de dados específico. Com uma conexão isolada, os resultados de um comando SQL que altera o banco de dados, como a criação de uma tabela temporária em uma guia do editor, não são visíveis em outra guia. Quando você abre uma guia no editor de consultas v2, o padrão é uma conexão isolada. Quando você cria uma conexão compartilhada, ou seja, desativa o botão **Isolated session** (Sessão isolada), os resultados em outras conexões compartilhadas com o mesmo banco de dados são visíveis entre si. No entanto, as guias do editor que usam uma conexão compartilhada com um banco de dados não são executadas em paralelo. As consultas que usam a mesma conexão devem aguardar até que a conexão esteja disponível. Uma conexão com um banco de dados não pode ser compartilhada com outro banco de dados e, portanto, os resultados SQL não são visíveis em diferentes conexões de banco de dados.

    O número de conexões ativas que qualquer usuário na conta pode ter é controlado por um administrador do editor de consultas v2.
  + Um ícone ![\[Icon used in the AWS Console used by administrators to change settings of user accounts.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-settings.png) **Account settings** (Configurações da conta) usado por um administrador para alterar determinadas configurações de todos os usuários na conta. Para obter mais informações, consulte [Configurações de conta](#query-editor-v2-settings).

## Considerações ao trabalhar com o editor de consultas v2
<a name="query-editor-v2-considerations"></a>

Considere o seguinte ao trabalhar com o editor de consultas v2:
+ A duração máxima de uma consulta é de 24 horas.
+ O tamanho máximo do resultado da consulta é 100 MB. Se uma chamada gerar mais de 100 MB de dados de resposta, os primeiros 100 MB serão retornados com um aviso.
+ É possível salvar uma consulta de até 300 mil caracteres. 
+ É possível salvar uma consulta de até 30 mil caracteres. 
+ Por padrão, o editor de consultas v2 confirma automaticamente cada comando SQL individual executado. Quando uma instrução BEGIN é fornecida, as instruções no bloco BEGIN-COMMIT ou BEGIN-ROLLBACK são executadas como uma única transação. Para obter mais informações sobre transações, consulte [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ O número máximo de avisos que o editor de consultas v2 exibe ao executar uma instrução SQL é `10`. Por exemplo, quando um procedimento armazenado é executado, não mais de dez instruções RAISE são exibidas.
+ O editor de consultas v2 não é compatível com um `RoleSessionName` do IAM que contenha vírgula (,). Você pode ver um erro semelhante ao seguinte: Mensagem de erro: “‘AROA123456789EXAMPLE:mytext,yourtext’ is not a valid value for TagValue - it contains illegal characters”. Esse problema surge quando você define um `RoleSessionName` do IAM que inclui uma vírgula e usa o editor de consultas v2 com esse perfil do IAM.

  Para obter mais informações sobre um `RoleSessionName` do IAM, consulte [Atributo SAML RoleSessionName](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-attribute) no *Guia do usuário do IAM*. 

## Configurações de conta
<a name="query-editor-v2-settings"></a>

Um usuário com as permissões corretas do IAM pode visualizar e alterar **Account settings** (Configurações da conta) para outros usuários na mesma Conta da AWS. Esse administrador pode exibir ou definir o seguinte:
+ O máximo de conexões simultâneas de banco de dados por usuário na conta. Isso inclui conexões para **Isolated sessions** (Sessão isoladas). Quando você altera esse valor, pode levar 10 minutos para que a mudança tenha efeito.
+ Permita que os usuários da conta exportem um conjunto inteiro de resultados de um comando SQL para um arquivo.
+ Carregue e exiba bancos de dados de exemplo com algumas consultas salvas correspondentes.
+ Especifique um caminho do Amazon S3 usado pelos usuários da conta para carregar dados de um arquivo local.
+ Visualize o ARN da chave do KMS a ser usada para criptografar os recursos do editor de consultas v2.

# Conectar-se a um banco de dados do Amazon Redshift
<a name="query-editor-v2-connecting"></a>

Para se conectar a um banco de dados, escolha o nome do cluster ou grupo de trabalho no painel de exibição em árvore. Caso seja solicitado, insira os parâmetros de conexão.

Ao se conectar a um cluster ou grupo de trabalho e a seus bancos de dados, você geralmente fornece um nome ao **Database** (Banco de dados). Você também fornece parâmetros necessários para um destes métodos de autenticação:

**Centro de Identidade do IAM**  
Com esse método, conecte-se ao data warehouse do Amazon Redshift usando as credenciais de logon único do provedor de identidades (IdP). O cluster ou o grupo de trabalho deve estar habilitado para o IAM Identity Center no console do Amazon Redshift. Para obter ajuda na configuração de conexões com o Centro de Identidade do IAM, consulte [Conectar o Redshift ao Centro de Identidade do AWS IAM para oferecer uma experiência de autenticação única](redshift-iam-access-control-idp-connect.md).

**Usuário federado**  
Com esse método, as tags de entidades principais do usuário ou perfil do IAM devem fornecer os detalhes da conexão. Você configura essas etiquetas no AWS Identity and Access Management ou no provedor de identidades (IdP). O editor de consultas v2 se baseia nas etiquetas a seguir.  
+ `RedshiftDbUser`: essa etiqueta define o usuário do banco de dados usado pelo editor de consultas v2. Essa etiqueta é obrigatória.
+ `RedshiftDbGroups`: essa etiqueta define os grupos de banco de dados que são unidos ao se conectar ao editor de consultas v2. Essa etiqueta é opcional e seu valor deve ser uma lista separada por dois pontos, como `group1:group2:group3`. Valores vazios são ignorados, ou seja, `group1::::group2` é interpretado como `group1:group2`. 
Essas etiquetas são encaminhadas à API do `redshift:GetClusterCredentials` a fim de obter credenciais para o cluster. Para obter mais informações, consulte [Configuração de etiquetas de entidade principal para se conectar a um cluster ou a um grupo de trabalho pelo editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-principal-tags-iam).

**Credenciais temporárias usando um nome de usuário do banco de dados**  
Essa opção só está disponível ao se conectar a um cluster. Com esse método, o editor de consultas v2 fornece um **User name** (Nome de usuário) para o banco de dados. O editor de consultas v2 gera uma senha temporária para se conectar ao banco de dados como o nome de usuário do banco de dados. Um usuário que usa esse método para se conectar deve ter permissão do IAM para `redshift:GetClusterCredentials`. Para impedir que os usuários usem esse método, modifique o perfil ou usuário do IAM para negar essa permissão. 

**Credenciais temporárias usando sua identidade do IAM**  
Essa opção só está disponível ao se conectar a um cluster. Com esse método, o editor de consultas v2 mapeia um nome de usuário para a identidade do IAM e gera uma senha temporária para se conectar ao banco de dados como a identidade do IAM. Um usuário que usa esse método para se conectar deve ter permissão do IAM para `redshift:GetClusterCredentialsWithIAM`. Para impedir que os usuários usem esse método, modifique o perfil ou usuário do IAM para negar essa permissão. 

**Nome de usuário e senha do banco de dados**  
Com esse método, forneça também um **User name** (Nome de usuário) e uma **Password** (Senha) para o banco de dados ao qual você está se conectando. O editor de consultas v2 cria um segredo em seu nome armazenado em AWS Secrets Manager. Este segredo contém credenciais para se conectar ao seu banco de dados. 

**AWS Secrets Manager**  
 Com esse método, em vez de um nome de banco de dados, forneça um **Secret** (Segredo) armazenado no Secrets Manager que contém seu banco de dados e credenciais de login. Para obter informações sobre como criar um segredo, consulte [Criar um segredo para credenciais de conexão de banco de dados](redshift-secrets-manager-integration-create.md). 

Ao selecionar um cluster ou grupo de trabalho com o editor de consultas v2, dependendo do contexto, é possível criar, editar e excluir conexões usando o menu de contexto (clique com o botão direito do mouse). Você pode visualizar atributos, como o **ARN da conexão**, escolhendo **Detalhes da conexão**. Você também pode editar as etiquetas anexadas à conexão.

# Navegar por um banco de dados do Amazon Redshift
<a name="query-editor-v2-object-browse"></a>

Em um banco de dados, você pode gerenciar esquemas, tabelas, visualizações, funções e procedimentos armazenados no painel de exibição em árvore. Cada objeto da exibição tem ações associadas a ele em um menu de contexto (clique com o botão direito do mouse).

O painel de exibição em árvore hierárquica exibe objetos do banco de dados. Para atualizar o painel de visualização em árvore a fim de exibir objetos do banco de dados que possam ter sido criados após a última exibição da visualização em árvore, selecione o ícone ![\[Circular arrow icon representing a refresh or reload action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-refresh.png). Abra o menu de contexto (clique com o botão direito do mouse) de um objeto para ver quais ações você pode executar.

![\[Tree-view icons\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/sqlworkbench-tree-view.png)

Depois de escolher uma tabela, você pode fazer o seguinte:
+ Para iniciar uma consulta no editor com uma instrução SELECT que consulta todas as colunas da tabela, use **Select table** (Selecionar tabela).
+ Para ver os atributos ou uma tabela, use **Show table definition** (Exibir definição de tabela). Use isso para ver nomes de colunas, tipos de coluna, codificação, chaves de distribuição, chaves de classificação e verificar se uma coluna pode conter valores nulos. Para obter mais informações sobre atributos de tabela, consulte [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ Para excluir uma tabela, use **Delete** (Excluir). Você também pode usar **Truncate table** (Truncar tabela) para excluir todas as linhas da tabela ou **Drop table** (Descartar tabela) para remover a tabela do banco de dados. Para obter mais informações, consulte [TRUNCATE](https://docs.aws.amazon.com/redshift/latest/dg/r_TRUNCATE.html) e [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Escolha um esquema para **Refresh** (Atualizar) ou **Drop schema** (Descartar esquema). 

Escolha uma visualização para **Show view definition** (Exibir definição de visualização) ou **Drop view** (Descartar visualização). 

Escolha uma função para **Show function definition** (Exibir definição de função) ou **Drop function** (Descartar função). 

Escolha um procedimento armazenado para **Show procedure definition** (Exibir definição de procedimento) ou **Drop procedure** (Descartar procedimento). 

# Criar objetos de banco de dados
<a name="query-editor-v2-object-create"></a>

É possível criar objetos de banco de dados, inclusive bancos de dados, esquemas, tabelas e funções definidas pelo usuário (UDFs). Você deve estar conectado a um cluster ou grupo de trabalho e a um banco de dados para criar objetos de banco de dados.

## Criar bancos de dados
<a name="query-editor-v2-object-create-database"></a>

É possível usar o editor de consultas v2 para criar bancos de dados no cluster ou grupo de trabalho.

**Para criar um banco de dados**

Para obter informações sobre bancos de dados, consulte [CREATE DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Database** (Banco de dados).

1. Insira um **Database name** (Nome do banco de dados).

1. (Opcional) Selecione **Users and groups** (Usuários e grupos) e escolha um **Database user** (Usuário do banco de dados).

1. (Opcional) Você pode criar o banco de dados por meio da unidade de compartilhamento de dados ou do AWS Glue Data Catalog. Para obter mais informações sobre o AWS Glue, consulte [O que é o AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) no *Guia do desenvolvedor do AWS Glue*.
   + (Opcional) Selecione **Criar usando uma unidade de compartilhamento de dados** e escolha **Selecione uma unidade de compartilhamento de dados**. A lista inclui unidades de compartilhamento de dados do produtor que podem ser usadas para criar uma unidade de compartilhamento de dados do consumidor no cluster ou grupo de trabalho atual.
   + (Opcional) Selecione **Criar usando o AWS Glue Data Catalog** e **Selecione um banco de dados do AWS Glue**. Em **Esquema do catálogo de dados**, insira o nome que será usado para o esquema ao se referir aos dados em um nome de três partes (database.schema.table). 

1. Selecione **Criar banco de dados**.

   O novo banco de dados é exibido no painel de exibição em árvore.

   Ao passar pela etapa opcional de consultar um banco de dados criado por uma unidade de compartilhamento de dados, conecte-se a um banco de dados do Amazon Redshift no cluster ou grupo de trabalho (por exemplo, o banco de dados padrão `dev`) e use a notação de três partes (database.schema.table) que faça referência ao nome do banco de dados que você criou quando selecionou **Criar usando uma unidade de compartilhamento de dados**. O banco de dados da unidade de compartilhamento de dados está listado na guia “Editor” do editor de consultas v2 mas não está habilitado para conexão direta.

   Ao passar pela etapa opcional de consultar um banco de dados criado por meio de um AWS Glue Data Catalog, conecte-se ao banco de dados do Amazon Redshift no cluster ou grupo de trabalho (por exemplo, o banco de dados padrão `dev`) e use a notação de três partes (database.schema.table) que faça referência ao nome do banco de dados que você criou quando selecionou **Criar usando o AWS Glue Data Catalog**, o esquema que você nomeou em **Esquema do catálogo de dados** e a tabela no AWS Glue Data Catalog. Similar a:

   ```
   SELECT * FROM glue-database.glue-schema.glue-table
   ```
**nota**  
Confirme se conexão com o banco de dados padrão está utilizando o método de conexão **Credenciais temporárias usando sua identidade do IAM** e se as credenciais do IAM receberam privilégios de uso para o banco de dados do AWS Glue.  

   ```
   GRANT USAGE ON DATABASE glue-database to "IAM:MyIAMUser"
   ```

   O banco de dados do AWS Glue está listado na guia “Editor” do editor de consultas v2 mas não está habilitado para conexão direta.

   Para obter mais informações sobre como consultar um AWS Glue Data Catalog, consulte [Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como consumidor](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html) e [Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como produtor](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-producer.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

**Exemplo de criação de um banco de dados como consumidor da unidade de compartilhamento de dados**

O exemplo a seguir descreve um cenário específico que foi usado para criar um banco de dados com base em uma unidade de compartilhamento de dados usando o editor de consultas v2. Analise esse cenário para saber como você pode criar um banco de dados com base em uma unidade de compartilhamento de dados em seu ambiente. Esse cenário usa dois clusters: `cluster-base` (o cluster do produtor) e `cluster-view` (o cluster do consumidor).

1. Use o console do Amazon Redshift para criar uma unidade de compartilhamento de dados para a tabela `category2` no cluster `cluster-base`. A unidade de compartilhamento de dados do produtor é chamada `datashare_base`.

   Para obter informações sobre como criar unidades de compartilhamento de dados, consulte [Compartilhar dados entre clusters no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Use o console do Amazon Redshift para aceitar a unidade de compartilhamento de dados `datashare_base` como consumidor para a tabela `category2` no cluster `cluster-view`.

1. Exiba o painel de visualização em árvore no editor de consultas v2, que mostra a hierarquia de `cluster-base` como:
   + Cluster: `cluster-base`
     + Banco de dados: `dev`
       + Esquema: `public`
         + Tabelas: `category2`

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Database** (Banco de dados).

1. Insira `see_datashare_base` em **Nome do banco de dados**.

1. Selecione **Criar usando uma unidade de compartilhamento de dados** e escolha **Selecione uma unidade de compartilhamento de dados**. Escolha `datashare_base` para usar como fonte do banco de dados que você está criando.

   O painel de visualização em árvore no editor de consultas v2 mostra a hierarquia de `cluster-view` como:
   + Cluster: `cluster-view`
     + Banco de dados: `see_datashare_base`
       + Esquema: `public`
         + Tabelas: `category2`

1. Ao consultar os dados, conecte-se ao banco de dados padrão do cluster `cluster-view` (normalmente chamado `dev`), mas faça referência ao banco de dados da unidade de compartilhamento de dados `see_datashare_base` no SQL.
**nota**  
Na visualização do editor de consultas v2, o cluster selecionado é `cluster-view`. O banco de dados selecionado é `dev`. O banco de dados `see_datashare_base` está listado mas não está habilitado para conexão direta. Você escolhe o banco de dados `dev` e faz referência a `see_datashare_base` no SQL que executa.

   ```
   SELECT * FROM "see_datashare_base"."public"."category2";
   ```

   A consulta recupera dados da unidade de compartilhamento de dados `datashare_base` no cluster `cluster_base`.

**Exemplo de criação de um banco de dados por meio de um AWS Glue Data Catalog**

O exemplo a seguir descreve um cenário específico que foi usado para criar um banco de dados por meio de um AWS Glue Data Catalog usando o editor de consultas v2. Analise esse cenário para saber como você pode criar um banco de dados por meio de um AWS Glue Data Catalog em seu ambiente. Esse cenário usa um cluster, `cluster-view`, para conter o banco de dados que você cria.

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Database** (Banco de dados).

1. Insira `data_catalog_database` em **Nome do banco de dados**.

1. Selecione **Criar usando um AWS Glue Data Catalog** e escolha **Selecione um banco de dados do AWS Glue**. Escolha `glue_db` para usar como fonte do banco de dados que você está criando.

   Escolha **Esquema do catálogo de dados** e insira `myschema` como o nome do esquema a ser usado na notação de três partes.

   O painel de visualização em árvore no editor de consultas v2 mostra a hierarquia de `cluster-view` como:
   + Cluster: `cluster-view`
     + Banco de dados: `data_catalog_database`
       + Esquema: `myschema`
         + Tabelas: `category3`

1. Ao consultar os dados, conecte-se ao banco de dados padrão do cluster `cluster-view` (normalmente chamado `dev`), mas faça referência ao banco de dados`data_catalog_database` no SQL. 
**nota**  
Na visualização do editor de consultas v2, o cluster selecionado é `cluster-view`. O banco de dados selecionado é `dev`. O banco de dados `data_catalog_database` está listado mas não está habilitado para conexão direta. Você escolhe o banco de dados `dev` e faz referência a `data_catalog_database` no SQL que executa.

   ```
   SELECT * FROM "data_catalog_database"."myschema"."category3";
   ```

   A consulta recupera dados catalogados pelo AWS Glue Data Catalog.

## Criar esquemas
<a name="query-editor-v2-object-create-schema"></a>

É possível usar o editor de consultas v2 para criar esquemas no cluster ou grupo de trabalho.

**Para criar um esquema**

Para obter informações sobre esquemas, consulte [Esquemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Schema** (Esquema).

1. Digite um **Schema name** (Nome do esquema).

1. Escolha **Local** ou **External** (Externo) como **Schema type** (Tipo de esquema).

   Para obter mais informações sobre esquemas, consulte [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. Para obter mais informações sobre esquemas, consulte [EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Se escolher **External** (Externo), você terá as opções de um esquema externo a seguir.
   + **Glue Data Catalog**: para criar um esquema externo no Amazon Redshift que se refira a tabelas no AWS Glue. Além de escolher o banco de dados do AWS Glue, selecione o perfil do IAM associado ao cluster e o perfil do IAM associado ao catálogo de dados.
   + **PostgreSQL**: para criar um esquema externo no Amazon Redshift que se refira a um banco de dados do Amazon RDS para PostgreSQL ou do Amazon Aurora compatível com PostgreSQL. Forneça também as informações de conexão com o banco de dados. Para obter mais informações sobre consultas federadas, consulte [Querying data with federated queries](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) (Consultar dados com consultas federadas) no *Guia do .de banco de dados do Amazon Redshift*.
   + **MySQL**: para criar um esquema externo no Amazon Redshift que se refira a um banco de dados do Amazon RDS para MySQL ou do Amazon Aurora compatível com MySQL. Forneça também as informações de conexão com o banco de dados. Para obter mais informações sobre consultas federadas, consulte [Querying data with federated queries](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) (Consultar dados com consultas federadas) no *Guia do .de banco de dados do Amazon Redshift*.

1. Selecione **Create schema** (Criar esquema).

   O novo esquema aparece no painel de exibição em árvore.

## Criar tabelas
<a name="query-editor-v2-object-create-table"></a>

Você pode usar o editor de consultas v2 para criar tabelas no cluster ou grupo de trabalho.

**Para criar uma tabela**

É possível criar uma tabela com base em um arquivo de valores separados por vírgulas (CSV) especificado ou define cada coluna da tabela. Para obter mais informações, consulte [Design de tabelas](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) e [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Selecione **Open query in editor** (Abrir consulta no editor) para visualizar e editar a instrução CREATE TABLE antes de executar a consulta para criar a tabela. 

1. Escolha ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) **Table** (Tabela).

1. Escolha um esquema.

1. Escolha um nome da tabela.

1. Selecione ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) **Add field** (Adicionar campo) para adicionar uma coluna. 

1. Use um arquivo CSV como modelo para a definição da tabela:

   1. Selecione **Load from CSV** (Carregar do CSV).

   1. Navegue até o local do arquivo.

      Se você usar um arquivo CSV, certifique-se de que a primeira linha do arquivo contém os cabeçalhos da coluna.

   1. Escolha o arquivo selecione **Open** (Abrir). Confirme que os nomes das colunas e os tipos de dados são os que você deseja.

1. Para cada coluna, escolha a coluna e as opções que deseja:
   + Escolha um valor para **Encoding** (Codificação).
   + Escolha um **Default value** (Valor padrão).
   + Ative **Automatically increment** (Incrementar automaticamente), se quiser que os valores da coluna sejam incrementados. Em seguida, especifique um valor para o **Auto increment seed** (Incrementar seed automaticamente) e **Auto increment step** (Etapa de incremento automático).
   + Ative **Not NULL** (Não NULL), se a coluna deve sempre conter um valor.
   + Digite o valor de **Size** (Tamanho) para a coluna.
   + Ative **Primary key** (Chave primária), se quiser que a coluna seja uma chave primária.
   + Ative **Unique key** (Chave exclusiva), se quiser que a coluna seja uma chave exclusiva.

1. (Opcional) Escolha **Table details** (Detalhes da tabela) e selecione uma das opções a seguir:
   + Coluna e estilo da chave de distribuição.
   + Coluna de chave de classificação e tipo de classificação.
   + Ative **Backup** para incluir a tabela em snapshots.
   + Ative **Temporary table** (Tabela temporária) para criar a tabela como uma tabela temporária.

1. Selecione **Open query in editor** (Abrir consulta no editor) para continuar especificando opções para definir a tabela ou escolha **Create table** (Criar tabela) para criar a tabela.

## Criar funções
<a name="query-editor-v2-object-create-function"></a>

É possível usar o editor de consultas v2 para criar funções no cluster ou grupo de trabalho.

**Como criar uma função do**

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Function** (Função).

1. Em **Type** (Tipo), escolha **SQL** ou **Python**.

1. Escolha um valor para **Schema** (Esquema).

1. Insira um valor para **Name** (Nome) da função.

1. Insira um valor para **Volatility** (Volatilidade) da função.

1. Selecione **Parameters** (Parâmetros) por tipos de dados na ordem dos parâmetros de entrada.

1. Em **Returns** (Retornos), escolha um tipo de dados.

1. Insira o código do **programa SQL** ou **programa Python** da função.

1. Escolha **Criar**.

Para obter mais informações sobre funções definidas pelo usuário (UDFs), consulte [Criar funções definidas pelo usuário](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

# Visualizar o histórico de consultas e guias
<a name="query-editor-v2-history"></a>

É possível ver seu histórico de consultas com o editor de consultas v2. Somente as consultas que você executou usando o editor de consultas v2 aparecem no histórico de consultas. Tanto as consultas executadas usando uma guia **Editor** ou uma guia **Notebook** (Caderno) são exibidas. É possível filtrar a lista exibida por um período, como `This week`, em que uma semana é definida como de segunda a domingo. A lista de consultas retorna 25 linhas de consultas por vez que correspondem ao seu filtro. Selecione **Load more** (Carregar mais) para ver o próximo conjunto. Selecione uma consulta. No menu **Actions** (Ações), As ações disponíveis dependem de a consulta escolhida ter sido salva. É possível selecionar as seguintes operações:
+ **View query details** (Visualizar detalhes da consulta): exibe uma página de detalhes da consulta com mais informações sobre a consulta executada.
+ **Open query in a new tab** (Abrir consulta em uma nova guia): abre uma nova guia do editor e a prepara com a consulta escolhida. Se ainda estiver conectado, o cluster ou o grupo de trabalho e o banco de dados serão selecionados automaticamente. Para executar a consulta, primeiro confirme se o cluster ou grupo de trabalho e o banco de dados corretos foram escolhidos.
+ **Open source tab** (Aba de código aberto): se ainda estiver aberta, acessa a guia do editor ou do caderno que continha a consulta quando ela foi executada. O conteúdo do editor ou do caderno pode ter mudado após a execução da consulta.
+ **Open saved query** (Abrir consulta salva): acessa a guia do editor ou do caderno e abre a consulta.

Também é possível visualizar o histórico das consultas executadas em uma guia **Editor** ou o histórico das consultas executadas em uma guia **Notebook** (Caderno). Para ver um histórico de consultas em uma guia, selecione **Tab history** (Histórico da guia). No histórico da guia, é possível executar as seguintes operações:
+ **Copy query** (Copiar consulta): copia o conteúdo SQL da versão da consulta para a área de transferência.
+ **Open query in a new tab** (Abrir consulta em uma nova guia): abre uma nova guia do editor e a prepara com a consulta escolhida. Para executar a consulta, você deve escolher o cluster ou o grupo de trabalho e o banco de dados.
+ **View query details** (Visualizar detalhes da consulta): exibe uma página de detalhes da consulta com mais informações sobre a consulta executada.

# Interagir com o SQL generativo do Amazon Q
<a name="query-editor-v2-generative-ai"></a>

**nota**  
No momento, o SQL generativo do Amazon Q é oferecido somente nas seguintes Regiões da AWS:  
Região Leste dos EUA (Norte da Virgínia) (us-east-1)
Região Leste dos EUA (Ohio) (us-east-2)
Região Oeste dos EUA (Oregon) (us-west-2)
Região Ásia-Pacífico (Mumbai) (ap-south-1)
Região da Ásia-Pacífico (Seul) (ap-northeast-2)
Região da Ásia-Pacífico (Singapura) (ap-southeast-1)
Região da Ásia-Pacífico (Sydney) (ap-southeast-2)
Região da Ásia-Pacífico (Tóquio) (ap-northeast-1)
Região do Canadá (Central) (ca-central-1)
Região da Europa (Frankfurt) (eu-central-1)
Região da Europa (Irlanda) (eu-west-1)
Região da Europa (Londres) (eu-west-2)
Região da Europa (Paris) (eu-west-3)
Região da América do Sul (São Paulo) (sa-east-1)
Para ter informações sobre onde seus dados são processados, consulte [Cross region inference in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html) no *Guia do usuário do Amazon Q Developer*.

É possível interagir com o recurso SQL generativo do Amazon Q no editor de consultas do Amazon Redshift v2. Trata-se de um assistente de codificação que gera instruções SQL com base nos prompts e no esquema do banco de dados. Esse assistente de codificação está disponível enquanto você cria um notebook no editor de consultas v2. O SQL gerado destina-se ao banco de dados ao qual seu caderno está conectado.

Ao interagir com o SQL generativo do Amazon Q, faça perguntas específicas, itere quando tiver solicitações complexas e verifique se as respostas estão corretas. 

Ao fornecer solicitações de análise em linguagem natural, tente usar o máximo de especificidade para ajudar o assistente de codificação a compreender exatamente aquilo de que você precisa. Em vez de perguntar "encontre os espaços que mais venderam ingressos", dê mais detalhes como "encontre nomes/IDs dos três espaços que mais venderam ingressos em 2008". Use nomes consistentes e específicos de objeto no banco de dados quando os conhecer. Como nomes de esquema, tabela e coluna, conforme definido no banco de dados, em vez de se referir ao mesmo objeto de maneiras diferentes, o que pode confundir o assistente.

Divida solicitações complexas em várias declarações simples que sejam mais fáceis do assistente interpretar. Faça perguntas de acompanhamento de maneira iterativa para obter uma análise mais detalhada do assistente. Por exemplo, pergunte primeiro "qual estado tem mais espaços?" Em seguida, com base na resposta, pergunte "qual é o espaço mais conhecido desse estado?". 

Revise o SQL gerado antes de executá-lo para garantir a precisão. Se a consulta SQL gerada tiver erros ou não corresponder à intenção, dê instruções ao assistente sobre como corrigi-la, em vez de reformular a solicitação inteira. Por exemplo, se a consulta não tiver uma cláusula de predicado no ano, peça "Dê locais do ano de 2008".

Envie o texto dos erros que você recebe ao executar o SQL gerado de volta como prompts para o SQL generativo do Amazon Q. Ele aprende com esses erros para produzir um SQL melhor.

Adicione o esquema ao caminho de pesquisa SQL para sinalizar que o esquema deve ser usado. Por exemplo, adicione o esquema tickit quando os dados estiverem no esquema tickit em vez de no esquema público.

```
set search_path to '$user', tickit;
```

## Considerações ao interagir com o SQL generativo do Amazon Q
<a name="query-editor-v2-generative-ai-considerations"></a>

Considere o seguinte ao trabalhar no painel de chat:
+ O administrador do editor de consultas v2 da conta deve ter ativado o recurso de chat na página **Configurações do SQL generativo**.
+ Para usar o SQL generativo do Amazon Q, você precisa da permissão `sqlworkbench:GetQSqlRecommendations` na política do IAM, além de outras permissões especificadas na política gerenciada pela AWS do Editor de Consultas V2. Para obter mais informações sobre políticas gerenciadas pela AWS, consulte [Acessar o editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-configure).
+ As perguntas devem ser escritas em inglês.
+ As perguntas devem fazer referência ao banco de dados conectado no cluster ou no grupo de trabalho. Para evitar erros de estado vazio, deve haver pelo menos uma tabela e alguns dados no banco de dados.
+ As perguntas devem fazer referência aos dados armazenados no banco de dados conectado. Eles não podem fazer referência a um esquema externo. Para obter mais informações sobre os esquemas compatíveis, consulte [Create schema](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ Qualquer dúvida que resulte em um SQL que altere o banco de dados conectado pode resultar em um aviso.
+ A tecnologia de IA generativa é nova e pode haver erros, às vezes chamados de alucinações, nas respostas. Teste e analise todo o código em busca de erros e vulnerabilidades antes de usá-lo no ambiente ou no workload.
+ Você pode melhorar as recomendações compartilhando as consultas SQL executadas por outros usuários na conta. O administrador da conta pode executar os seguintes comandos SQL para permitir o acesso ao histórico de consultas da conta.

  ```
  GRANT ROLE SYS:MONITOR to "IAMR:role-name";
  GRANT ROLE SYS:MONITOR to "IAM:user-name";
  GRANT ROLE SYS:MONITOR to "database-username";
  ```

  Para obter mais informações sobre `SYS:MONITOR`, consulte [Amazon Redshift system-defined roles](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ Os dados são seguros e privados. Os dados não são compartilhados entre contas. As consultas, os dados e os esquemas de banco de dados não são usados para treinar um modelo de base (FM) de IA generativa. A entrada é usada como solicitações contextuais para o FM responder apenas às consultas.

# Uso do SQL generativo
<a name="query-editor-v2-generative-ai-interact"></a>

Depois que as permissões corretas forem configuradas, ao trabalhar com um notebook no editor de consultas v2, você poderá escolher um ícone para iniciar uma conversa.

**Como interagir com o chat do SQL generativo do Amazon Q para gerar SQL**

1. Na guia **Editor** do editor de consultas v2, abra um noteook.

1. Escolha o ícone de SQL generativo ![\[Generative SQL panel\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-amazon-q.png) e siga as instruções para fazer as perguntas ao SQL generativo do editor de consultas do Amazon Redshift v2 no painel de chat.

   Você faz perguntas em um campo de prompt, e o SQL generativo do Amazon Q responde com o SQL sugerido. Todos os erros encontrados são retornados para você no painel de chat.

1. Escolha **Adicionar ao notebook** para adicionar uma célula Markdown com o prompt e uma célula SQL com o SQL sugerido ao notebook.

1. (Opcional) Forneça feedback sobre o SQL gerado escolhendo o ícone de feedback útil ![\[Helpful feedback\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-thumbs-up.png) ou o ícone de feedback não útil ![\[Not helpful feedback\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-thumbs-down.png). Você pode categorizar o feedback não útil como `Incorrect tables/columns`, `Incorrect predicates/literals/group bys`, `Incorrect SQL structure` ou `Other`. Além disso, é possível fornecer um texto em formato livre com seu feedback sobre a precisão do SQL.

1. (Opcional) Escolha **Regenerar SQL** para gerar outra resposta para o mesmo prompt. É possível optar por **Regenerar SQL** uma vez para o prompt atual.

1. (Opcional) No painel de chat do SQL generativo, escolha o ícone ![\[More\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-vmore.png) **Mais** e **Atualizar banco de dados** para atualizar os metadados que descrevem o banco de dados conectado. Esses metadados incluem as definições de esquemas, tabelas e colunas no banco de dados.

# Atualização de configurações do SQL generativo como administrador
<a name="query-editor-v2-generative-ai-settings"></a>

Um usuário com as permissões do IAM corretas pode exibir e alterar **Configurações do SQL generativo** de outros usuários na mesma Conta da AWS. Esse administrador deve ter permissão `sqlworkbench:UpdateAccountQSqlSettings` na política do IAM, além de outras permissões especificadas na política gerenciada pelo AWS para o editor de consultas v2. Para obter mais informações sobre políticas gerenciadas, consulte [Permissões necessárias para usar o editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Para um administrador ativar o chat SQL generativo para todos os usuários da conta**

1. Um ícone ![\[Settings\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-cog.png) **Configurações** para mostrar um menu das telas de configurações diferentes.

1. Em seguida, escolha o ícone ![\[Generative SQL settings\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-amazon-q.png) de configurações do SQL generativo para mostrar a página **Configurações do SQL generativo do Q**.

1. Selecione **Configurações do SQL generativo do Q** a fim de ativar o recurso de SQL generativo para usuários na conta.

   Depois de ativar o SQL generativo do Amazon Q, você pode visualizar o número de prompts restantes na sua alocação. O administrador do Editor de Consultas V2 pode permitir que os usuários na conta usem o nível Amazon Q Developer Pro. Para usar o nível Pro, configure os usuários com o Centro de Identidade do IAM e inscreva cada um no nível Amazon Q Developer Pro. Para ter informações sobre como configurar o Centro de Identidade do IAM com o Amazon Redshift, consulte [Conectar o Redshift ao Centro de Identidade do AWS IAM para oferecer uma experiência de autenticação única](redshift-iam-access-control-idp-connect.md). Para ter informações sobre os preços do Amazon Q Developer, consulte [Preços do Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

   Ao usar o nível gratuito do Amazon Q Developer, o número total de prompts de todos os usuários de uma Conta da AWS é limitado a mil por mês. Ao usar o nível Amazon Q Developer Pro, o número total de prompts que qualquer usuário individual pode enviar é limitado a mil por mês. Você pode ver o número de prompts disponíveis na página **Configurações**. Para ter informações sobre os preços do Amazon Q Developer, consulte [Preços do Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

## Contexto personalizado
<a name="query-editor-v2-generative-custom-context"></a>

O administrador do Editor de Consultas V2 pode especificar um *contexto personalizado* para adaptar o SQL gerado ao seu ambiente. Um contexto personalizado fornece conhecimentos de domínio e preferências para oferecer controle refinado sobre a geração de SQL. Ele é definido em um arquivo JSON que pode ser carregado pelo administrador do Editor de Consultas V2 no SQL generativo do Amazon Q.

As chaves JSON usadas para personalizar o SQL gerado para um data warehouse são apresentadas a seguir.

Todas as referências de tabela precisam seguir a notação de três partes `database.schema.table`.

**Recursos**  
Um recurso especifica o escopo ou a parte de um ativo de dados ao qual o contexto personalizado é aplicado.

**ResourceId**  
Especifica um identificador único do recurso. Para um cluster do Amazon Redshift, especifique o `cluster id`. Para um grupo de trabalho do Redshift sem servidor, especifique o `workgroup name`.

**ResourceType**  
Valor válido: `REDSHIFT_WAREHOUSE`.

**TablesToInclude**  
Especifica um conjunto de tabelas que são consideradas para geração de SQL. Esse campo é essencial quando você quer limitar o escopo das consultas SQL a um subconjunto definido de tabelas disponíveis. Ele pode ajudar a otimizar o processo de geração reduzindo as referências de tabela desnecessárias. Você pode combinar esse campo com `TablesToExclude` para obter um controle mais preciso sobre a geração de consultas.

**TablesToExclude**  
Especifica o conjunto de tabelas que são excluídas da geração de SQL. Use-o quando determinadas tabelas forem irrelevantes ou não precisarem ser consideradas no processo de geração de consultas. 

**TableAnnotations**  
Fornece metadados ou informações complementares sobre as tabelas em uso. Essas anotações podem incluir descrições de tabela, notas de uso ou quaisquer outros atributos que ajudem o SQL generativo do Amazon Q a entender melhor o contexto ou a estrutura da tabela. Isso é importante para aumentar a precisão da geração de SQL por meio de definições de tabela mais claras.

**ColumnsToInclude**  
Define quais colunas das tabelas especificadas são incluídas ao gerar consultas SQL. Esse campo ajuda o SQL generativo do Amazon Q a se concentrar nas colunas relevantes e melhora o desempenho ao restringir o escopo da recuperação de dados. Ele garante que o SQL generativo do Amazon Q extraia apenas os dados necessários ao contexto de consulta específico.

**ColumnsToExclude**  
Especifica as colunas que não são consideradas na geração de SQL. Isso pode ser usado quando determinadas colunas contêm dados irrelevantes ou redundantes que não devem ser considerados pelo SQL generativo do Amazon Q. Ao gerenciar a inclusão e exclusão de colunas, é possível refinar os resultados e manter o controle sobre os dados recuperados.

**ColumnAnnotations**  
Semelhante a `TableAnnotations`, esse campo fornece anotações ou metadados específicos para colunas individuais. Essas anotações podem oferecer informações sobre as definições de coluna ou instruções especiais sobre como usá-las. Essas informações são úteis para orientar o processo de geração de SQL e garantir que as colunas sejam usadas adequadamente nas consultas.

**CuratedQueries**  
Um conjunto de exemplos de perguntas e respostas predefinidas, em que a pergunta é escrita em linguagem natural (NLQ) e a resposta é a consulta SQL correspondente. Esses exemplos ajudam o SQL generativo do Amazon Q a entender os tipos de consulta que se espera que ele gere. Eles servem como pontos de referência para melhorar a precisão e a relevância das saídas do SQL generativo do Amazon Q.

**CustomDocuments**  
Informações ou dicas adicionais fornecidas ao SQL generativo do Amazon Q, como definições, conhecimentos de um domínio específico ou explicações. Por exemplo, se sua unidade de negócios usa uma forma exclusiva para calcular um valor (por ex., “na divisão de fabricação, o total de vendas é preço \$1 receita”), isso pode ser documentado neste campo. Por fornecerem contexto adicional, esses documentos ajudam o SQL generativo do Amazon Q a interpretar melhor as entradas em linguagem natural.

**AdditionalTables**  
Especifica todas as tabelas adicionais que devem ser consideradas para geração de SQL e que não fazem parte dos dados armazenados no data warehouse. Isso permite que o SQL generativo do Amazon Q integre fontes de dados externas à sua lógica de geração de SQL, ampliando sua capacidade de lidar com ambientes de dados complexos.

**AppendToPrompt**  
Instruções ou diretrizes adicionais fornecidas ao SQL generativo do Amazon Q para orientar o processo de geração de SQL. Isso pode incluir diretivas específicas sobre como estruturar a consulta, preferências por determinados constructos de SQL ou qualquer outra instrução abrangente que melhore a qualidade da saída do SQL generativo do Amazon Q.

O exemplo de contexto personalizado apresentado abaixo mostra o formato do arquivo JSON e define o seguinte:
+ Um contexto personalizado para o data warehouse do Amazon Redshift referente ao cluster `mycluster`.
+ Tabelas e colunas específicas a serem incluídas e excluídas para ajudar a otimizar o processo de geração de SQL.
+ Anotações para as tabelas e colunas solicitadas para inclusão.
+ Exemplos de consultas com curadoria para uso do SQL generativo do Amazon Q.
+ Documentos e barreiras de proteção personalizados a serem usados ao gerar SQL.
+ A linguagem de definição de dados (DDL) para tabelas adicionais usarem ao gerar SQL.

```
{
    "resources": [
        {
            "ResourceId": "mycluster",
            "ResourceType": "REDSHIFT_WAREHOUSE",
            "TablesToInclude": [
                "database.schema.table1",
                "database.schema.table2"
            ],
            "TablesToExclude": [
                "database.schema.table3",
                "database.schema.table4"
            ],
            "ColumnsToInclude": {
                "database.schema.table1": [
                    "col1",
                    "col2"
                ],
                "database.schema.table2": [
                    "col1",
                    "col2"
                ]
            },
            "ColumnsToExclude": {
                "database.schema.table5": [
                    "col1",
                    "col2"
                ],
                "database.schema.table6": [
                    "col1",
                    "col2"
                ]
            },
            "TableAnnotations": {
                "database.schema.table1": "table1 refers to Q3 sales",
                "database.schema.table2": "table2 refers to Q4 sales"
            },
            "ColumnAnnotations": {
                "database.schema.table1": {
                    "col1": "col1 refers to Q3 sale total",
                    "col2": "col2 refers to sale location"
                },
                "database.schema.table2": {
                    "col1": "col2 refers to Q4 sale total",
                    "col2": "col2 refers to sale location"
                }
            },
            "CuratedQueries": [
                {
                    "Question": "what is the sales data for Q3",
                    "Answer": "SELECT * FROM table1"
                },
                {
                    "Question": "what is the sales data for Q4",
                    "Answer": "SELECT * FROM table2"
                }
            ],
            "CustomDocuments": [
                "in manufacturing division total sales is price * revenue",
                "in research division total sales is price * revenue"
            ],
            "AdditionalTables": {
                "database.schema.table8": "create table database.schema.table8(col1 int)",
                "database.schema.table9": "create table database.schema.table9(col1 int)"
            },
            "AppendToPrompt": "Apply these guardrails: Queries should never return the secretId field of a user."
        }
    ]
}
```

# Tutorial: como usar o recurso SQL generativo do Amazon Q com os dados TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Para criar solicitações eficientes a fim de gerar SQL, você deve aprender mais sobre o esquema do banco de dados e os dados. Os dados TICKIT consistem em sete tabelas: duas de fatos e cinco de dimensões. Os dados de exemplo contêm registros sobre vendas a participantes de eventos do entretenimento ocorridos em 2008. Para obter informações sobre o esquema de dados TICKIT, consulte [Sample database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia de desenvolvedor de banco de dados do Amazon Redshift*. É possível carregar os dados do TICKIT em um banco de dados por vários métodos no console do Amazon Redshift e no editor de consultas v2. O editor de consultas v2 oferece um método para carregar dados TICKIT no banco de dados `sample_data_dev`. Para mais informações, consulte [Carregar dados em um banco de dados](query-editor-v2-loading.md). O editor de consultas v2 também oferece solicitações de exemplo para os dados do TICKIT. O cenário a seguir descreve uma conversa com SQL generativo para gerar SQL sobre os dados de exemplo do TICKIT. Nesse cenário, os dados de exemplo do TICKIT já foram criados em um banco de dados `dev` em um cluster do Amazon Redshift. 

**nota**  
Este exemplo serve para ilustrar uma conversa. As respostas do SQL generativo talvez não correspondam aos resultados usando as mesmas solicitações.

**Conversa de exemplo com o SQL generativo do Amazon Q**

1. No **Editor**, conecte-se a um cluster ou a um grupo de trabalho que contenha os dados de exemplo do TICKIT.

1. Crie um notebook vazio e escolha o ícone ![\[Generative SQL\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-amazon-q.png) de SQL generativo para abrir o painel de chat.

1. Insira a seguinte solicitação a fim de gerar SQL para verificar o número de registros na tabela `VENUE`:

   ```
   How many venues are there?
   ```

   ```
   SELECT
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   ```

   Escolha **Adicionar ao notebook** para adicionar duas células ao notebook aberto. Uma célula Markdown "Existem quantos espaços?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado:

   ```
   count
   ------
   202
   ```

1. Para solicitar outra versão do SQL, escolha **Regenerar SQL** e receba a seguinte resposta:

   ```
   SELECT
     venuestate,
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   GROUP BY
     venuestate
   ```

   Escolha **Adicionar ao notebook** para adicionar mais duas células ao notebook aberto. Uma célula Markdown "Existem quantos espaços?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado listando os estados do espaço por número:

   ```
   venuestate num_venues
   ----------------------
   MA         4	
   OH         8	
   MI         5	
   ...
   ```

1. O assistente de SQL generativo pode fazer suposições sobre o que você está perguntando. Embora não haja widgets no banco de dados, você ainda pode perguntar. Nesse caso, ele exibe uma mensagem de que não foi possível gerar SQL.

   ```
   How many widgets are there?
   ```

   ```
   I was not able to generate any SQL
   ```

1. À medida que aprende mais sobre o banco de dados, você pode fazer perguntas mais específicas para gerar SQL. Por exemplo, você sabe que o banco de dados contém dados de vendas referentes a diversos meses em 2008. Insira a seguinte solicitação a fim de gerar SQL para encontrar o número de vendas em novembro de 2008:

   ```
   How many sales were there in November 2008?
   ```

   ```
   SELECT
     COUNT(*) AS num_sales
   FROM
     tickit.sales s
     JOIN tickit.date d ON s.dateid = d.dateid
   WHERE
     d.month = 'November'
     AND d.year = 2008
   ```

   Escolha **Adicionar ao notebook** para adicionar duas células ao notebook aberto. Uma célula Markdown "Quantas vendas houve em novembro de 2008?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado:

   ```
   num_sales
   -----
   0
   ```

   Você percebe que não se trata do resultado que estava esperando.

1. Você percebe que o predicado `date.month='November'` espera que o mês na tabela DATE seja representado por uma abreviação do nome do mês. Você altera o predicado para `d.month='NOV'` e reexecuta o SQL.

   ```
   SELECT
     COUNT(*)
   FROM
     sales
     JOIN date ON sales.dateid = date.dateid
   WHERE
     date.month = 'NOV'
     AND date.year = 2008
   ```

   Na célula SQL, escolha **Executar** para obter novos resultados.

   ```
   count
   -----
   14261
   ```

1. Se você fizer uma pergunta que tente alterar o banco de dados conectado, uma mensagem de aviso será retornada com qualquer SQL recomendado. Insira a seguinte solicitação a fim de gerar SQL para inserir dados em uma tabela:

   ```
   Insert 1 into the venue table.
   ```

   ```
   INSERT
   ,
   UPDATE
     OR delete data
   FROM
     the database AS that could potentially change the data.Please provide a query that ONLY selects data
   ```

   ```
   I was not able to generate the correct SQL code. I generated SQL, but you'll have to edit it to work with your database.
   ```

   Se você escolher **Adicionar ao notebook** para adicionar duas células ao notebook aberto e executar o SQL, haverá falha no SQL.

   ```
   ERROR: syntax error at or near "," Position: 132 [ErrorId: 1-6546764a-011df2691778846219ce6ec2]
   ```

Esse cenário mostrou apenas algumas maneiras básicas de interagir com o SQL generativo do Amazon Q. É possível experimentar ainda mais usando essa tecnologia de IA generativa a fim de ajudar você a começar a criar SQL para consultar o banco de dados.

# Carregar dados em um banco de dados
<a name="query-editor-v2-loading"></a>

É possível usar o editor de consultas v2 para carregar dados em um banco de dados em um cluster ou um grupo de trabalho do Amazon Redshift. Esta seção aborda como carregar dados de exemplo, dados do S3 e dados de uma configuração de arquivo e fluxo de trabalho locais.

## Dados de exemplo
<a name="query-editor-v2-loading-sample-data"></a>

O editor de consultas v2 vem com dados e blocos de anotações de exemplo disponíveis para serem carregados em um banco de dados de exemplo e esquema correspondente. 

Para carregar dados de exemplo, escolha o ícone ![\[External\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/external.png) associado aos dados de exemplo que você deseja carregar. Em seguida, o Editor de Consultas V2 carrega os dados em um esquema no banco de dados `sample_data_dev` e cria uma pasta de cadernos salvos. 

Os conjuntos de dados de exemplo a seguir estão disponíveis.

**tickit**  
A maioria dos exemplos na documentação do Amazon Redshift usa um exemplo de dados chamado `tickit`. Esses dados consistem em sete tabelas: duas de fatos e cinco de dimensões. Quando você carrega esses dados, o esquema `tickit` é atualizado com dados de exemplo. Para obter informações sobre dados `tickit`, consulte [Banco de dados de exemplo](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

**tpch**  
Esses dados são usados para um parâmetro de comparação de apoio a decisões. Quando você carrega esses dados, o esquema `tpch` é atualizado com dados de exemplo. Para obter mais informações sobre os tipos de dados `tpch`, consulte [TPC-H](http://www.tpc.org/tpch/). 

**tpcds**  
Esses dados são usados para um parâmetro de comparação de apoio a decisões. Quando você carrega esses dados, o esquema `tpcds` é atualizado com dados de exemplo. Para obter mais informações sobre os tipos de dados `tpcds`, consulte [TPC-DC](http://www.tpc.org/tpcds/). 

# Carregar dados do Amazon S3
<a name="query-editor-v2-loading-data"></a>

É possível carregar dados do Amazon S3 em uma tabela nova ou existente.

**Para carregar dados para uma tabela existente**

O editor de consulta v2 utiliza o comando COPY para carregar dados do Amazon S3. O comando COPY gerado e usado no assistente de carregamento de dados do editor de consultas v2 é compatível com muitos parâmetros disponíveis para a sintaxe do comando COPY para copiar do Amazon S3. Para obter informações sobre o comando COPY e suas opções usadas para carregar dados do Amazon S3, consulte [COPY do Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Confirme se já foi criada a tabela no banco de dados onde você deseja carregar dados. 

1. Confirme se você está conectado ao banco de dados de destino no painel de visualização em árvore do editor de consultas v2 antes de continuar. É possível criar uma conexão usando o menu de contexto (clique com o botão direito do mouse) para o cluster ou o grupo de trabalho no qual os dados serão carregados.

   Selecione ![\[Load\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Carregar dados).

1. Em **Fonte de dados**, selecione **Carregar de um bucket do S3**.

1. Em **S3 URIs** (URIs do S3), escolha **Browse S3** (Navegar pelo S3) para procurar o bucket do Amazon S3 que contém os dados a serem carregados. 

1. Se o bucket do Amazon S3 especificado não estiver na mesma Região da AWS que a tabela de destino, selecione a **S3 file location** (Localização do arquivo do S3) para a Região da AWS onde os dados estão localizados.

1. Selecione **This file is a manifest file** (Este arquivo é um arquivo manifesto) se o arquivo do Amazon S3 for um manifesto contendo vários URIs de bucket do Amazon S3.

1. Selecione o **File format** (Formato do arquivo) para o arquivo a ser carregado. Os formatos de dados compatíveis são CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. Dependendo do formato de arquivo especificado, é possível escolher a respectivas **File options** (Opções de arquivos). Você também pode selecionar **Data is encrypted** (Os dados são criptografados), se os dados estiverem criptografados, e inserir o nome do recurso da Amazon (ARN) da chave KMS usada para criptografar os dados.

   Se você escolher CSV ou DELIMITADOR, também poderá escolher o **Caractere delimitador** e decidir se deseja **Ignorar linhas de cabeçalho** se o número especificado de linhas for nomes de colunas em vez de dados a serem carregados.

1. Escolha um método de compactação para compactar o arquivo. O padrão é sem compactação.

1. (Opcional) **Advanced settings** (Configurações avançadas) oferece suporte a vários **parâmetros da conversão de dados** e **operações de carregamento**. Insira essas informações conforme necessário para o arquivo.

   Para obter mais informações sobre conversão de dados e parâmetros de carregamento de dados, consulte [Parâmetros de conversão de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operações de carregamento de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Escolha **Próximo**.

1. Escolha **Carregar tabela existente**.

1. Confirme ou selecione o local da **tabela de destino** em que os dados serão carregados, incluindo o nome do **cluster ou grupo de trabalho**, do **banco de dados**, do **esquema** e da **Tabela**.

1. Escolha uma **função do IAM** que tenha as permissões necessários para carregar dados do Amazon S3.

1. (Opcional) Selecione os nomes das colunas para inseri-las em **Column mapping** (Mapeamento de colunas) para mapear colunas na ordem do arquivo de dados de entrada.

1. Selecione **Load data** (Carregar dados) para iniciar o carregamento de dados.

   Quando o carregamento for concluído, exibe-se o editor de consultas o comando COPY gerado que foi usado para carregar seus dados. Exibe-se **Result** (Resultado) do COPY. Se for concluído corretamente, agora você poderá usar o SQL para selecionar dados da tabela carregada. Quando houver um erro, consulte a visualização do sistema STL\$1LOAD\$1ERRORS para obter mais detalhes. Para obter informações sobre erros do comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Quando você carrega dados em uma nova tabela, o editor de consultas v2 cria a tabela no banco de dados, depois carrega os dados como ações separadas no mesmo fluxo de trabalho.

**Como carregar dados em uma nova tabela**

O editor de consulta v2 utiliza o comando COPY para carregar dados do Amazon S3. O comando COPY gerado e usado no assistente de carregamento de dados do editor de consultas v2 é compatível com muitos parâmetros disponíveis para a sintaxe do comando COPY para copiar do Amazon S3. Para obter informações sobre o comando COPY e suas opções usadas para carregar dados do Amazon S3, consulte [COPY do Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Confirme se você está conectado ao banco de dados de destino no painel de visualização em árvore do editor de consultas v2 antes de continuar. É possível criar uma conexão usando o menu de contexto (clique com o botão direito do mouse) para o cluster ou o grupo de trabalho no qual os dados serão carregados.

   Selecione ![\[Load\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Carregar dados).

1. Em **Fonte de dados**, selecione **Carregar de um bucket do S3**.

1. Em **S3 URIs** (URIs do S3), escolha **Browse S3** (Navegar pelo S3) para procurar o bucket do Amazon S3 que contém os dados a serem carregados. 

1. Se o bucket do Amazon S3 especificado não estiver na mesma Região da AWS que a tabela de destino, selecione a **S3 file location** (Localização do arquivo do S3) para a Região da AWS onde os dados estão localizados.

1. Selecione **This file is a manifest file** (Este arquivo é um arquivo manifesto) se o arquivo do Amazon S3 for um manifesto contendo vários URIs de bucket do Amazon S3.

1. Selecione o **File format** (Formato do arquivo) para o arquivo a ser carregado. Os formatos de dados compatíveis são CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. Dependendo do formato de arquivo especificado, é possível escolher a respectivas **File options** (Opções de arquivos). Você também pode selecionar **Data is encrypted** (Os dados são criptografados), se os dados estiverem criptografados, e inserir o nome do recurso da Amazon (ARN) da chave KMS usada para criptografar os dados.

   Se você escolher CSV ou DELIMITADOR, também poderá escolher o **Caractere delimitador** e decidir se deseja **Ignorar linhas de cabeçalho** se o número especificado de linhas for nomes de colunas em vez de dados a serem carregados.

1. Escolha um método de compactação para compactar o arquivo. O padrão é sem compactação.

1. (Opcional) **Advanced settings** (Configurações avançadas) oferece suporte a vários **parâmetros da conversão de dados** e **operações de carregamento**. Insira essas informações conforme necessário para o arquivo.

   Para obter mais informações sobre conversão de dados e parâmetros de carregamento de dados, consulte [Parâmetros de conversão de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operações de carregamento de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Escolha **Próximo**.

1. Escolha **Carregar nova tabela**.

   As colunas da tabela são inferidas dos dados de entrada. Você pode modificar a definição do esquema da tabela adicionando colunas e detalhes da tabela. Para reverter para o esquema de tabela inferida do editor de consultas v2, escolha **Restaurar os padrões**.

1. Confirme ou selecione o local da **tabela de destino** em que os dados são carregados, incluindo o **cluster ou grupo de trabalho**, o **banco de dados** e o **esquema**. Insira um nome para a **Tabela** que será criada.

1. Escolha uma **função do IAM** que tenha as permissões necessários para carregar dados do Amazon S3.

1. Escolha **Criar tabela** para criar a tabela usando a definição mostrada.

   Um resumo é exibido para revisão da definição da tabela. A tabela é criada no banco de dados. Para excluir a tabela posteriormente, execute um comando SQL DROP TABLE. Para obter mais informações, consulte [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Selecione **Load data** (Carregar dados) para iniciar o carregamento de dados.

   Quando o carregamento for concluído, exibe-se o editor de consultas o comando COPY gerado que foi usado para carregar seus dados. Exibe-se **Result** (Resultado) do COPY. Se for concluído corretamente, agora você poderá usar o SQL para selecionar dados da tabela carregada. Quando houver um erro, consulte a visualização do sistema STL\$1LOAD\$1ERRORS para obter mais detalhes. Para obter informações sobre erros do comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

# Carregar dados de uma configuração e fluxo de trabalho de arquivo local
<a name="query-editor-v2-loading-data-local"></a>

É possível carregar dados de um arquivo local em uma tabela nova ou existente.

## Configuração do administrador para carregar dados de um arquivo local
<a name="query-editor-v2-loading-data-local-setup"></a>

Seu administrador do editor de consultas v2 deve especificar o bucket comum do Amazon S3 na janela **Account settings** (Configurações da conta). Os usuários da conta devem ser configurados com as permissões adequadas.
+ Permissões necessárias do IAM: os usuários que carregam do arquivo local devem ter as permissões `s3:ListBucket`, `s3:GetBucketLocation`, `s3:putObject`, `s3:getObject` e `s3:deleteObject`. O *prefixo opcional* pode ser especificado para limitar o uso desse bucket relacionado ao editor de consultas v2 a objetos com esse prefixo. Você pode usar essa opção ao usar esse mesmo bucket do Amazon S3 para outros usos além do editor de consultas v2. Para obter mais informações sobre buckets e prefixos, consulte [Managing user access to specific folders](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-folders) (Gerenciar o acesso do usuário a pastas específicas) no *Guia do usuário do Amazon Simple Storage Service*. Para garantir que não seja permitido o acesso aos dados entre usuários, recomendamos que o administrador do editor de consultas v2 use uma política de bucket do Amazon S3 para restringir o acesso a objetos com base em `aws:userid`. O exemplo a seguir trata de permissões do Amazon S3 para um *<staging-bucket-name>* com acesso de leitura/gravação somente a objetos do Amazon S3 com `aws:userid` como um prefixo.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
          }
      ]
  }
  ```

------
+ Separação de dados: recomendamos que os usuários não tenham acesso aos dados uns dos outros (mesmo que brevemente). O carregamento de um arquivo local usa o bucket de preparação do Amazon S3 configurado pelo administrador do editor de consultas v2. Configure a política para o bucket de preparação a fim de fornecer separação de dados entre usuários. O exemplo a seguir mostra uma política de bucket que separa os dados entre os usuários do *<staging-bucket-name>*.

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
      "Statement": [
          {"Sid": "userIdPolicy",
              "Effect": "Deny",
              "Principal": "*",
              "Action": ["s3:PutObject",
                         "s3:GetObject",
                         "s3:DeleteObject"],
              "NotResource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
           }
      ]
  }
  ```

------

## Carregar dados de um arquivo local
<a name="query-editor-v2-loading-data-local-procedure"></a>

**Como carregar dados de um arquivo local em uma tabela existente**

O administrador do editor de consultas v2 deve especificar o bucket comum do Amazon S3 na janela **Configurações da conta**. O editor de consultas v2 carrega automaticamente o arquivo local em um bucket comum do Amazon S3 utilizado por sua conta, depois usa o comando COPY para carregar dados. O comando COPY gerado e executado pela janela Load local file (Carregar arquivo local) do editor de consultas v2 é compatível com muitos parâmetros disponíveis para a sintaxe do comando COPY para copiar do Amazon S3. Para obter informações sobre o comando COPY e suas opções usadas para carregar dados do Amazon S3, consulte [COPY from Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) (COPY do Amazon S3) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Confirme se já foi criada a tabela no banco de dados onde você deseja carregar dados. 

1. Confirme se você está conectado ao banco de dados de destino no painel de visualização em árvore do editor de consultas v2. É possível criar uma conexão usando o menu de contexto (clique com o botão direito do mouse) para o cluster ou o grupo de trabalho no qual os dados serão carregados. 

1. Selecione ![\[Load\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Carregar dados).

1. Em **Data source** (Fonte de dados), selecione **Load from local file** (Carregar do arquivo local).

1. Selecione **Procurar** para procurar o arquivo que contém os dados e **Carregar arquivo**. Por padrão, são exibidos arquivos com extensão `.csv`, `.avro`, `.parquet` e `.orc`, mas você pode escolher outros tipos de arquivo. O tamanho máximo do arquivo é de 100 MB.

1. Selecione o **File format** (Formato do arquivo) para o arquivo a ser carregado. Os formatos de dados compatíveis são CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. Dependendo do formato de arquivo especificado, é possível escolher a respectivas **File options** (Opções de arquivos). Você também pode selecionar **Data is encrypted** (Os dados são criptografados), se os dados estiverem criptografados, e inserir o nome do recurso da Amazon (ARN) da chave KMS usada para criptografar os dados.

   Se você escolher CSV ou DELIMITADOR, também poderá escolher o **Caractere delimitador** e decidir se deseja **Ignorar linhas de cabeçalho** se o número especificado de linhas for nomes de colunas em vez de dados a serem carregados.

1. (Opcional) **Advanced settings** (Configurações avançadas) oferece suporte a vários **parâmetros da conversão de dados** e **operações de carregamento**. Insira essas informações conforme necessário para o arquivo.

   Para obter mais informações sobre conversão de dados e parâmetros de carregamento de dados, consulte [Parâmetros de conversão de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operações de carregamento de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Escolha **Próximo**.

1. Escolha **Carregar tabela existente**.

1. Confirme ou selecione o local da **tabela de destino** em que os dados serão carregados, incluindo o nome do **cluster ou grupo de trabalho**, do **banco de dados**, do **esquema** e da **Tabela**.

1. (Opcional) É possível selecionar os nomes das colunas para inseri-las em **Column mapping** (Mapeamento de colunas) para mapear colunas na ordem do arquivo de dados de entrada.

1. Selecione **Load data** (Carregar dados) para iniciar o carregamento de dados.

   Quando o carregamento for concluído, uma mensagem será exibida informando se o carregamento foi bem-sucedido ou não. Se for concluído corretamente, agora você poderá usar o SQL para selecionar dados da tabela carregada. Quando houver um erro, consulte a visualização do sistema STL\$1LOAD\$1ERRORS para obter mais detalhes. Para obter informações sobre erros do comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

   O modelo de comando COPY usado para carregar dados aparece no seu **Query history** (Histórico de consultas). Esse modelo de comando COPY mostra alguns dos parâmetros usados, mas não pode ser executado diretamente em uma guia do editor. Para obter mais informações sobre histórico de consultas, consulte [Visualizar o histórico de consultas e guias](query-editor-v2-history.md).

Quando você carrega dados em uma nova tabela, o editor de consultas v2 cria a tabela no banco de dados, depois carrega os dados como ações separadas no mesmo fluxo de trabalho.

**Como carregar dados de um arquivo local em uma tabela nova**

Seu administrador do editor de consultas v2 deve especificar o bucket comum do Amazon S3 na janela **Account settings** (Configurações da conta). O arquivo local é automaticamente carregado para um bucket comum do Amazon S3 utilizado por sua conta e, depois, o comando COPY é utilizado pelo editor de consultas v2 para carregar dados. O comando COPY gerado e executado pela janela Load local file (Carregar arquivo local) do editor de consultas v2 é compatível com muitos parâmetros disponíveis para a sintaxe do comando COPY para copiar do Amazon S3. Para obter informações sobre o comando COPY e suas opções usadas para carregar dados do Amazon S3, consulte [COPY from Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) (COPY do Amazon S3) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

1. Confirme se você está conectado ao banco de dados de destino no painel de visualização em árvore do editor de consultas v2. É possível criar uma conexão usando o menu de contexto (clique com o botão direito do mouse) para o cluster ou o grupo de trabalho no qual os dados serão carregados. 

1. Selecione ![\[Load\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Carregar dados).

1. Em **Data source** (Fonte de dados), selecione **Load from local file** (Carregar do arquivo local).

1. Selecione **Procurar** para procurar o arquivo que contém os dados e **Carregar arquivo**. Por padrão, são exibidos arquivos com extensão `.csv`, `.avro`, `.parquet` e `.orc`, mas você pode escolher outros tipos de arquivo. O tamanho máximo do arquivo é de 100 MB.

1. Selecione o **File format** (Formato do arquivo) para o arquivo a ser carregado. Os formatos de dados compatíveis são CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET e ORC. Dependendo do formato de arquivo especificado, é possível escolher a respectivas **File options** (Opções de arquivos). Você também pode selecionar **Data is encrypted** (Os dados são criptografados), se os dados estiverem criptografados, e inserir o nome do recurso da Amazon (ARN) da chave KMS usada para criptografar os dados.

   Se você escolher CSV ou DELIMITADOR, também poderá escolher o **Caractere delimitador** e decidir se deseja **Ignorar linhas de cabeçalho** se o número especificado de linhas for nomes de colunas em vez de dados a serem carregados.

1. (Opcional) **Advanced settings** (Configurações avançadas) oferece suporte a vários **parâmetros da conversão de dados** e **operações de carregamento**. Insira essas informações conforme necessário para o arquivo.

   Para obter mais informações sobre conversão de dados e parâmetros de carregamento de dados, consulte [Parâmetros de conversão de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) e [Operações de carregamento de dados](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Escolha **Próximo**.

1. Escolha **Carregar nova tabela**.

1. Confirme ou selecione o local da **tabela de destino** em que os dados são carregados, incluindo o **cluster ou grupo de trabalho**, o **banco de dados** e o **esquema**. Insira um nome para a **Tabela** que será criada.

1. Escolha **Criar tabela** para criar a tabela usando a definição mostrada.

   Um resumo é exibido para revisão da definição da tabela. A tabela é criada no banco de dados. Para excluir a tabela posteriormente, execute um comando SQL DROP TABLE. Para obter mais informações, consulte [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

1. Selecione **Load data** (Carregar dados) para iniciar o carregamento de dados.

   Quando o carregamento for concluído, uma mensagem será exibida informando se o carregamento foi bem-sucedido ou não. Se for concluído corretamente, agora você poderá usar o SQL para selecionar dados da tabela carregada. Quando houver um erro, consulte a visualização do sistema STL\$1LOAD\$1ERRORS para obter mais detalhes. Para obter informações sobre erros do comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

   O modelo de comando COPY usado para carregar dados aparece no seu **Query history** (Histórico de consultas). Esse modelo de comando COPY mostra alguns dos parâmetros usados, mas não pode ser executado diretamente em uma guia do editor. Para obter mais informações sobre histórico de consultas, consulte [Visualizar o histórico de consultas e guias](query-editor-v2-history.md).

# Criar consultas com o Amazon Redshift
<a name="query-editor-v2-query-run"></a>

Você pode inserir uma consulta no editor ou selecionar uma consulta salva na lista **Queries** (Consultas) e escolha **Run** (Executar).

Por padrão, é definido **Limit 100** para limitar os resultados a 100 linhas. É possível desativar essa opção para retornar um conjunto de resultados maior. Se você desativar essa opção, poderá incluir a opção LIMIT na instrução SQL para evitar conjuntos de resultados muito grandes. Para obter mais informações, consulte [cláusula ORDER BY](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Para exibir um plano de consulta na área de resultados, ative **Explain** (Explicar). Ative **Explain graph** (Explicar grafo) para que os resultados também exibam uma representação gráfica do plano de explicação.

Para salvar uma consulta na pasta **Queries** (Consultas), escolha **Save** (Salvar).

Se a consulta for bem-sucedida, será exibida uma mensagem de sucesso. Se a consulta retornar informações, os resultados serão exibidos na seção **Results** (Resultados). Se o número de resultados exceder a área de exibição, os números serão visualizados na parte superior da área de resultados. É possível escolher os números para exibir sucessivas páginas de resultados.

Você pode filtrar e classificar **Result** (Resultado) para cada coluna. Para inserir critérios de filtro no cabeçalho da coluna de resultados, passe o mouse sobre a coluna para ver um menu (![\[Filter menu\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/menu.png)) onde é possível inserir critérios para filtrar a coluna.

Se a consulta contiver um erro, o editor de consultas v2 exibirá uma mensagem de erro na área de resultados. A mensagem fornece informações sobre como corrigir a consulta.

Você pode exportar ou copiar os resultados da consulta usando o menu de contexto (clique com o botão direito do mouse) na área de resultados da seguinte forma:
+ Escolha **Copiar para** e **JSON** ou **CSV** para baixar as linhas selecionadas em um arquivo.
+ Escolha **Copiar linhas** para copiar as linhas selecionadas para a área de transferência.
+ Escolha **Copiar linhas com cabeçalhos** para copiar as linhas selecionadas com os cabeçalhos de coluna para a área de transferência.

Na área de resultados, você pode escolher **Exportar** e selecione **JSON** ou **CSV** para baixar o conjunto completo de resultados de linha em um arquivo. O número de linhas no conjunto de resultados pode ser limitado pela opção **Limit** (Limitar) ou pela cláusula `limit` do SQL na consulta. O tamanho máximo do conjunto de resultados baixado é de 5 MB.

Você também pode usar o atalho Ctrl\$1C no Windows ou Cmd\$1C no macOS para copiar os dados da página de resultados atual para a área de transferência. Se nenhuma linha for selecionada, a célula com foco será copiada para a área de transferência. Se as linhas estiverem selecionadas, elas serão copiadas para a área de transferência.

Para adicionar uma nova guia de consulta, escolha o ícone ![\[New query tab\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) e **Editor**, que aparece na linha com as guias de consulta. A guia de consulta pode ou não estar usando uma `Isolated session`. Com uma sessão isolada, os resultados de um comando SQL que altera o banco de dados, como a criação de uma tabela temporária em uma guia do editor, não são visíveis em outra guia. Quando você abre uma guia no editor de consultas v2, o padrão é uma sessão isolada. 

**Para executar uma consulta**

1. Na área de consulta, siga um destes procedimentos:
   + Insira uma consulta.
   + Cole uma consulta que você copiou.
   + Selecione a pasta **Queries** (Consultas) abra o menu de contexto (clique com o botão direito do mouse) em uma consulta salva e escolha **Open query** (Abrir consulta).

1. Confirme se escolheu o valor correto de **Cluster** ou **Workgroup** (Grupo de trabalho) e de **Database** (Banco de dados) para o SQL que você pretende executar. 

   Inicialmente, é possível escolher seu **Cluster** ou **WorkGroup** (Grupo de trabalho) na exibição de árvore. Selecione **Database** (Banco de dados) na exibição de árvore também.

   Você pode alterar o **cluster** ou o **grupo de trabalho** e o **banco de dados** dentro de cada guia do editor com o controle suspenso localizado próximo ao cabeçalho **Sessão isolada** de cada guia do editor.

   Em cada guia do editor, você escolhe se deseja executar SQL em uma **sessão isolada**. A sessão isolada tem sua própria conexão com um banco de dados. Use-a para executar SQL isolado de outras sessões do editor de consultas. Para obter mais informações sobre conexões, consulte [Abrir o editor de consultas v2](query-editor-v2-open.md).

1. Escolha **Executar**.

   A área **Result** (Resultado) é aberta e exibe os resultados da consulta.

**Para exibir o plano de explicação de uma consulta**

1. Selecione a consulta.

1. Ative **Explain** (Explicar).

   Por padrão, **Explain graph** (Explicar gráfico) também está ativado.

1. Escolha **Executar**.

   A consulta é executada, e o plano de explicação é exibido na área **Result** (Resultado) da consulta.

O editor de consultas v2 oferece suporte aos seguintes recursos:
+ É possível criar consultas com várias instruções SQL em uma guia de consulta. As consultas são executadas em série, e várias guias de resultados são abertas para cada consulta. 
+ É possível criar consultas com variáveis de sessão e tabelas temporárias.
+ Você pode criar consultas com parâmetros substituíveis designados por `${parameter}`. Crie sua consulta SQL com vários parâmetros substituíveis e usar o mesmo parâmetro em vários lugares na instrução SQL. 

  Quando a consulta é executada, uma janela para inserção do valor do parâmetro é apresentada. Toda vez que você executa a consulta, a janela é exibida para a inserção dos valores dos parâmetros. 

  Para ver um exemplo, consulte [Exemplo: vendas maiores que um parâmetro específico](#query-editor-v2-example-sales-qtysold-greater-than-parameter). 
+ As consultas são versionadas automaticamente. É possível escolher uma versão anterior de uma consulta a ser executada.
+ Para continuar com seu fluxo de trabalho, não é necessário esperar que uma consulta seja concluída. Suas consultas continuam sendo executadas, mesmo se você fechar o editor de consultas.
+ Ao criar consultas, é possível usar o recurso de preenchimento automático de nomes de esquema, tabela e coluna.

O editor SQL é compatível com os seguintes recursos:
+ Os colchetes inicial e final usados no SQL têm cores correspondentes. Linhas verticais são mostradas no editor para ajudar a combinar os colchetes.
+ É possível recolher e expandir seções do SQL. 
+ É possível pesquisar e substituir texto no SQL.
+ É possível usar teclas de atalho para várias tarefas comuns de edição.
+ Os erros de SQL são realçados no editor para localização conveniente das áreas problemáticas.

Para ver uma demonstração dos recursos do editor, assista ao vídeo a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9JAq0yDs0YE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9JAq0yDs0YE)


## Exemplos de consulta
<a name="query-editor-v2-examples"></a>

A seguir, você encontra descrições dos vários tipos de consultas que é possível executar. 

Os dados usados em várias dessas consultas são do esquema de exemplo `tickit`. Para obter mais informações sobre como carregar os dados de amostra de `tickit`, consulte [Carregar dados em um banco de dados](query-editor-v2-loading.md). Para obter informações sobre dados de amostra de `tickit`, consulte [Banco de dados de exemplo](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Ao executar essas consultas de exemplo, confirme se escolheu o banco de dados correto no editor, como `sample_data_dev`.

**Topics**
+ [Exemplo: definir variáveis de sessão](#query-editor-v2-example-set-session-variable)
+ [Exemplo: principal evento por total de vendas](#query-editor-v2-example-top-event-sales)
+ [Exemplo: vendas maiores que um parâmetro específico](#query-editor-v2-example-sales-qtysold-greater-than-parameter)
+ [Exemplo: criar uma tabela temporária](#query-editor-v2-example-create-temporary-table)
+ [Exemplo: selecionar de uma tabela temporária](#query-editor-v2-example-select-from-temporary-table)

### Exemplo: definir variáveis de sessão
<a name="query-editor-v2-example-set-session-variable"></a>

O comando a seguir define o parâmetro de configuração do servidor `search_path` para *público* para a sessão. Para obter mais informações, consulte [SET](https://docs.aws.amazon.com/redshift/latest/dg/r_SET.html) e [search\$1path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

```
set search_path to public;
```

### Exemplo: principal evento por total de vendas
<a name="query-editor-v2-example-top-event-sales"></a>

A consulta a seguir localiza o evento com mais vendas. 

```
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname
order by 3;
```

Veja a seguir uma lista parcial dos resultados.

```
eventname           totalorders       totalsales
White Christmas         20              9352
Joshua Radin            38             23469
Beach Boys              58             30383
Linda Ronstadt          56             35043
Rascal Flatts           76             38214
Billy Idol              67             40101
Stephenie Meyer         72             41509
Indigo Girls            57             45399
...
```

### Exemplo: vendas maiores que um parâmetro específico
<a name="query-editor-v2-example-sales-qtysold-greater-than-parameter"></a>

A consulta a seguir localiza vendas em que a quantidade vendida é maior que o parâmetro especificado por `${numberoforders}`. Quando o valor do parâmetro é `7`, o resultado é de 60 linhas. Quando você executa a consulta, o editor de consultas v2 exibe uma janela **Run query form** (Executar um formulário de consulta) para reunir o valor dos parâmetros na instrução SQL. 

```
select salesid, qtysold
from sales 
where qtysold > ${numberoforders}
order by 2;
```

Veja a seguir uma lista parcial dos resultados.

```
salesid	qtysold
20005	8
21279	8
130232	8
42737	8
74681	8
67103	8
105533	8
91620	8
121552	8
...
```

### Exemplo: criar uma tabela temporária
<a name="query-editor-v2-example-create-temporary-table"></a>

A instrução a seguir cria a tabela temporária *eventsalestemp* selecionando informações das tabelas *sales* e *event*. 

```
create temporary table eventsalestemp as
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname;
```

### Exemplo: selecionar de uma tabela temporária
<a name="query-editor-v2-example-select-from-temporary-table"></a>

A declaração a seguir seleciona eventos, total de pedidos e total de vendas da tabela temporária *eventsalestemp*, ordenada pelo total de pedidos. 

```
select eventname,  totalorders,  totalsales
from eventsalestemp
order by 2;
```

Veja a seguir uma lista parcial de resultados.

```
eventname          totalorders   totalsales
White Christmas        20          9352
Joshua Radin           38         23469
Martina McBride        50         52932
Linda Ronstadt         56         35043
Indigo Girls           57         45399
Beach Boys             58         30383
...
```

# Cadernos no Amazon Redshift
<a name="query-editor-v2-notebooks"></a>

É possível usar blocos de anotações para organizar, anotar e compartilhar várias consultas SQL em um único documento. É possível adicionar várias células de consulta SQL e Markdown a um bloco de anotações. Os blocos de anotações fornecem um modo de agrupar consultas e explicações associadas a uma análise de dados em um único documento usando várias células de consulta e Markdown. É possível adicionar texto e formatar a aparência usando a sintaxe Markdown para fornecer contexto e informações adicionais para suas tarefas de análise de dados. Você pode compartilhar os blocos de anotações com os membros da equipe.

Para usar blocos de anotações, você deve adicionar permissão para blocos de anotações à entidade principal do IAM (um usuário do IAM ou um perfil do IAM). Como prática recomendada, anexe políticas de permissões a um perfil do IAM e, depois, atribua-as a usuários e grupos, conforme necessário. Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Você pode adicionar a permissão a uma das políticas gerenciadas do editor de consultas v2. Para ter mais informações, consulte [Acessar o editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-configure).

Você pode executar todas as células de um caderno sequencialmente. A célula de consulta SQL de um bloco de anotações tem a maioria dos mesmos recursos de uma guia do editor de consultas. Para ter mais informações, consulte [Criar consultas com o Amazon Redshift](query-editor-v2-query-run.md). A seguir estão as diferenças entre uma guia do editor de consultas e uma célula SQL de um bloco de anotações.
+ Não há um controle para executar `Explain` em uma instrução SQL em um bloco de anotações.
+ Você só pode criar um gráfico por célula SQL em um bloco de anotações.

Você pode exportar e importar blocos de anotações para arquivos criados com o editor de consultas v2. A extensão do arquivo é `.ipynb` e o tamanho do arquivo pode ser até 5 MB. As células SQL e Markdown são armazenadas no arquivo. Um cluster ou grupo de trabalho e um banco de dados não são armazenados no bloco de anotações exportado. Ao abrir um bloco de anotações importado, escolha o cluster ou grupo de trabalho e o banco de dados onde será executado. Depois de executar as células SQL, você pode escolher na guia de resultados se deseja exibir a página atual de resultados como um gráfico. O conjunto de resultados de uma consulta não é armazenado no bloco de anotações.

# Criar um caderno
<a name="query-editor-v2-notebooks-create"></a>

É possível usar um caderno para organizar, anotar e compartilhar várias consultas SQL em um único documento. 

**Para criar um caderno**

1. No menu do navegador, selecione o ícone do Editor (![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-align-left.png)).

1. Selecione ícone de adição (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png)) e escolha **Caderno**.

   Por padrão, uma célula de consulta SQL é exibida no bloco de anotações.

1. Na célula de consulta SQL, siga um destes procedimentos:
   + Insira uma consulta.
   + Cole uma consulta que você copiou.

1. (Opcional) Escolha o ícone de adição (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png)) e selecione **Markdown** para adicionar uma célula Markdown na qual você poderá fornecer texto descritivo ou explicativo usando a sintaxe Markdown padrão. 

1. (Opcionalmente) Escolha o ícone de adição (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png)) e selecione **SQL** para inserir uma célula SQL. 

É possível renomear cadernos usando o ícone de lápis (![\[Pencil icon representing an editing or writing function.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-edit.png)).

No ícone de menu (![\[Three dots arranged horizontally, representing an ellipsis or "more" menu icon.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-more.png)), também é possível realizar as seguintes operações em um caderno:
+ ![\[Share\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-share.png) **Share with my team** (Compartilhar com minha equipe): para compartilhar o bloco de anotações com sua equipe, conforme definido pelas tags. Para compartilhar um bloco de anotações com sua equipe, verifique se tem a etiqueta da entidade principal `sqlworkbench-team` definida com o mesmo valor que o restante dos membros de sua equipe em sua conta. Por exemplo, um administrador pode definir o valor como `accounting-team` para todos os membros do departamento de contabilidade. Para ver um exemplo, consulte [Permissões necessárias para usar o editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).
+ ![\[Export\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-export.png) **Export** (Exportar): para exportar o bloco de anotações para um arquivo local com a extensão `.ipynb`.
+ ![\[Import query\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-import.png) **Importar consulta**: para importar uma consulta de um arquivo local para uma célula no caderno. É possível importar arquivos com as extensões `.sql` e `.txt`.
+  ![\[Save\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-floppy-disk.png) **Save version** (Salvar versão): para criar uma versão do bloco de anotações. Para ver as versões de um bloco de anotações, navegue até seus blocos de anotações salvos e abra **Version history** (Histórico de versões).
+  ![\[Duplicate\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-duplicate.png) **Duplicate** (Duplicar): para criar uma cópia do bloco de anotações e abrir essa cópia em uma nova guia de bloco de anotações. 
+  ![\[Shortcuts\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-key-command.png) **Shortcuts** (Atalhos): para exibir os atalhos disponíveis ao criar um bloco de anotações. 

# Importar para cadernos
<a name="query-editor-v2-notebooks-import"></a>

É possível importar um caderno inteiro ou células SQL individuais em um caderno do Editor de Consultas v2.

Para importar um caderno inteiro de um arquivo local para **Meus cadernos**, escolha ![\[Import\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-import.png) **Importar** e **Importar caderno**. Navegue até o arquivo `.ipynb` que contém o caderno. O bloco de anotações é importado para a pasta de blocos de anotações aberta no momento. Você pode abrir o bloco de anotações pelo editor de blocos de anotações.

Para importar uma consulta de um arquivo local para uma célula SQL em um caderno, escolha ![\[Import\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-import.png) **Importar** e **Importar consulta**. Na janela **Importar consulta**, siga as instruções na tela para escolher arquivos e pastas que podem ser importados como uma consulta em um caderno novo ou existente. Os arquivos devem ter uma extensão de `.sql` ou `.txt`. Cada consulta pode ter até 10.000 caracteres. Ao adicionar a um caderno existente, você escolhe um deles na lista **Cadernos salvos**. As consultas importadas são adicionadas como células SQL no final do caderno. Ao selecionar um novo caderno, você atribui a ele um nome e ele é criado na pasta de cadernos salvos atualmente aberta. 

**nota**  
Ao criar arquivos `.sql` no macOS usando a aplicação TextEdit, é possível encontrar um problema em que uma extensão oculta adicional é adicionada ao arquivo. Por exemplo, um arquivo chamado `Test.sql` criado no TextEdit pode acabar sendo salvo como `Test.sql.rtf`. O Editor de Consultas v2 não é compatível com arquivos com a extensão `.rtf`. No entanto, se você criar um arquivo `.sql` usando o TextEdit e salvá-lo como um arquivo de texto sem formatação, ele terá uma extensão `.txt` oculta adicional. Por exemplo, um arquivo chamado `Text.sql` pode ser salvo como `Text.sql.txt`. Ao contrário da extensão `.rtf`, o Editor de Consultas v2 é compatível com arquivos com a extensão `.txt`, portanto, `Text.sql.txt` é compatível ao importar consultas para cadernos.

Para ver uma demonstração de blocos de notas, assista ao vídeo a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/GNahyu7j98M/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/GNahyu7j98M)


# Consulta ao AWS Glue Data Catalog
<a name="query-editor-v2-glue"></a>

É possível usar o Editor de Consultas v2 para consultar dados catalogados no AWS Glue Data Catalog usando comandos SQL específicos e concedendo as permissões descritas nesta seção. Por padrão, o AWS Glue Data Catalog está listado como um banco de dados do editor de consultas v2 chamado `awsdatacatalog`. A consulta ao AWS Glue Data Catalog não está disponível em todas as Regiões da AWS do Amazon Redshift. Use o comando SHOW para determinar se esse recurso está disponível. Para obter mais informações sobre o AWS Glue, consulte [O que é o AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) no *Guia do desenvolvedor do AWS Glue*.

**nota**  
A consulta ao AWS Glue Data Catalog só é permitida nos clusters do tipo de nó RA3 do Amazon Redshift e no Amazon Redshift sem servidor.

É possível configurar o data warehouse e visualizar os objetos do banco de dados do AWS Glue catalogados usando os seguintes comandos SQL:
+ SHOW: para mostrar se `awsdatacatalog` está montado para o data warehouse conectado no momento. Por exemplo, para mostrar o valor do parâmetro `data_catalog_auto_mount`, execute:

  ```
  SHOW data_catalog_auto_mount;
  ```

  Para obter mais informações, consulte [SHOW](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ ALTER SYSTEM: para alterar a configuração no nível de sistema de `data_catalog_auto_mount`. Por exemplo, para alterar o valor do parâmetro `data_catalog_auto_mount` para `on`, execute:

  ```
  ALTER SYSTEM SET data_catalog_auto_mount = on;
  ```

  A alteração entra em vigor quando um cluster provisionado é reinicializado ou um grupo de trabalho sem servidor é automaticamente pausado e retomado. Para obter mais informações, consulte [ALTER SYSTEM](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_SYSTEM.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ SHOW SCHEMAS: mostra uma lista de esquemas. Os esquemas no banco de dados chamado `awsdatacatalog` representam os bancos de dados do AWS Glue catalogados no AWS Glue Data Catalog. Por exemplo, para mostrar esses esquemas, execute:

  ```
  SHOW SCHEMAS FROM DATABASE awsdatacatalog;
  ```

  Para obter mais informações, consulte [SHOW SCHEMAS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_SCHEMAS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ SHOW TABLES: mostra uma lista de tabelas em um esquema. Por exemplo, para mostrar as tabelas no banco de dados do AWS Glue Data Catalog chamado `awsdatacatalog` que estão no esquema `myglue`, execute:

  ```
  SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;
  ```

  Para obter mais informações, consulte [SHOW TABLES](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_TABLES.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ SHOW COLUMNS: mostra uma lista de colunas em uma tabela. Por exemplo, para mostrar as colunas no banco de dados do AWS Glue Data Catalog chamado `awsdatacatalog` que estão no esquema `myglue` e na tabela `mytable`, execute:

  ```
  SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;
  ```

  Para obter mais informações, consulte [SHOW COLUMNS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_COLUMNS.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

**Como conceder ao usuário ou perfil do IAM permissão para consultar o AWS Glue Data Catalog:**

1. No painel de visualização em árvore, conecte-se ao banco de dados inicial no cluster provisionado ou grupo de trabalho sem servidor usando o método de autenticação **Nome de usuário e senha do banco de dados**. Por exemplo, conecte-se ao banco de dados `dev` usando o usuário administrador e a senha que você usou ao criar o cluster ou o grupo de trabalho.

1. Em um guia do editor, execute a seguinte instrução de SQL para conceder ao usuário do IAM acesso ao AWS Glue Data Catalog.

   ```
   GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"
   ```

   Em que *IAM:myIAMUser* é um usuário do IAM ao qual você deseja conceder privilégio de uso ao AWS Glue Data Catalog. Como alternativa, você pode conceder privilégio de uso a *IAMR:myIAMRole* para um perfil do IAM.

1. No painel de exibição em árvore, edite ou exclua a conexão com o cluster ou o grupo de trabalho que você criou anteriormente. Conecte-se ao cluster ou ao grupo de trabalho de uma das seguintes maneiras:
   + Para acessar o banco de dados `awsdatacatalog` por meio de um cluster, você deve usar o método de autenticação **Credenciais temporárias usando sua identidade do IAM**. Para obter mais informações sobre esse método de autenticação, consulte [Conectar-se a um banco de dados do Amazon Redshift](query-editor-v2-connecting.md). Talvez o administrador do editor de consultas v2 precise definir as **Configurações de conta** para que a conta exiba esse método de autenticação na janela de conexão.
   + Para acessar o banco de dados `awsdatacatalog` por meio de um grupo de trabalho, você deve usar o método de autenticação **Usuário federado**. Para obter mais informações sobre esse método de autenticação, consulte [Conectar-se a um banco de dados do Amazon Redshift](query-editor-v2-connecting.md).

1. Com o privilégio concedido, você pode usar sua identidade do IAM para executar o SQL em seu AWS Glue Data Catalog.

Depois de se conectar, você pode usar o editor de consultas v2 para consultar dados catalogados em AWS Glue Data Catalog. No painel de exibição em árvore do editor de consultas v2, selecione o cluster ou o grupo de trabalho e o banco de dados `awsdatacatalog`. No painel do editor ou do notebook, confirme se o cluster ou o grupo de trabalho correto foi escolhido. O banco de dados escolhido deve ser o banco de dados inicial do Amazon Redshift, como `dev`. Para obter informações sobre a criação de consultas, consulte [Criar consultas com o Amazon Redshift](query-editor-v2-query-run.md) e [Cadernos no Amazon RedshiftCadernos](query-editor-v2-notebooks.md). O banco de dados denominado `awsdatacatalog` é reservado para fazer referência ao banco de dados externo do catálogo de dados em sua conta. As consultas no banco de dados `awsdatacatalog` só podem ser somente leitura. Use a notação de três partes para fazer referência à tabela em sua instrução SELECT. Em que a primeira parte é o nome do banco de dados, a segunda parte é o nome do banco de dados AWS Glue e a terceira parte é o nome da tabela AWS Glue.

```
SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;
```

Você pode realizar vários cenários que leem os dados de AWS Glue Data Catalog e preenchem as tabelas do Amazon Redshift.

O exemplo de SQL a seguir une duas tabelas definidas em AWS Glue.

```
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

O exemplo de SQL a seguir cria uma tabela do Amazon Redshift e a preenche com dados de uma união de duas tabelas AWS Glue.

```
CREATE TABLE dev.public.glue AS
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

## Consultar Tabelas do Amazon S3 (visualização prévia)
<a name="query-editor-v2-glue-s3-tables"></a>

É possível usar o Editor de Consultas V2 para consultar dados mantidos nos catálogos de Tabelas do Amazon S3 montados no AWS Glue Data Catalog. Os catálogos de Tabelas do Amazon S3 são montados no AWS Glue Data Catalog no momento da criação e aparecem automaticamente como bancos de dados externos em todos os clusters provisionados e grupos de trabalho sem servidor na mesma Região da AWS e na mesma conta. Para obter mais informações sobre como acessar Tabelas do Amazon S3 usando o Amazon Redshift, consulte [Accessing Amazon S3 tables with Amazon Redshift](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html) no Guia do usuário do Amazon Simple Storage Service.

# Consultar um data lake
<a name="query-editor-v2-querying-data-lake"></a>

Você pode consultar dados em um data lake do Amazon S3 seguindo o conjunto de tarefas deste tutorial. Primeiro, você cria um esquema externo para referenciar o banco de dados externo no [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). Depois, você pode consultar dados em um data lake do Amazon S3.

## Demonstração: consultar um data lake
<a name="query-editor-v2-example-data-lake-demo"></a>

Para saber como consultar um data lake, assista ao vídeo a seguir.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-pyy0qNmEKo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-pyy0qNmEKo)


## Pré-requisitos
<a name="query-editor-v2-querying-data-lake-prerequisites"></a>

Antes de trabalhar com seu data lake no editor de consultas v2, confirme se os itens a seguir foram configurados em seu ambiente do Amazon Redshift:
+ Rastreie seus dados do Amazon S3 usando o AWS Glue e habilite o Catálogo de Dados para o AWS Lake Formation.
+ Crie um perfil do IAM para o Amazon Redshift usando o Catálogo de Dados do AWS Glue habilitado para o AWS Lake Formation. Para obter detalhes sobre esse procedimento, consulte [Como criar um perfil do IAM para o Amazon Redshift usando um AWS Glue Data Catalog habilitado para o AWS Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-stared-create-role-lake-formation). Para obter mais informações sobre como usar o Redshift Spectrum e o Lake Formation, consulte [Usar o Redshift Spectrum com o AWS Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/spectrum-lake-formation.html).
+ Conceda permissões SELECT na tabela a ser consultada no banco de dados do Lake Formation. Para obter detalhes sobre esse procedimento, consulte [Como conceder permissões SELECT na tabela a ser consultada no banco de dados do Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-started-grant-lake-formation-table).

  Você pode verificar no console do Lake Formation (https://console.aws.amazon.com/lakeformation/), na seção **Permissões**, página **Permissões do data lake**, se o perfil do IAM, o banco de dados do AWS Glue e as tabelas têm as permissões adequadas.
+ Confirme se seu usuário conectado tem permissão para criar esquemas no banco de dados do Amazon Redshift e acessar dados em seu data lake. Ao se conectar a um banco de dados no editor de consultas v2, você escolhe um método de autenticação que inclui credenciais, que podem ser um usuário do banco de dados ou um usuário do IAM. O usuário conectado deve ter as permissões e os privilégios de banco de dados adequados, como um `superuser`. O usuário `admin` do Amazon Redshift que criou o cluster ou grupo de trabalho tem privilégios de `superuser` e pode criar esquemas e gerenciar o banco de dados do Redshift. Para obter mais informações sobre como se conectar a um banco de dados com o editor de consultas v2, consulte [Conectar-se a um banco de dados do Amazon Redshift](query-editor-v2-connecting.md).

## Criar um esquema externo
<a name="query-editor-v2-create-external-schema"></a>

Para consultar dados em um data lake do Amazon S3, comece criando um esquema externo. Um esquema externo referencia o banco de dados no [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro).

1. Na visualização **Editor** do editor de consultas v2, escolha ![\[Create\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Criar** e **Esquema**.

1. Digite um **Schema name** (Nome do esquema).

1. Em **Tipo de esquema**, escolha **Externo**.

1. Nos detalhes do **Catálogo de Dados**, a opção **Região** assume por padrão a Região da AWS em que o banco de dados do Redshift está localizado.

1. Escolha o **Banco de dados do AWS Glue** para o qual o esquema externo será mapeado e que contém referências às tabelas do AWS Glue.

1. Escolha um **Perfil do IAM** para o Amazon Redshift que tenha as permissões necessárias para consultar dados no Amazon S3.

1. Opcionalmente, escolha um **Perfil do IAM** que tenha permissão para acessar o Catálogo de Dados.

1. Selecione **Create schema** (Criar esquema).

   O esquema aparece sob o banco de dados no painel de exibição em árvore.

Ao criar o esquema, se você receber um erro de permissão negada para o banco de dados, verifique se o usuário conectado tem o privilégio de banco de dados para criar um esquema.

## Consultar dados no data lake do Amazon S3
<a name="query-editor-v2-query-data-lake"></a>

Você usa o esquema criado no procedimento anterior. 

1. No painel de exibição em árvore, escolha o esquema.

1. Para visualizar uma definição de tabela, escolha uma tabela. As colunas da tabela e os tipos de dados são exibidos.

1. Para consultar uma tabela, escolha a tabela e, no menu de contexto (clique com o botão direito do mouse), selecione **Selecionar tabela** para gerar uma consulta.

1. Execute a consulta no **Editor**.

   O exemplo de SQL a seguir foi gerado pelo editor de consultas v2 para consultar todas as linhas na tabela do AWS Glue chamada `flightscsv`. As colunas e linhas mostradas na saída são truncadas para simplicidade.

   ```
   SELECT * FROM "dev"."mydatalake_schema"."flightscsv";
                           
   year    quarter   month   dom  day_of_week   fl_date    unique_carrier  airline_id   carrier   tail_num   fl_num		
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	 
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	
   2016    4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087		
   2016	4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087	
   ...
   ```

# Unidades de compartilhamento de dados
<a name="query-editor-v2-datashare-using"></a>

Você pode criar um banco de dados para que os usuários em outro cluster possam consultar os dados. O cluster que contém os dados que você deseja compartilhar é chamado de cluster *produtor*. Você cria uma unidade de compartilhamento de dados no cluster produtor para os objetos de banco de dados que deseja compartilhar. Você pode compartilhar esquemas, tabelas, exibições e funções do SQL definidas pelo usuário (UDFs). O cluster com o qual você deseja compartilhar os dados é chamado de cluster *consumidor*. No cluster consumidor, você cria um banco de dados a partir da unidade de compartilhamento de dados. Em seguida, os usuários no cluster consumidor podem consultar os dados. Para ter mais informações, consulte [Conceitos básicos do compartilhamento de dados](https://docs.aws.amazon.com/redshift/latest/dg/getting-started-datasharing.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

# Criar datashares
<a name="query-editor-v2-create-datashare"></a>

Você cria uma unidade de compartilhamento de dados no cluster que você deseja usar como cluster produtor. Para saber mais sobre considerações de unidades de compartilhamento de dados, consulte [Considerações sobre o compartilhamento de dados no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html) no *Guia do desenvolvedor de banco de dados da Amazon*. 

1. Escolha o banco de dados no cluster produtor que você deseja usar.

1. Crie a unidade de compartilhamento de dados. Por exemplo:

   ```
   create datashare mysource;
   ```

1. Defina permissões na unidade de compartilhamento de dados. Por exemplo:

   ```
   grant alter, share on datashare mysource to admin;
   ```

1. Defina permissões nos objetos do banco de dados que você deseja compartilhar. Por exemplo:

   ```
   alter datashare mysource add schema public;
   ```

   ```
   alter datashare mysource add table public.event;
   ```

1. Defina permissões no namespace do cluster consumidor para acessar a unidade de compartilhamento de dados. Por exemplo:

   ```
   grant usage on datashare mysource to namespace '2b12345-1234-5678-9012-bb1234567890';
   ```

# Exibição de unidades de compartilhamento de dados
<a name="query-editor-v2-show-datashare"></a>

Você pode exibir as unidades de compartilhamento de dados criados no cluster produtor. 

1. Escolha o cluster produtor.

1. Exiba as unidades de compartilhamento de dados. Por exemplo:

   ```
   show datashares;
   ```

   ```
   share_name	share_owner	source_database		consumer_database	share_type	createdate	is_publicaccessible	share_acl	producer_account	producer_namespace
   test_datashare	100		db_producer		NULL			OUTBOUND	2/15/2022		FALSE		admin		123456789012		p1234567-8765-4321-p10987654321
   ```

# Criação do banco de dados do consumidor
<a name="query-editor-v2-datashare-consumer"></a>

No cluster consumidor, você cria um banco de dados a partir da unidade de compartilhamento de dados. Essas etapas descrevem como compartilhar dados entre dois clusters na mesma conta. Para obter informações sobre o compartilhamento de dados entre contas da AWS, consulte [Compartilhamento de dados entre contas da AWS](https://docs.aws.amazon.com/redshift/latest/dg/across-account.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Você pode usar comandos de SQL ou o painel de exibição em árvore do editor de consultas v2 para criar o banco de dados.

**Para usar o SQL**

1. Crie um banco de dados a partir da unidade de compartilhamento de dados da sua conta e do namespace do cluster produtor. Por exemplo:

   ```
   create database share_db from datashare mysource of account '123456789012' namespace 'p1234567-8765-4321-p10987654321'; 
   ```

1. Defina permissões para que os usuários possam acessar o banco de dados e o esquema. Por exemplo:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

**Para usar o painel de exibição em árvore do editor de consultas v2**

1. Selecione ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-add.png)**Create** (Criar) e escolha **Database** (Banco de dados).

1. Insira um **Database name** (Nome do banco de dados).

1. (Opcional) Selecione **Users and groups** (Usuários e grupos) e escolha um **Database user** (Usuário do banco de dados).

1. Escolha **Create using a datashare** (Criar usando uma unidade de compartilhamento de dados).

1. Escolha a unidade de compartilhamento de dados.

1. Selecione **Criar banco de dados**.

   O novo banco de dados do ![\[datashare\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-datashare.png)**datashare** (unidade de compartilhamento de dados) será exibido no painel de exibição em árvore do editor de consultas v2.

1. Defina permissões para que os usuários possam acessar o banco de dados e o esquema. Por exemplo:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

# Consulta de objetos da unidade de compartilhamento de dados
<a name="query-editor-v2-query-datashare"></a>

No cluster do consumidor, é possível consultar objetos da unidade de compartilhamento de dados usando nomes de objeto totalmente qualificados expressos com a notação de três partes: banco de dados, esquema e nome do objeto. 

1. No painel de exibição em árvore do editor de consultas v2, escolha o esquema.

1. Para visualizar uma definição de tabela, escolha uma tabela.

   As colunas da tabela e os tipos de dados são exibidos.

1. Para consultar uma tabela, escolha a tabela e use o menu de contexto (clique com o botão direito do mouse) para escolher **Select table** (Selecionar tabela).

1. Consulte tabelas usando comandos SELECT. Por exemplo:

   ```
   select top 10 * from test_db.public.event;
   ```

# Consultas programadas com o Editor de Consultas v2
<a name="query-editor-v2-schedule-query"></a>

Com o Editor de Consultas V2 do Amazon Redshift, é possível automatizar consultas SQL para que sejam executadas de acordo com uma programação. Consultas programadas são instruções SQL que são executadas automaticamente em horários ou intervalos específicos, o que permite que você gerencie com eficiência operações de dados e tarefas de analytics recorrentes. A programação de consultas é recomendável se você estiver pretendendo agilizar o processamento em lote, gerar relatórios regulares ou manter pipelines de dados em seu ambiente do Amazon Redshift. 

As consultas programadas facilitam a automatização de fluxos de trabalho de extração, transformação e carregamento (ETL), atualizam painéis com insights atualizados e operacionalizam várias rotinas de gerenciamento de dados. As páginas a seguir detalham o processo de criação, configuração e gerenciamento de consultas programadas para otimizar workloads do Amazon Redshift.

# Criar uma programação de consultas com o Editor de Consultas v2
<a name="query-editor-v2-schedule-query-create"></a>

É possível criar uma programação para executar uma instrução SQL com o Editor de Consultas v2 do Amazon Redshift. Crie uma programação para executar sua instrução SQL nos intervalos de tempo que correspondam às suas necessidades de negócios. Na hora da execução da consulta programada, a consulta é iniciada pelo Amazon EventBridge e usa a API de dados do Amazon Redshift.

**Como criar uma programação a fim de executar uma instrução SQL**

1. Na visualização ![\[Editor\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-align-left.png) do **Editor**, selecione **Programar** ![\[Schedule\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-calendar.png) para criar uma programação para executar uma instrução SQL.

1. Quando você define a programação, fornece as informações a seguir.
   + Um perfil do IAM que assume as permissões necessárias para executar a consulta. Esse perfil do IAM também está associado ao cluster ou grupo de trabalho.
   + Os valores de autenticação para AWS Secrets Manager ou credenciais temporárias para autorizar o acesso ao cluster ou grupo de trabalho. Esses métodos de autenticação são compatíveis com a API de dados. Para obter mais informações, consulte [Autenticar uma consulta programada](query-editor-v2-schedule-query-authentication.md).
   + O cluster ou grupo de trabalho em que o banco de dados reside.
   + O nome do banco de dados que contém os dados a serem consultados.
   + O nome da consulta programada e sua descrição. O editor de consultas v2 usa “QS2-” como prefixo do nome da consulta programada que você fornece. O editor de consultas v1 prefixa os nomes das consultas programadas com “QS-”.
   + A instrução SQL a ser executada de acordo com a programação.
   + A frequência de programação e opções de repetição ou um valor formatado cron que define a programação. Para obter mais informações, consulte [Expressões Cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions), no *Guia do usuário do Amazon CloudWatch Events*.
   + Opcionalmente, você pode ativar as notificações comuns do Amazon SNS para monitorar a consulta programada. Talvez seja necessário confirmar o endereço de e-mail fornecido para a notificação do Amazon SNS. Verifique se recebeu um e-mail com um link para confirmar o endereço de e-mail da notificação do Amazon SNS. Para obter mais informações, consulte [Notificações de e-mail](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*. Se a consulta estiver sendo executada, mas você não vir mensagens publicadas no tópico do SNS, consulte [Minha regra é executada, mas eu não vejo nenhuma mensagem publicada no meu tópico do Amazon SNS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-troubleshooting.html#eb-no-messages-published-sns) no *Guia do usuário do Amazon EventBridge*.

1. Escolha **Programar consulta** para salvar e ativar a programação e adicionar a programação à lista de consultas na visualização **Consultas programadas**.

As visualização de ![\[Scheduled queries\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-calendar.png) de **Consultas programadas** lista todas as consultas programadas para os clusters e grupos de trabalho. Com essa visualização, é possível exibir detalhes da consulta de programação, ativar ou desativar a programação, editar a programação e excluir a consulta programada. Ao visualizar os detalhes da consulta, você também pode ver o histórico de execução da consulta com a programação.

**nota**  
A execução de uma consulta programada só está disponível na lista **Histórico de programação** por 24 horas. As consultas executadas de acordo com uma programação não aparecem na visualização **Histórico de consultas** do editor de consultas v2.

## Demonstração do agendamento de uma consulta
<a name="query-editor-v2-schedule-query-demo"></a>

Para ver uma demonstração de como agendar uma consulta, assista ao vídeo a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gTw0XUpO8sw/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gTw0XUpO8sw)


# Configurar permissões para programar uma consulta
<a name="query-editor-v2-schedule-query-permissions"></a>

Para programar consultas, o usuário do AWS Identity and Access Management (IAM) que define a programação e o perfil do IAM associado à programação devem ser configurados com as permissões do IAM para usar o Amazon EventBridge e a API de dados do Amazon Redshift. Para receber e-mails de consultas programadas, a notificação do Amazon SNS que você especificar opcionalmente também deverá ser configurada.

A seguir, descrevemos as tarefas para usar políticas gerenciadas da AWS para fornecer permissão, mas, dependendo do ambiente, talvez você queira reduzir as permissões concedidas.

Para o usuário do IAM conectado ao editor de consultas v2, edite o usuário do IAM que usa o console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).
+ Além das permissões para executar as operações do Amazon Redshift e do editor de consultas v2, anexe as políticas gerenciadas `AmazonEventBridgeFullAccess` e `AmazonRedshiftDataFullAccess` da AWS a um usuário do IAM. 
+ Uma alternativa é atribuir as permissões a um perfil e designá-lo ao usuário.

  Anexe uma política com a permissão `sts:AssumeRole` ao ARN do recurso do perfil do IAM que você especificou ao definir a consulta agendada. Para obter mais informações sobre como assumir perfis, consulte [Concessão de permissões a um usuário para alternar funções](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) no *Guia do usuário do IAM*.

  O exemplo a seguir mostra uma política de permissão que assume o perfil do IAM `myRedshiftRole` na conta `123456789012`. O perfil do IAM `myRedshiftRole` também é o perfil anexado ao cluster ou grupo de trabalho em que a consulta programada é executada. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AssumeIAMRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": [
                  "arn:aws:iam::123456789012:role/myRedshiftRole"
              ]
          }
      ]
  }
  ```

------

  Atualize a política de confiança do perfil do IAM usado para programar a consulta a fim de permitir que o usuário do IAM a assuma.

  ```
  {
              "Sid": "AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

Para o perfil do IAM que você especifica para permitir a execução da consulta programada, edite o perfil do IAM usando o console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).
+ Anexe as políticas gerenciadas `AmazonRedshiftDataFullAccess` e `AmazonEventBridgeFullAccess` da AWS ao perfil do IAM. A política gerenciada `AmazonRedshiftDataFullAccess` só concede a permissão `redshift-serverless:GetCredentials` para grupos de trabalho do Redshift sem servidor marcados com a chave `RedshiftDataFullAccess`.

# Autenticar uma consulta programada
<a name="query-editor-v2-schedule-query-authentication"></a>

Ao programar uma consulta, você usa um dos métodos de autenticação a seguir quando o SQL é executado. Cada método requer uma combinação diferente de entrada no editor de consultas v2. Esses métodos de autenticação são compatíveis com a API de dados, que é usada para executar as instruções SQL.

O usuário ou perfil do banco de dados usado para executar a consulta deve ter os privilégios de banco de dados necessários. Por exemplo, para conceder privilégios `IAMR:MyRedshiftQEv2Scheduler` à tabela `mytable`, execute o comando SQL a seguir.

```
GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";
```

Para ver a lista de usuários do banco de dados no cluster ou grupo de trabalho, consulte a visualização do sistema `PG_USER_INFO`.

**nota**  
 Todos os grupos de trabalho do Redshift sem servidor para o qual você programa consultas devem ser marcados com a chave `RedshiftDataFullAccess`. Para obter mais informações, consulte [Autorizar acesso à API de dados do Amazon Redshift](data-api-access.md).  
Como alternativa à marcação do grupo de trabalho, você pode adicionar uma política em linha ao perfil do IAM (especificado com a programação) que permite `redshift-serverless:GetCredentials`. Por exemplo:  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": [
                "arn:aws:redshift-serverless:*:*:workgroup/*"
            ]
        }
    ]
}
```

**AWS Secrets Manager**  
Com este método, forneça um valor secreto para **secret-arn** que é armazenado no AWS Secrets Manager. Este segredo contém credenciais para se conectar ao seu banco de dados. Talvez você tenha criado um segredo com as credenciais adequadas quando criou o cluster ou o grupo de trabalho. O segredo deve ser marcado com a chave `RedshiftDataFullAccess`. Se a chave da tag ainda não estiver presente, use o console AWS Secrets Manager para adicioná-la. Para obter informações sobre como criar um segredo, consulte [Criar um segredo para credenciais de conexão de banco de dados](redshift-secrets-manager-integration-create.md).  
Para obter mais informações sobre as permissões mínimas, consulte [Criação e gerenciamento de segredos com o AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) no *Manual do usuário do AWS Secrets Manager*. 

**Credenciais temporárias**  
Com esse método, forneça o **Nome do banco de dados** e os valores do **Usuário do banco de dados** ao se conectar a um banco de dados em um cluster. Você só precisa fornecer o **Nome do banco de dados** ao se conectar a um banco de dados em um grupo de trabalho.  
Ao se conectar a um cluster, a política `AmazonRedshiftDataFullAccess` concede ao usuário do banco de dados chamado `redshift_data_api_user` permissão para `redshift:GetClusterCredentials`. Se você quiser usar um usuário de banco de dados diferente para executar a instrução SQL, adicione uma política ao perfil do IAM anexado ao cluster para permitir `redshift:GetClusterCredentials`. O exemplo a seguir permite usuários do banco de dados `awsuser` e `myuser`.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllDbUsers",
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/awsuser",
                "arn:aws:redshift:*:*:dbuser:*/myuser"
            ]
        }
    ]
}
```

# Configurar permissões para consultar o histórico de consultas programadas
<a name="query-editor-v2-schedule-query-view-history"></a>

Para permitir que os usuários visualizem o histórico de consultas programadas, edite o perfil do IAM **Relações de confiança** (especificado com a programação) para adicionar permissões.

Veja a seguir um exemplo de política de confiança em um perfil do IAM que permite ao usuário do IAM *myIAMusername* ver o histórico de consultas programadas. Em vez de conceder a um usuário do IAM a permissão `sts:AssumeRole`, é possível optar por atribuir essa permissão a um perfil do IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "redshift.amazonaws.com",
                    "redshift-serverless.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Sid": "AssumeRole",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Monitoramento da consulta programada
<a name="query-editor-v2-schedule-query-sns"></a>

Para o tópico do Amazon SNS que você especifica para enviar notificações por e-mail, crie o tópico do Amazon SNS usando o editor de consultas v2. Para isso, você deve acessar a seção **Notificações do SNS**, **Ativar** o monitoramento e criar o tópico com **Criar tópico do SNS**. O editor de consultas v2 cria o tópico do Amazon SNS e adiciona uma entidade principal de serviço à política de acesso do Amazon EventBridge. Veja a seguir uma **Política de acesso** de exemplo que é criada no tópico do Amazon SNS. No exemplo, são usados a Região da AWS *us-west-2*, a Conta da AWS *123456789012* e o tópico do Amazon SNS *select-version-pdx-testunload*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "Allow_Publish_Events",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-west-2:123456789012:select-version-pdx-testunload"
    }
  ]
}
```

------

Quando a consulta programada é executada, o Amazon SNS envia e-mails de notificação da AWS. O exemplo a seguir mostra um e-mail enviado para *myemail@example.com* referente à consulta programada *QS2-may25a* executada na Região da AWS *eu-north-1* na Conta da AWS *123.456.789.012* usando o tópico de notificação do Amazon SNS *may25a-SNS*.

```
{"version":"0","id":"8e4323ec-5258-7138-181b-91290e30ff9b","detail-type":"Scheduled Event","source":"aws.events","account":"123456789012","time":"2023-05-25T15:22:00Z",
                    "region":"eu-north-1","resources":["arn:aws:events:eu-north-1:123456789012:rule/QS2-may25a"],"detail":{}}

--
If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe:
https://sns.eu-north-1.amazonaws.com/unsubscribe.html?SubscriptionArn=arn:aws:sns:eu-north-1:123456789012:may25a-SNS:0c1a3d05-39c2-4507-bc3d-47250513d7b0&Endpoint=myemail@example.com

Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at https://aws.amazon.com/support
```

# Solução de problemas da configuração de programação de uma consulta
<a name="query-editor-v2-schedule-query-troubleshooting"></a>

Considere o seguinte se você tiver problemas ao programar uma consulta:

**As consultas não são executadas**  
Verifique se o perfil do IAM usado na programação tem permissão para obter as credenciais temporárias do cluster. A permissão para clusters provisionados é `redshift:GetClusterCredentialsWithIAM`. A permissão para grupos de trabalho do Redshift sem servidor é `redshift-serverless:GetCredentials`.

**O histórico de programação não é exibido**  
O usuário do IAM ou o perfil do IAM usado para fazer login no console da AWS não foi adicionado à política de confiança do perfil do IAM usado para programar a consulta.  
Ao usar o AWS Secrets Manager para a consulta agendada para se conectar, confirme se o segredo está marcado com a chave `RedshiftDataFullAccess`.  
Se a consulta agendada estiver usando uma conexão do AWS Secrets Manager, o perfil do IAM usado para agendar a consulta deverá ter o valor equivalente à política gerenciada `SecretsManagerReadWrite` anexada ao perfil.

**O status do histórico de consultas é `Failed`**  
Exiba a visualização do sistema SYS\$1QUERY\$1HISTORY para obter detalhes sobre por que a consulta falhou. Um problema comum é que o usuário ou o perfil do banco de dados que foi usado para executar a consulta pode não ter o privilégio necessário para executar o SQL. Para obter mais informações, consulte [Autenticar uma consulta programada](query-editor-v2-schedule-query-authentication.md).  
O SQL a seguir consulta a visualização SYS\$1QUERY\$1HISTORY para retornar consultas com falha.  

```
SELECT user_id, query_id, transaction_id, session_id, database_name, query_type, status, error_message, query_text 
FROM sys_query_history
WHERE status = 'failed';
```
Para descobrir detalhes de uma consulta programada com falha específica, consulte [Visualizar os resultados de uma consulta programada com o AWS CloudShell](query-editor-v2-schedule-query-troubleshooting-cloudshell.md).

# Visualizar os resultados de uma consulta programada com o AWS CloudShell
<a name="query-editor-v2-schedule-query-troubleshooting-cloudshell"></a>

É possível usar o AWS CloudShell para descobrir detalhes sobre uma consulta programada. Você deve ter as permissões adequadas para executar os comandos da AWS CLI mostrados no procedimento a seguir.

**Para visualizar os resultados de uma consulta programada**

1. No console do AWS, abra o prompt de comando do AWS CloudShell. Para obter mais informações sobre o AWS CloudShell, consulte [O que é o AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) no *Guia do usuário do AWS CloudShell*.

1. Assuma o perfil do IAM da consulta programada. Para assumir o perfil, encontre o perfil do IAM associado à consulta programada no editor de consultas v2 e use-o no comando da AWS CLI no AWS CloudShell. Por exemplo, para o perfil `scheduler`, insira um comando AWS STS para assumir o perfil usado pela consulta programada.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/scheduler" --role-session-name "scheduler-test" 
   ```

   As credenciais retornadas são semelhantes às seguintes:

   ```
   "Credentials": {
   "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
   "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
   "SessionToken": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...",        
   "Expiration": "2023-08-18T18:19:44+00:00"
   },
   "AssumedRoleUser": {
   "AssumedRoleId": "AROA35B2NH6WBTP7ONL4E:scheduler-test",
   "Arn": "arn:aws:sts::123456789012:assumed-role/scheduler/scheduler-test"
   }
   }
   ```

1. Crie variáveis de ambiente na AWS CLI usando as credenciais exibidas ao assumir o perfil do IAM. É necessário usar esses tokens antes do respectivo prazo de validade. Por exemplo, insira o seguinte no AWS CloudShell.

   ```
   export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...
   ```

1. Para ver o erro de uma consulta com falha, execute o comando da AWS CLI para descrever uma instrução. O ID da instrução SQL é do **ID** mostrado na seção **Histórico de programação** de uma consulta programada no editor de consultas v2.

   ```
   aws redshift-data describe-statement --id 130d2620-05d2-439c-b7cf-815d9767f513
   ```

   Neste exemplo, o SQL programado `select * from users limit 100` resulta em um erro de SQL segundo o qual a tabela `users` não existe.

   ```
   {
   "CreatedAt": "2023-08-18T17:39:15.563000+00:00",
   "Duration": -1,
   "Error": "ERROR: relation \"users\" does not exist",
   "HasResultSet": false,
   "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
   "QueryString": "select * from users limit 100\n—RequestID=a1b2c3d4-5678-90ab-cdef-EXAMPLE22222; TraceID=1-633c5642-4039308d03f3a0ba53dbdf6f",
   "RedshiftPid": 1073766651,
   "RedshiftQueryId": 0,
   "ResultRows": -1,
   "ResultSize": -1,
   "Status": "FAILED",
   "UpdatedAt": "2023-08-18T17:39:16.116000+00:00",
   "WorkgroupName": "default"
   }
   ```

# Visualizar resultados da consulta
<a name="query-editor-v2-charts"></a>

Depois de executar uma consulta e os resultados serem exibidos, você pode ativar **Chart** (Gráfico) para exibir uma visualização gráfica dos resultados da página atual. Você pode usar os seguintes controles para definir o conteúdo, a estrutura e a aparência do gráfico:

![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) Traçado  
Representa um conjunto de marcas gráficas relacionadas em um gráfico. Você pode definir vários traçados em um gráfico.

Tipo  
Você pode definir o tipo de traçado para representar dados como um dos seguintes:  
+ Gráfico de dispersão para um diagrama de dispersão ou gráfico de bolhas.
+ Gráfico de barras para representar categorias de dados com barras verticais ou horizontais.
+ Gráfico de áreas para definir áreas preenchidas.
+ Histograma que usa barras para representar distribuição de frequência.
+ Gráfico de pizza para uma representação circular de dados, em que cada fatia representa uma porcentagem do todo.
+ Gráfico de funil ou de área de funil para representar dados ao longo dos vários estágios de um processo.
+ Gráfico OHLC (open-high-low-close) frequentemente usado para dados financeiros para representar valores abertos, altos, baixos e fechados ao longo do eixo x, que geralmente representa intervalos de tempo.
+ Gráfico de candelabro para representar um intervalo de valores para uma categoria ao longo de uma linha do tempo.
+ Gráfico em cascata para representar como um valor inicial aumenta ou diminui ao longo de uma série de valores intermediários. Os valores podem representar intervalos de tempo ou categorias.
+ Gráfico de linhas para representar alterações de valor ao longo do tempo.

Eixo X  
Você especifica uma coluna de tabela que contém os valores a serem plotados ao longo do eixo X. As colunas que contêm valores descritivos geralmente representam dados dimensionais. As colunas que contêm valores quantitativos geralmente representam dados factuais.

Eixo Y  
Você especifica uma coluna de tabela que contém os valores a serem plotados ao longo do eixo Y. As colunas que contêm valores descritivos geralmente representam dados dimensionais. As colunas que contêm valores quantitativos geralmente representam dados factuais.

Subgráficos  
Você pode definir apresentações adicionais dos dados do gráfico.

Transformações  
Você pode definir transformações para filtrar os dados dos traçados. Você usa uma transformação dividida para exibir vários traçados saindo de um único traçado-fonte. Você usa uma transformação agregada para apresentar um traçado como uma média ou mínima. Você usa uma transformação de classificação para classificar um traçado.

Aparência geral  
Você pode definir padrões para cor de fundo, cor de margem, escalas de cores para paletas de design, estilo e tamanhos de texto, estilo e tamanho de título e barra de modos. Você pode definir interações para arrastar, clicar e passar o mouse. Você pode definir metatextos. Você pode definir as aparências padrão para traçados, eixos, legendas e anotações.

**Criar um gráfico**

1. Execute uma consulta e obtenha resultados.

1. Ativar o **Charts** (Gráficos).

1. Selecione **Trace** (Rastreamento) comece a visualizar seus dados.

1. Escolha um destes estilos de gráfico:
   + De dispersão
   + Barra
   + Área
   + Histograma
   + Pizza
   + Funil
   + Área do funil
   + OHLC (abertura-alta-baixa-fechamento)
   + Vela
   + Cascata
   + Linha

1. Selecione **Style** (Estilo) para personalizar a aparência, inclusive cores, eixos, legenda e anotações. É possível adicionar texto, formas e imagens.

1. Selecione **Annotations** (Anotações) para adicionar texto, formas e imagens.

1. Para atualizar a exibição em gráfico, escolha **Refresh** (Atualizar). Selecione **Full screen** (Tela cheia) para expandir a exibição do gráfico.

## Exemplo: criar um gráfico de pizza para visualizar os resultados da consulta
<a name="query-editor-v2-example-pie-chart"></a>

O exemplo a seguir usa a tabela *Sales* do banco de dados de exemplo. Para obter informações, consulte [Banco de dados de exemplo](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Veja a seguir a consulta que você executa para fornecer os dados para o gráfico de pizza.

```
select top 5 eventname, count(salesid) totalorders, sum(pricepaid) totalsales 
from sales, event
where sales.eventid=event.eventid group by eventname
order by 3;
```

**Para criar um gráfico de pizza para o evento principal por total de vendas**

1. Executar a consulta.

1. Na área de resultados da consulta, ative **Chart** (Gráfico).

1. Escolha **Traces** (Rastreamentos).

1. Em **Type** (Tipo), escolha **Pie** (Pizza).

1. Em **Values** (Valores), escolha *totalsales*.

1. Em **Labels** (Etiquetas), escolha *eventname*.

1. Selecione **Style** (Estilo) e depois **General** (Geral).

1. Em **Colorscales** (Escalas de cores), escolha **Categorical** (Por categoria) e **Pastel2**.

![\[Gráfico de pizza\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/pie-chart.png)


## Exemplo: criar um gráfico combinado para comparar receita e vendas
<a name="query-editor-v2-example-revenue-sales-chart"></a>

Realize as etapas neste exemplo para criar um gráfico que combina um gráfico de barras para dados de receita e um gráfico de linhas para dados de vendas. O exemplo a seguir usa a tabela *Sales* (Vendas) do exemplo de banco de dados tickit. Para obter informações, consulte [Banco de dados de exemplo](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Veja a seguir a consulta que você executa para fornecer os dados para o gráfico.

```
select eventname, total_price, total_qty_sold
from  (select eventid, total_price, total_qty_sold, ntile(1000) over(order by total_price desc) as percentile
       from (select eventid, sum(pricepaid) total_price, sum(qtysold) total_qty_sold
             from   tickit.sales
             group by eventid)) Q, tickit.event E
       where Q.eventid = E.eventid
       and percentile = 1
order by total_price desc;
```

**Para criar um gráfico combinado para comparar receita e vendas**

1. Executar a consulta.

1. Na área de resultados da consulta, ative **Chart** (Gráfico).

1. Em *trace o* (traçado o), para **Type** (Tipo), escolha **Bar** (Barra).

1. Para **X**, escolha *eventname* (nome do evento).

1. Para **Y**, escolha *total\$1price* (preço\$1total).

   O gráfico de barras é exibido com os nomes de eventos ao longo do eixo X.

1. Em **Style** (Estilo), escolha **Traces** (Traçados). 

1. Para **Name** (Nome), insira *Revenue* (Receita).

1. Em **Style** (Estilo), escolha **Axes** (Eixos). 

1. Para **Titles** (Títulos), escolha **Y** e insira *Revenue* (Receita).

   O rótulo *Revenue* (Receita) é exibido no eixo Y esquerdo.

1. Em **Structure** (Estrutura), escolha **Traces** (Traçados).

1. Escolha ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png) **Trace** (Traçado).

   As opções de trace 1 (traçado 1) são exibidas.

1. Para **Type** (Tipo), escolha **Line** (Linha).

1. Para **X**, escolha *eventname* (nome do evento).

1. Para **Y**, escolha *total\$1qty\$1sold* (qtd\$1total\$1vendida).

1. Em **Axes To Use** (Eixos a serem usados), para **Y Axis**(Eixo Y), escolha ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/add-plus.png). 

   O **Y Axis** (eixo Y) exibe *Y2*.

1. Em **Style** (Estilo), escolha **Axes** (Eixos).

1. Em **Titles** (Títulos), escolha **Y2**.

1. Para **Name** (Nome) insira *Sales* (Vendas).

1. Em **Lines** (Linhas), escolha *Y:Sales* (Y:Vendas).

1. Em **Axis Line** (Linha de eixo), escolha **Show** (Mostrar) e para **Position** (Posição), escolha **Right** (Direita).

![\[Gráfico de receitas e vendas\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/chart-revenue-sales.png)


## Demonstração: criar visualizações usando o editor de consultas v2 do Amazon Redshift
<a name="query-editor-v2-demo-visualizations"></a>

Para ver uma demonstração de como criar visualizações, assista ao vídeo a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-FYqTIER-6U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-FYqTIER-6U)


# Compartilhar e trabalhar em equipe
<a name="query-editor-v2-team"></a>

Você pode compartilhar consultas com sua equipe. 

Uma equipe é definida para um conjunto de usuários que colaboram e compartilham recursos do editor de consultas v2. Um administrador pode criar uma equipe adicionando uma etiqueta a um perfil do IAM. Para obter mais informações, consulte [Permissões necessárias para usar o editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2). 

# Salvar e pesquisar consultas
<a name="query-editor-v2-save-queries"></a>

Antes de compartilhar com a equipe, salve sua consulta. Você pode visualizar e excluir consultas salvas. 

**Como salvar uma consulta**

1. Prepare sua consulta e escolha **Save** (Salvar).

1. Insira um título para sua consulta.

1. Escolha **Salvar**. 

**Para procurar consultas salvas**

1. No painel de navegação, escolha **Queries** (Consultas).

1. Você pode ver consultas que são **My queries** (Minhas consultas), **Shared by me (Compartilhadas por mim)** ou **Shared to my team** (Compartilhadas com minha equipe). Essas consultas podem aparecer como consultas individuais ou em pastas que você criou.

# Compartilhar uma consulta
<a name="query-editor-v2-query-share"></a>

Você pode compartilhar consultas com sua equipe. Também é possível visualizar o histórico de consultas salvas e gerenciar versões de consulta. 

Para compartilhar uma consulta com a equipe, verifique se tem a etiqueta da entidade principal `sqlworkbench-team` definida com o mesmo valor que o restante dos membros de sua equipe em sua conta. Por exemplo, um administrador pode definir o valor como `accounting-team` para todos os membros do departamento de contabilidade. Para ver um exemplo, consulte [Permissões necessárias para usar o editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Para compartilhar uma consulta com uma equipe**

1. No painel de navegação, escolha **Queries** (Consultas).

1. Abra o menu de contexto (clique com o botão direito do mouse) da consulta que você deseja compartilhar e escolha **Share with my team** (Compartilhar com minha equipe).

1. Escolha as equipes com as quais você deseja compartilhar a consulta e escolha **Save sharing options** (Salvar opções de compartilhamento). 

# Gerenciar versões de consultas
<a name="query-editor-v2-query-versions"></a>

Toda vez em que você salva uma consulta SQL, o editor de consultas v2 a salva como uma nova versão. É possível procurar versões de consulta anteriores, salvar uma cópia de uma consulta ou restaurar uma consulta. 

**Para gerenciar versões de consulta**

1. No painel de navegação, escolha **Queries** (Consultas).

1. Abra o menu de contexto (clique com o botão direito do mouse) da consulta com a qual você deseja trabalhar.

1. Selecione **Version history** (Histórico de versões) para abrir uma lista de versões da consulta.

1. Na página **Version history** (Histórico de versões), você pode fazer o seguinte:
   + **Revert to selected** (Reverter para a selecionada): reverta para a versão selecionada e continue seu trabalho com esta versão.
   + **Save selected as** (Salvar selecionada como): crie uma nova consulta no editor.

# Consultar um banco de dados usando o Editor de Consultas V1 do Amazon Redshift
<a name="query-editor"></a>

Usar o editor de consulta é uma maneira fácil de executar consultas em bancos de dados hospedados por seu cluster do Amazon Redshift. Depois de criar seu cluster, você pode executar consultas imediatamente usando o editor de consultas no console do Amazon Redshift.

**nota**  
Você não pode consultar dados no Amazon Redshift Serverless usando esse editor de consultas original. Use o editor de consultas v2 do Amazon Redshift.

Em fevereiro de 2021, um editor de consultas atualizado foi implantado e as permissões de autorização para usar o editor de consultas foram alteradas. O novo editor de consultas usa a API de dados do Amazon Redshift para executar consultas. A política `AmazonRedshiftQueryEditor`, que é uma política do AWS Identity and Access Management (IAM) gerenciada pela AWS, foi atualizada para incluir as permissões necessárias. Se você tiver uma política do IAM personalizada, certifique-se de atualizá-la. Use o `AmazonRedshiftQueryEditor` como um guia. Essas alterações no `AmazonRedshiftQueryEditor` incluem o seguinte: 
+ A permissão para gerenciar os resultados da instrução do editor de consulta requer o usuário proprietário da instrução. 
+ A permissão para usar o Secrets Manager para se conectar a um banco de dados foi adicionada.

Para obter mais informações, consulte [Permissões necessárias para usar o editor de consulta do console do Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor).

Ao se conectar ao cluster por meio do novo editor de consultas, você pode usar um dos dois métodos de autenticação oferecidos. 

Usando o Query Editor, você pode fazer o seguinte:
+ Execute consultas únicas de comando SQL.
+ Faça download de conjuntos de resultados de até 100 MB para um arquivo de valores separados por vírgula (CSV).
+ Salve consultas para reutilização. Você não pode salvar consultas em na região da Europa (Paris), Ásia-Pacífico (Osaka), Ásia-Pacífico (Hong Kong) ou do Oriente Médio (Bahrein).
+ Visualizar os detalhes do tempo de execução da consulta para tabelas definidas pelo usuário.
+ Agendar consultas para serem executadas em um momento futuro. 
+ Exibir um histórico de consultas que você criou no editor de consultas. 
+ Executar consultas em clusters usando o roteamento aprimorado da VPC. 

## Considerações do Query Editor
<a name="query-editor-considerations"></a>

Considere o seguinte sobre como trabalhar com consultas ao usar o editor de consultas:
+ A duração máxima de uma consulta é de 24 horas. 
+ O tamanho máximo do resultado da consulta é 100 MB. Se uma chamada retornar mais de 100 MB de dados de resposta, a chamada será encerrada. 
+ O tempo máximo de retenção para resultados da consulta é de 24 horas. 
+ O tamanho máximo da instrução de consulta é de 100 KB. 
+ O cluster deve estar em uma Virtual Private Cloud (VPC) baseada no serviço Amazon VPC. 
+ Você não pode usar transações no Query Editor. Para obter mais informações sobre transações, consulte [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ Você pode salvar uma consulta de até 3.000 caracteres. 

# Conectar-se a um data warehouse do Amazon Redshift usando ferramentas de cliente SQL
<a name="connecting-to-cluster"></a>

É possível se conectar a data warehouses do Amazon Redshift por meio de ferramentas de cliente SQL em conexões Java Database Connectivity (JDBC), Python e Open Database Connectivity (ODBC). O Amazon Redshift não fornece nem instala nenhuma ferramenta ou biblioteca de cliente SQL. Para usar essas ferramentas ou bibliotecas para trabalhar com dados nos data warehouses, instale-as no computador cliente ou na instância do Amazon EC2. Você pode usar a maioria das ferramentas do cliente SQL que oferecem suporte aos drivers JDBC, Python ou ODBC. 

Use a lista de seções no final deste tópico para ajudar você a percorrer o processo de configuração de seu computador cliente ou instância do Amazon EC2 para usar uma conexão JDBC, Python ou ODBC. Nesses tópicos, também são discutidas opções de segurança relacionadas para a conexão do cliente ao servidor. Além disso, encontre informações sobre como configurar e se conectar por meio de ferramentas de cliente SQL, como o [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html). Experimente essas ferramentas se ainda não tiver uma ferramenta de business intelligence para usar. Também é possível usar esta seção para saber como se conectar a seus dados. Por fim, se você encontrar problemas ao tentar se conectar ao data warehouse, poderá examinar as informações de solução de problemas para identificar soluções.

## Recomendações para conexão com ferramentas do cliente
<a name="connecting-to-cluster-recommendations"></a>

Se você se conectar ao cluster do Redshift usando um endereço IP, isso poderá resultar em tempo de inatividade adicional quando houver interrupção ou perda de conexão e o cluster for colocado on-line em uma nova zona de disponibilidade (AZ). No entanto, se você ainda quiser que a aplicação se conecte ao Redshift utilizando um endereço IP, use o endereço IP privado anexado ao endpoint da nuvem privada virtual (VPC) do cluster. Você pode encontrar isso nos detalhes do cluster em **Rede e segurança**, na guia **Propriedades**. 

**nota**  
Se a aplicação usa o endereço IP do nó líder para acessar o cluster do Redshift, a prática recomendada é alterá-lo para usar o URL do endpoint do cluster. Para obter mais informações, consulte [Configurar conexões no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html).

**Topics**
+ [Recomendações para conexão com ferramentas do cliente](#connecting-to-cluster-recommendations)
+ [Configurar conexões no Amazon Redshift](configuring-connections.md)
+ [Configurar as opções de segurança para conexões](connecting-ssl-support.md)
+ [Conexão de código e ferramentas clientes](connecting-via-client-tools.md)
+ [Usar um perfil de autenticação para se conectar ao Amazon Redshift](connecting-with-authentication-profiles.md)
+ [Solução de problemas de conexão no Amazon Redshift](troubleshooting-connections.md)

# Configurar conexões no Amazon Redshift
<a name="configuring-connections"></a>

Na próxima seção, saiba como configurar as conexões JDBC, Pyhton e ODBC para se conectar ao cluster pelas ferramentas do cliente SQL. Esta seção descreve como configurar conexões JDBC, Pyhton e ODBC. Também descreve como usar o Secure Sockets Layer (SSL) e os certificados de servidores para criptografar as comunicações entre o cliente e o servidor. 

## Drivers JDBC, Pyhton e ODBC para o Amazon Redshift
<a name="connecting-drivers"></a>

Para trabalhar com dados no cluster, você precisa ter os drivers JDBC, Python ou ODBC para estabelecer a conexão do computador cliente ou da instância. Escreva o código de suas aplicações de modo que usem as operações de API de acesso a dados JDBC, Python ou ODBC e use as ferramentas do cliente SQL que oferecem suporte a JDBC, Pyhton ou ODBC.

O Amazon Redshift oferece drivers JDBC, Pyhton e ODBC para baixar. Esses drivers contam com suporte do Suporte. Os drivers PostgreSQL não são testados e nem tê suporte da equipe do Amazon Redshift. Use os drivers específicos do Amazon Redshift ao se conectar a um cluster do Amazon Redshift. Os drivers do Amazon Redshift têm as seguintes vantagens:
+ Compatível com IAM, SSO e autenticação federada.
+ Compatível com novos tipos de dados do Amazon Redshift.
+ Compatível com perfis de autenticação.
+ Melhor performance em conjunto com aprimoramentos do Amazon Redshift.

 Para obter mais informações sobre como baixar os drivers do JDBC e do ODBC e configurar as conexões para o cluster, consulte [Configurar uma conexão para o driver JDBC versão 2.x para o Amazon Redshift](jdbc20-install.md), [Conector Python do Amazon Redshift](python-redshift-driver.md) e [Configurar uma conexão para o driver ODBC versão 2.x para o Amazon Redshift](odbc20-install.md). 

Para obter mais informações sobre o gerenciamento de identidades do IAM, incluindo práticas recomendadas para perfis do IAM, consulte [Gerenciamento de Identidade e Acesso no Amazon Redshift](redshift-iam-authentication-access-control.md).

# Encontrar a string de conexão do cluster
<a name="connecting-connection-string"></a>

Para conectar-se ao cluster com a ferramenta do cliente SQL, você precisa ter a string de conexão do cluster. Você pode encontrar a string de conexão do cluster no console do Amazon Redshift, na página de detalhes de um cluster.

**Para encontrar a string de conexão de um cluster**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Redshift em [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. No menu de navegação, escolha **Clusters** e o nome do cluster na lista para abrir os respectivos detalhes.

1. O **URL do JDBC** e **URL do ODBC** estão disponíveis, juntamente com detalhes adicionais, na seção **Informações gerais**. Cada string é baseada na região da AWS em que o cluster é executado. Clique no ícone ao lado da string de conexão apropriada para copiá-la.

Para se conectar a um endpoint de cluster, você pode usar o URL do endpoint de cluster de uma [solicitação da API DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html). Veja a seguir um exemplo de URL de endpoint de cluster.

```
mycluster.cmeaswqeuae.us-east-2.redshift.amazonaws.com
```

Se você configurou um nome de domínio personalizado para o cluster, também poderá usá-lo para se conectar ao cluster. Para obter mais informações sobre como criar um nome de domínio personalizado, consulte [Configurar um nome de domínio personalizado](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME-connect.html).

**nota**  
Ao se conectar, não use o endereço IP de um nó do cluster nem o endereço IP do endpoint da VPC. Sempre use o endpoint do Redshift para evitar interrupção desnecessária. A única exceção ao uso do URL do endpoint é quando você utiliza um nome de domínio personalizado. Para obter mais informações, consulte [Usar nome de domínio personalizado para conexões de clientes](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configurar uma conexão para o driver JDBC versão 2.x para o Amazon Redshift
<a name="jdbc20-install"></a>

Você pode usar uma conexão do driver JDBC versão 2.x para se conectar ao cluster do Amazon Redshift a partir de várias ferramentas de cliente SQL de terceiros. O conector JDBC do Amazon Redshift oferece uma solução de código-fonte aberto. É possível navegar pelo código-fonte, solicitar aprimoramentos, relatar problemas e fornecer contribuições. 

Para obter as informações mais recentes sobre as alterações do driver JDBC, consulte [Changelog](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md).

Por padrão, o driver JDBC do Amazon Redshift é configurado para usar keepalives TCP para evitar que o tempo limite das conexões se esgote. Você pode especificar quando o driver começa a enviar pacotes keepalive ou desligar o recurso definindo as propriedades relevantes no URL de conexão. Para obter mais informações sobre a sintaxe do URL de conexão, consulte [Construir o URL de conexão](jdbc20-build-connection-url.md).


| Propriedade | Descrição | 
| --- | --- | 
|  `TCPKeepAlive`  |  Para desativar as keepalives de TCP, defina essa propriedade como `FALSE`.  | 

**Topics**
+ [Baixe o driver JDBC do Amazon Redshift, versão 2.1](jdbc20-download-driver.md)
+ [Instalar o driver JDBC do Amazon Redshift, versão 2.2](jdbc20-install-driver.md)
+ [Obter o URL do JDBC](jdbc20-obtain-url.md)
+ [Construir o URL de conexão](jdbc20-build-connection-url.md)
+ [Configurar uma conexão JDBC com o Apache Maven](configure-jdbc20-connection-with-maven.md)
+ [Configurar a autenticação e o SSL](jdbc20-configure-authentication-ssl.md)
+ [Configurar o registro em log da](jdbc20-configuring-logging.md)
+ [Conversões de tipos de dados](jdbc20-data-type-mapping.md)
+ [Usando suporte a instruções preparadas](jdbc20-prepared-statement-support.md)
+ [Diferenças entre as versões 2.2 e 1.x do driver JDBC](jdbc20-jdbc10-driver-differences.md)
+ [Criar arquivos de inicialização (.ini) para o driver JDBC versão 2.x](jdbc20-ini-file.md)
+ [Opções para a configuração do driver JDBC versão 2.x](jdbc20-configuration-options.md)
+ [Versões anteriores do driver JDBC versão 2.x](jdbc20-previous-driver-version-20.md)

# Baixe o driver JDBC do Amazon Redshift, versão 2.1
<a name="jdbc20-download-driver"></a>

**nota**  
O driver JDBC 2.x do Amazon Redshift não foi projetado para ser thread-safe. Dois ou mais threads que tentam usar simultaneamente a mesma conexão podem ocasionar deadlocks, erros, resultados incorretos ou outros comportamentos inesperados.  
Se você tiver uma aplicação multithread, recomendamos sincronizar o acesso ao driver para evitar o acesso simultâneo.

O Amazon Redshift oferece drivers para ferramentas compatíveis com a API JDBC 4.2. O nome da classe deste driver é `com.amazon.redshift.Driver`.

Para obter informações detalhadas sobre como instalar o driver JDBC, consulte as bibliotecas do driver JDBC e registre a classe do driver, consulte os tópicos a seguir. 

Para cada computador em que você usa o driver Amazon Redshift JDBC versão 2.x, verifique se o Java Runtime Environment (JRE) 8.0 está instalado. 

Se você usar o driver JDBC Amazon Redshift para autenticação de banco de dados, certifique-se de ter AWS SDK para Java 1.11.118 ou posterior em seu caminho de classe Java. Se você não tiver AWS SDK para Java instalado, baixe o arquivo ZIP com as bibliotecas dependentes de driver e driver compatíveis com JDBC 4.2 para o AWS SDK:
+ [Driver compatível com JDBC 4.2 versão 2.x e bibliotecas dependentes do driver AWS SDK](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip) 

  Este arquivo ZIP contém o driver compatível com JDBC 4.2 versão 2.x e arquivos de biblioteca dependentes do driver AWS SDK para Java 1.x. Descompacte os arquivos jar dependentes no mesmo local que o driver JDBC. Somente o driver JDBC precisa estar no CLASSPATH.

  Este arquivo ZIP não inclui o AWS SDK for Java 1.x. No entanto, ele inclui as bibliotecas dependnetes de driver 1.x AWS SDK for Java que são necessárias para autenticação de banco de dados do AWS Identity and Access Management (IAM).

  Use este driver JDBC do Amazon Redshift com o AWS SDK necessário para a autenticação do banco de dados do IAM.

  Para instalar o AWS SDK for Java 1.x, consulte [AWSSDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html) no *Guia do desenvolvedor do AWS SDK para Java*. 
+ [Driver compatível com JDBC 4.2 versão 2.x (sem o AWS SDK)](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 

Revise a licença do software JDBC versão 2.x e altere o arquivo de log: 
+ [Licença do driver JDBC versão 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [Log de alteração do driver JDBC versão 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

Os drivers JDBC versão 1.2.27.1051 e posteriores oferecem suporte a procedimentos armazenados do Amazon Redshift. Para obter mais informações, consulte [Como criar procedimentos armazenados no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

# Instalar o driver JDBC do Amazon Redshift, versão 2.2
<a name="jdbc20-install-driver"></a>

Para instalar a versão 2.x do driver compatível com o Amazon Redshift JDBC 4.2 e as bibliotecas dependentes de driver para o AWS SDK, extraia os arquivos do arquivo ZIP para o diretório de sua preferência. 

Para instalar o driver compatível com o Amazon Redshift JDBC 4.2 versão 2.x (sem o AWS SDK), copie o arquivo JAR para o diretório de sua preferência.

Para acessar um armazenamento de dados do Amazon Redshift usando o driver JDBC do Amazon Redshift, você precisa executar a configuração conforme descrito a seguir.

**Topics**
+ [Referenciar as bibliotecas de driver JDBC](jdbc20-driver-libraries.md)
+ [Registrar a classe de driver](jdbc20-register-driver-class.md)

# Referenciar as bibliotecas de driver JDBC
<a name="jdbc20-driver-libraries"></a>

A aplicação JDBC ou código Java que você usa para se conectar aos seus dados deve acessar os arquivos JAR do driver. Na aplicação ou código, especifique todos os arquivos JAR extraídos do arquivo ZIP. 

## Usar o driver em uma aplicação JDBC
<a name="jdbc20-use-driver-jdbc-app"></a>

As aplicações JDBC geralmente fornecem um conjunto de opções de configuração para adicionar uma lista de arquivos de biblioteca de drivers. Use as opções fornecidas para incluir todos os arquivos JAR do arquivo ZIP como parte da configuração do driver na aplicação. Para obter mais informações, consulte a documentação de sua aplicação JDBC. 

## Usar o driver no código Java
<a name="jdbc20-use-driver-java-code"></a>

Você deve incluir todos os arquivos de biblioteca de driver no caminho da classe. Este é o caminho que o Java Runtime Environment procura por classes e outros arquivos de recursos. Para obter mais informações, consulte a documentação apropriada do Java SE para definir o caminho da classe para o seu sistema operacional. 
+ Windows: [https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html)
+ Linux e Solaris: [https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html)
+ macOS: o caminho padrão da classe macOS é o diretório no qual o driver JDBC está instalado.

# Registrar a classe de driver
<a name="jdbc20-register-driver-class"></a>

Certifique-se de registrar a classe apropriada para a sua aplicação. Use as seguintes classes para conectar o driver JDBC do Amazon Redshift aos armazenamentos de dados do Amazon Redshift:
+ `Driver` Classes estendem `java.sql.Driver`.
+ Classes `DataSource` estendem `javax.sql.DataSource` e `javax.sql.ConnectionPoolDataSource`.

O driver suporta os seguintes nomes de classe totalmente qualificados que são independentes da versão JDBC:
+ `com.amazon.redshift.jdbc.Driver`
+ `com.amazon.redshift.jdbc.DataSource`

O exemplo a seguir mostra como usar a classe DriverManager para estabelecer uma conexão para JDBC 4.2.

```
            private static Connection connectViaDM() throws Exception
{
Connection connection = null;
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
```

O exemplo a seguir mostra como usar a classe `DataSource` para estabelecer uma conexão.

```
 private static Connection connectViaDS() throws Exception
{
Connection connection = null;
11
Amazon Redshift JDBC Driver Installation and Configuration Guide
DataSource ds = new com.amazon.redshift.jdbc.DataSource
();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
```

# Obter o URL do JDBC
<a name="jdbc20-obtain-url"></a>

Antes de se conectar ao seu cluster Amazon Redshift a partir de uma ferramenta de cliente SQL, você precisa saber o URL do JDBC do seu cluster. O URL do JDBC tem o seguinte formato: `jdbc:redshift://endpoint:port/database`.

Os campos do formato anterior possuem os valores a seguir.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/jdbc20-obtain-url.html)

Este é um exemplo de URL do JDBC: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev` 

Se os valores de URL contiverem qualquer um dos seguintes caracteres reservados de URI, eles deverão ser codificados em URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  um espaço vazio 

Por exemplo, se o valor `PWD` for `password:password`, um URL de conexão que usa esse valor seria assim:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Para obter informações sobre como obter sua conexão JDBC, consulte [Encontrar a string de conexão do cluster](connecting-connection-string.md). 

Se a conexão do computador cliente com o banco de dados falhar, você pode tentar solucionar os possíveis problemas. Para obter mais informações, consulte [Solução de problemas de conexão no Amazon Redshift](troubleshooting-connections.md). 

# Construir o URL de conexão
<a name="jdbc20-build-connection-url"></a>

Use o URL de conexão para fornecer informações de conexão ao armazenamento de dados que você está acessando. A seguir está o formato da URL de conexão do driver JDBC do Amazon Redshift versão 2.x. Aqui, [Host] é o endpoint do servidor Amazon Redshift e [Port] é o número da porta Transmission Control Protocol (TCP) que o servidor usa para atender solicitações de clientes.

```
jdbc:redshift://[Host]:[Port]
```

Segue-se o formato de um URL de ligação que especifica algumas definições opcionais.

```
jdbc:redshift://[Host]:[Port]/[database];[Property1]=[Value];
[Property2]=[Value];
```

Se os valores de URL contiverem qualquer um dos seguintes caracteres reservados de URI, eles deverão ser codificados em URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  um espaço vazio 

Por exemplo, se o valor `PWD` for `password:password`, um URL de conexão que usa esse valor seria assim:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Por exemplo, suponha que você queira se conectar à porta 9000 em um cluster do Amazon Redshift na região Oeste dos EUA (Norte da Califórnia) na AWS. Você também deseja acessar o banco de dados chamado `dev` e autenticar a conexão usando um nome de usuário e senha do banco de dados. Nesse caso, use o URL de conexão a seguir.

```
jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=amazon
```

Você pode usar os seguintes caracteres para separar as opções de configuração do restante da string de URL:
+ ;
+ ?

Por exemplo, as strings de URL a seguir são equivalentes:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev?ssl=true;defaultRowFetchSize=100
```

Você pode usar os seguintes caracteres para separar as opções de configuração umas das outras na string de URL:
+ ;
+ &

Por exemplo, as strings de URL a seguir são equivalentes:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev;ssl=true&defaultRowFetchSize=100
```

O exemplo de URL a seguir especifica um nível de log de 6 e o caminho para os logs.

```
jdbc:redshift://redshift.amazonaws.com:5439/dev;DSILogLevel=6;LogPath=/home/user/logs;
```

Não duplique propriedades no URL de conexão.

Para obter uma lista completa das opções de configuração que você pode especificar, consulte [Opções para a configuração do driver JDBC versão 2.x](jdbc20-configuration-options.md). 

**nota**  
Ao se conectar, não use o endereço IP de um nó do cluster nem o endereço IP do endpoint da VPC. Sempre use o endpoint do Redshift para evitar interrupção desnecessária. A única exceção ao uso do URL do endpoint é quando você utiliza um nome de domínio personalizado. Para obter mais informações, consulte [Usar nome de domínio personalizado para conexões de clientes](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configurar uma conexão JDBC com o Apache Maven
<a name="configure-jdbc20-connection-with-maven"></a>

O Apache Maven é uma ferramenta de gerenciamento e compreensão de projetos de software. O AWS SDK para Java é compatível com os projetos do Apache Maven. Para obter mais informações, consulte [Usar o SDK com o Apache Maven](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html) no *Guia do desenvolvedor do AWS SDK para Java*. 

Se você usa o Apache Maven, pode configurar e construir seus projetos para usar um driver JDBC do Amazon Redshift para se conectar ao seu cluster do Amazon Redshift. Para fazer isso, adicione o driver JDBC como uma dependência no arquivo `pom.xml` do projeto. Se você usa o Maven para compilar um projeto e deseja usar uma conexão JDBC, siga as etapas da próxima seção. 

**Como configurar o driver JDBC como uma dependência do Maven**

1. Adicione o repositório Amazon ou o repositório Maven Central à seção de repositórios do arquivo `pom.xml`.
**nota**  
O URL exibido no exemplo de código a seguir retornará um erro se for usado em um navegador. Use este URL somente no contexto de um projeto Maven.

   Para conectar-se usando Secure Sockets Layer (SSL), adicione o repositório a seguir ao arquivo `pom.xml`.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
       </repository>
   </repositories>
   ```

   Para um repositório Maven Central, adicione o seguinte ao arquivo `pom.xml`:

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://repo1.maven.org/maven2</url>
       </repository>
   </repositories>
   ```

1. Declare a versão do driver que deseja usar na seção de dependências do arquivo `pom.xml`.

   O Amazon Redshift oferece drivers para ferramentas compatíveis com a API JDBC 4.2. Para obter informações sobre a funcionalidade compatível com esses drivers, consulte [Baixe o driver JDBC do Amazon Redshift, versão 2.1](jdbc20-download-driver.md). 

   Substitua `driver-version` no exemplo a seguir com a versão do driver, por exemplo `2.1.0.1`. Para um driver compatível com JDBC 4.2, use o seguinte: 

   ```
   <dependency>
      <groupId>com.amazon.redshift</groupId>
      <artifactId>redshift-jdbc42</artifactId>
      <version>driver-version</version>
   </dependency>
   ```

   O nome da classe deste driver é `com.amazon.redshift.Driver`.

Os drivers do Amazon Redshift Maven precisam das dependências opcionais a seguir quando você usa a autenticação de banco de dados do IAM. 

```
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-core</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-redshift</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-sts</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
```

Para atualizar ou alterar o driver JDBC do Amazon Redshift para a versão mais recente, primeiro modifique a seção de versão da dependência para a versão mais recente do driver. Limpe seu projeto com o Maven Clean Plugin, conforme mostrado a seguir. 

```
mvn clean
```

# Configurar a autenticação e o SSL
<a name="jdbc20-configure-authentication-ssl"></a>

Para proteger os dados contra acesso não autorizado, os armazenamentos de dados do Amazon Redshift exigem que todas as conexões sejam autenticadas usando credenciais do usuário. Alguns armazenamentos de dados também exigem conexões a serem feitas através do protocolo Secure Sockets Layer (SSL) com ou sem autenticação unidirecional.

O driver JDBC do Amazon Redshift versão 2.x fornece suporte completo a esses protocolos de autenticação. 

A versão SSL que o driver suporta depende da versão JVM que você está usando. Para obter informações sobre as versões SSL compatíveis com cada versão do Java, consulte [Diagnosticar TLS, SSL e HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https) no Blog de gerenciamento de produtos do grupo de plataformas Java. 

A versão SSL usada para a conexão é a versão mais alta aceita pelo driver e pelo servidor, que é determinada no momento da conexão.

Configure o driver JDBC versão 2.x do Amazon Redshift para autenticar a conexão de acordo com os requisitos de segurança do servidor do Redshift ao qual você está se conectando. 

Você deve sempre fornecer seu nome de usuário e senha do Redshift para autenticar a conexão. Se o SSL estiver habilitado e for necessário no servidor, também poderá ser necessário configurar o driver para se conectar por meio do SSL. Você deve sempre fornecer seu nome de usuário e senha do Amazon Redshift para autenticar a conexão. ... 

Você fornece as informações de configuração para o driver no URL de conexão. Para obter mais informações sobre a sintaxe do URL de conexão, consulte [Construir o URL de conexão](jdbc20-build-connection-url.md). 

*SSL* indica TLS/SSL, ambos Transport Layer Security e Secure Sockets Layer. O driver suporta versões padrão do setor de TLS/SSL. 

## Configurar a autenticação do IAM
<a name="jdbc20-configure-iam-authentication"></a>

Se você estiver se conectando a um servidor do Amazon Redshift usando a autenticação do IAM, defina as propriedades a seguir como parte da cadeia de conexão da fonte de dados. 

 Para obter mais informações sobre a autenticação do IAM, consulte [Gerenciamento de Identidade e Acesso no Amazon Redshift](redshift-iam-authentication-access-control.md).

Para usar a autenticação do IAM, use um dos seguintes formatos de string de conexão:


| String de conexão | Descrição | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  Uma string de conexão regular. O driver infere o ClusterID e a região do host.  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  O driver recupera informações do host, dado o ClusterID e a Região.  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  O driver usa como padrão a porta 5439 e infere ClusterID e Região do host. Dependendo da porta selecionada ao criar, modificar ou migrar o cluster, permita o acesso à porta selecionada.   | 

## Especificar perfis
<a name="jdbc20-aws-credentials-profiles"></a>

Se você estiver usando a autenticação do IAM, poderá especificar quaisquer propriedades de conexão adicionais obrigatórias ou opcionais sob um nome de perfil. Ao fazer isso, você pode evitar colocar certas informações diretamente na cadeia de conexão. Você especifica o nome do perfil na cadeia de conexão usando a propriedade Perfil. 

Os perfis podem ser adicionados ao arquivo de credenciais AWS. O local padrão para esse arquivo é .: `~/.aws/credentials` 

Você pode alterar o valor padrão, definindo o caminho na seguinte variável de ambiente: `AWS_CREDENTIAL_PROFILES_FILE` 

 Para obter mais informações sobre perfis, consulte [Trabalhar com credenciais da AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) no *AWS SDK para Java*. 

## Usar credenciais de perfil da instância
<a name="jdbc20-instance-profile-credentials"></a>

Se você estiver executando uma aplicação em uma instância do Amazon EC2 associada a uma função do IAM, você poderá se conectar usando as credenciais do perfil da instância. 

Para fazer isso, use um dos formatos de string de conexão do IAM na tabela anterior e defina a propriedade de conexão DbUser com o nome de usuário do Amazon Redshift que você está usando para se conectar. 

Para obter mais informações sobre perfis de instância, consulte [Gerenciamento de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Manual do usuário do IAM*. 

## Usar provedores de credenciais.
<a name="jdbc20-aws-credentials-provider"></a>

O driver também oferece suporte a plugins de provedores de credenciais dos seguintes serviços: 
+ Centro de Identidade do AWS IAM
+ Serviço de Federação do Active Directory (AD FS)
+ Serviço JSON Web Tokens (JWT)
+ Serviço Microsoft Azure Active Directory (AD) e navegador e serviço Microsoft Azure Active Directory (AD)
+ Serviço Okta
+ Serviço PingFederate 
+ Navegador SAML para serviços SAML como Okta, Ping ou ADFS

Se você usar um desses serviços, o URL de conexão precisará especificar as seguintes propriedades: 
+ **Plugin\$1Name** — O caminho de classe totalmente qualificado para sua classe de plug-in do provedor de credenciais.
+ **IdP\$1Host:** — O host do serviço que você está usando para autenticar no Amazon Redshift.
+ **IdP\$1Port** — A porta na qual o host do serviço de autenticação escuta. Não é necessário para o Okta.
+ **Usuário**: nome do usuário do servidor idp\$1host.
+ **Senha**: a senha associada ao nome do usuário idp\$1host.
+ **DbUser**: o nome de usuário do Amazon Redshift que você está usando para se conectar.
+ **SSL\$1Insecure** — Indica se o certificado do servidor IDP deve ser verificado.
+ **Client\$1ID**: o ID do cliente associado ao nome de usuário no portal do Azure AD. Usado somente para o Azure AD.
+ **Client\$1Secret** — O segredo do cliente associado ao ID do cliente no portal Azure AD. Usado somente para o Azure AD.
+ **IdP\$1Tenant** — O ID de locatário do Azure AD para sua aplicação Amazon Redshift. Usado somente para o Azure AD.
+ **App\$1ID** — O ID do aplicativo Okta para sua aplicação Amazon Redshift. Usado apenas para o Okta.
+ **App\$1Name** — O nome da aplicação Okta opcional para sua aplicação Amazon Redshift. Usado apenas para o Okta.
+ **Partner\$1SPID** — O valor SPID de parceiro opcional (ID do provedor de serviços). Usado somente para o PingFederate.
+ **Idc\$1Region**: a Região da AWS onde a instância do Centro de Identidade do AWS IAM está localizada. Usado somente para o Centro de Identidade do AWS IAM.
+ **Issuer\$1Url**: o endpoint da instância do servidor do Centro de Identidade do AWS IAM. Usado somente para o Centro de Identidade do AWS IAM.

Se você estiver usando um plug-in de navegador para um desses serviços, o URL de conexão também pode incluir: 
+ **Login\$1URL** — O URL do recurso no site do provedor de identidades ao usar o Security Assertion Markup Language )SAML) ou os serviços do Azure AD por meio de um plug-in do navegador. Esse parâmetro é necessário se você estiver usando um plug-in do navegador.
+ **Listen\$1Port**: a porta que o driver usa para obter a resposta SAML do provedor de identidades ao usar os serviços SAML, Azure AD ou Centro de Identidade do AWS IAM por meio de um plug-in de navegador.
+ **IdP\$1Response\$1Timeout**: a quantidade de tempo, em segundos, que o driver aguarda pela resposta SAML do provedor de identidades ao usar os serviços SAML, Azure AD ou Centro de Identidade do AWS IAM por meio de um plug-in de navegador.

Para obter mais informações sobre as propriedades de string de conexão, consulte [Opções para a configuração do driver JDBC versão 2.x](jdbc20-configuration-options.md). 

# Usar somente nome de usuário e senha
<a name="jdbc20-authentication-username-password"></a>

Se o servidor ao qual você está se conectando não usar SSL, só será necessário fornecer seu nome de usuário e senha do Redshift para autenticar a conexão. 

**Como configurar a autenticação usando apenas o nome de usuário e a senha do Redshift**

1. Defina a propriedade `UID` como seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

1. Defina a propriedade PWD como a senha correspondente ao seu nome de usuário do Redshift.

# Usar SSL sem verificação de identidade
<a name="jdbc20-use-ssl-without-identity-verification"></a>

Se o servidor ao qual você está se conectando usar SSL, mas não exigir verificação de identidade, você poderá configurar o driver para usar uma fábrica SSL não validada. 

**Para configurar uma conexão SSL sem verificação de identidade**

1. Defina a propriedade `UID` como seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

1. Defina a propriedade `PWD` como a senha correspondente ao seu nome de usuário do Redshift.

1. Defina a propriedade `SSLFactory` como `com.amazon.redshift.ssl.NonValidatingFactory`.

# Usar autenticação SSL unidirecional
<a name="jdbc20-use-one-way-SSL-authentication"></a>

Se o servidor ao qual você está se conectando usar SSL e tiver um certificado, você poderá configurar o driver para verificar a identidade do servidor usando a autenticação unidirecional. 

A autenticação unidirecional requer um certificado SSL assinado e confiável para verificar a identidade do servidor. Você pode configurar o driver para usar um certificado específico ou acessar um TrustStore que contém o certificado apropriado. Se você não especificar um certificado ou TrustStore, o driver usará o Java TrustStore padrão (normalmente `jssecacerts` ou `cacerts`). 

**Para configurar a autenticação SSL unidirecional**

1. Defina a propriedade UID como seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

1. Defina a propriedade PWD como a senha correspondente ao seu nome de usuário do Redshift.

1. Defina a propriedade SSL como true.

1. Defina a propriedade SSLRootCert como o local do certificado CA raiz.

1. Se você não estiver usando um dos Java TrustStores padrão, execute uma das seguintes ações:
   + Para especificar um certificado de servidor, defina a propriedade SSLRootCert como o caminho completo do certificado.
   + Para especificar um TrustStore, faça o seguinte:

     1. Utilize o programa keytool para adicionar o certificado de servidor à TrustStore que pretende utilizar.

     1. Especifique a TrustStore e a senha a serem usadas ao iniciar a aplicação Java usando o driver. Por exemplo:

        ```
        -Djavax.net.ssl.trustStore=[TrustStoreName]
        -Djavax.net.ssl.trustStorePassword=[TrustStorePassword]
        -Djavax.net.ssl.trustStoreType=[TrustStoreType]
        ```

1. Escolha uma:
   + Para validar o certificado, defina a propriedade SSLMode como verify-ca.
   + Para validar o certificado e verificar o nome do host no certificado, defina a propriedade SSLMode como verify-full.

# Configurar o registro em log da
<a name="jdbc20-configuring-logging"></a>

Você pode ativar o login no driver para ajudar no diagnóstico de problemas.

Você pode registrar as informações do driver usando os seguintes métodos:
+ Para salvar informações registradas em arquivos.log, consulte [Usar arquivos de log](jdbc20-using-log-files.md).
+ Para enviar informações registradas em log para o LogStream ou LogWriter especificado no DriverManager, consulte [Usar LogStream ou LogWriter](jdbc20-logstream-option.md). 

Você fornece as informações de configuração para o driver no URL de conexão. Para obter mais informações sobre a sintaxe do URL de conexão, consulte [Construir o URL de conexão](jdbc20-build-connection-url.md).

# Usar arquivos de log
<a name="jdbc20-using-log-files"></a>

Ative o registro somente por tempo suficiente para capturar um problema. O registro em log diminui a performance e pode consumir uma grande quantidade de espaço em disco. 

Defina a chave LogLevel no URL de conexão para ativar o registro em logs e especifique a quantidade de detalhes incluídos nos arquivos de log. A tabela a seguir lista os níveis de registro fornecidos pelo driver JDBC versão 2.x do Amazon Redshift, em ordem de menos detalhado para mais detalhado. 


| Valor LogLevel | Descrição | 
| --- | --- | 
|  1  |  Registre eventos de erros graves que farão com que o driver aborte.  | 
|  2  |  Registre eventos de erro que podem permitir que o driver continue em execução.  | 
|  3  |  Registre eventos que podem resultar em um erro se a ação não for executada. Esse nível de registro em log e os níveis de registro em log acima dele também registram as consultas do usuário.  | 
|  4  |  Registre informações gerais que descrevem o andamento do driver.  | 
|  5  |  Registre informações detalhadas que são úteis para depurar o driver.  | 
|  6  |  Registre todas as atividades do driver.  | 

**Para configurar o registro em log que usa arquivos de log**

1. Defina a propriedade LogLevel para o nível desejado de informações a serem incluídas nos arquivos de log.

1. Defina a propriedade LogPath com o caminho completo para a pasta onde deseja salvar os arquivos de log. 

   Por exemplo, o seguinte URL de conexão habilita o nível de log 3 e salva os arquivos de log na pasta C:\$1temp: `jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp`

1. Para garantir que as novas configurações entrem em vigor, reinicie a aplicação JDBC e reconecte-se ao servidor.

   O driver JDBC do Amazon Redshift produz os seguintes arquivos de log no local especificado na propriedade LogPath:
   +  redshift\$1jdbc.log que registra a atividade do driver que não é específica para uma conexão.
   + Arquivo de log redshift\$1jdbc\$1connection\$1[Number]. para cada conexão feita com o banco de dados, onde [Number] é um número que identifica cada arquivo de log. Este arquivo registra a atividade do driver que é específica para a conexão.

Se o valor LogPath for inválido, o driver enviará as informações registradas para o fluxo de saída padrão (`System.out`)

# Usar LogStream ou LogWriter
<a name="jdbc20-logstream-option"></a>

Ative o registro somente por tempo suficiente para capturar um problema. O registro em log diminui a performance e pode consumir uma grande quantidade de espaço em disco. 

Defina a chave LogLevel no URL de conexão para ativar o registro em log e especifique a quantidade de detalhes enviados para o LogStream ou LogWriter especificado no DriverManager. 

**Para ativar o registro em log que usa o LogStream ou LogWriter:**

1. Para configurar o driver para registrar informações gerais que descrevem o andamento do driver, defina a propriedade LogLevel como 1 ou INFO.

1. Para garantir que as novas configurações entrem em vigor, reinicie a aplicação JDBC e reconecte-se ao servidor.

# Conversões de tipos de dados
<a name="jdbc20-data-type-mapping"></a>

O driver JDBC versão 2.x do Amazon Redshift é compatível com muitos formatos de dados comuns, convertendo entre tipos de dados do Amazon Redshift, SQL e Java.

A tabela a seguir lista os mapeamentos de tipo de dados compatíveis.


| Tipo do Amazon Redshift | Tipo SQL | Tipo Java | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  Longo  | 
|  BOOLEAN  |  SQL\$1BIT  |  Booleano  | 
|  CHAR  |  SQL\$1CHAR  |  String  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Duplo  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  Inteiro  | 
|  OID  |  SQL\$1BIGINT  |  Longo  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  String  | 
|  REAL  |  SQL\$1REAL  |  Float  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  Short  | 
|  TEXT  |  SQL\$1VARCHAR  |  String  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  String  | 

# Usando suporte a instruções preparadas
<a name="jdbc20-prepared-statement-support"></a>

O driver JDBC do Amazon Redshift é compatível com instruções preparadas. Você pode usar instruções preparadas para melhorar a performance de consultas parametrizadas que precisam ser executadas várias vezes durante a mesma conexão.

Uma *instrução preparada* é uma instrução SQL que é compilada no lado do servidor, mas não é executada imediatamente. A instrução compilada é armazenada no servidor como um objeto PreparedStatement até que você feche o objeto ou a conexão. Enquanto esse objeto existe, você pode executar a instrução preparada tantas vezes quantas forem necessárias usando diferentes valores de parâmetro, sem ter que compilar a instrução novamente. Essa sobrecarga reduzida permite que o conjunto de consultas seja executado mais rapidamente.

Para obter mais informações sobre instruções preparadas, consulte “Usando instruções preparadas” no [Tutorial básico do JDBC Basics da Oracle](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).

Você pode preparar uma instrução que contenha várias consultas. Por exemplo, a seguinte instrução preparada contém duas consultas INSERT:

```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
MyTable VALUES (1, 'abc'); INSERT INTO CompanyTable VALUES
(1, 'abc');");
```

Tenha cuidado para que essas consultas não dependam dos resultados de outras consultas que são especificadas dentro da mesma instrução preparada. Como as consultas não são executadas durante a etapa de preparação, os resultados ainda não foram retornados e não estão disponíveis para outras consultas na mesma instrução preparada.

Por exemplo, a seguinte instrução preparada, que cria uma tabela e, em seguida, insere valores nessa tabela recém-criada, não é permitida:

```
PreparedStatement pstmt = conn.prepareStatement("CREATE
TABLE MyTable(col1 int, col2 varchar); INSERT INTO myTable
VALUES (1, 'abc');");
```

Se você tentar preparar essa instrução, o servidor retorna um erro informando que a tabela de destino (MyTable) ainda não existe. A consulta CREATE deve ser executada antes que a consulta INSERT possa ser preparada.

# Diferenças entre as versões 2.2 e 1.x do driver JDBC
<a name="jdbc20-jdbc10-driver-differences"></a>

Esta seção descreve as diferenças nas informações retornadas pelas versões 2.2 e 1.x do driver JDBC. O driver JDBC versão 1.x foi descontinuado.

A tabela a seguir lista as informações DatabaseMetadata retornadas pelas funções GetDatabaseProductName() e getDatabaseProductVersion() para cada versão do driver JDBC. O driver JDBC versão 2.2 obtém os valores ao estabelecer a conexão. O driver JDBC versão 1.x obtém os valores como resultado de uma consulta.


| Versão do driver JDBC | Resultado getDatabaseProductName() | Resultado getDatabaseProductVersion() | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08.00.0002  | 

A tabela a seguir lista as informações DatabaseMetadata retornadas pela função getTypeInfo para cada versão do driver JDBC. 


| Versão do driver JDBC | Resultado do getTypeInfo | 
| --- | --- | 
|  2.2  |  Consistente com tipos de dados do Redshift  | 
|  1.x  |  Consistente com tipos de dados do PostgreSQL  | 

# Criar arquivos de inicialização (.ini) para o driver JDBC versão 2.x
<a name="jdbc20-ini-file"></a>

Com os arquivos de inicialização (.ini) para o driver JDBC versão 2.x do Amazon Redshift , você pode especificar parâmetros de configuração no nível do sistema. Por exemplo, os parâmetros de autenticação IdP federados podem variar para cada aplicação. O arquivo .ini fornece um local comum para clientes SQL obterem os parâmetros de configuração necessários. 

Você pode criar um arquivo de inicialização (.ini) do driver JDBC versão 2.x que contém opções de configuração para clientes SQL. O nome padrão do arquivo é `rsjdbc.ini`. O driver JDBC versão 2.x verifica o arquivo.ini nos seguintes locais, listados em ordem de precedência:
+ `IniFile`Parâmetro no URL de conexão ou na caixa de diálogo de propriedade de conexão do cliente SQL. Certifique-se de que o parâmetro `IniFile` contém o caminho completo para o arquivo .ini, incluindo o nome do arquivo. Para obter mais informações sobre o parâmetro `IniFile`, consulte [iniFile](jdbc20-configuration-options.md#jdbc20-inifile-option). Se o parâmetro `IniFile` especifica incorretamente o local do arquivo.ini, um erro é exibido.
+ Variáveis de ambiente como AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE com o caminho completo, incluindo o nome do arquivo. Você pode usar `rsjdbc.ini` ou especificar um nome de arquivo. Se a variável de ambiente AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE especificar incorretamente o local do arquivo.ini, um erro será exibido.
+ Diretório onde o arquivo JAR do driver está localizado.
+ Diretório inicial do usuário.
+ Diretório temporário do sistema.

Você pode organizar o arquivo.ini em seções, por exemplo [DRIVER]. Cada seção contém pares de chave-valor que especificam vários parâmetros de conexão. Você pode usar o parâmetro `IniSection` para especificar uma seção no arquivo.ini. Para obter mais informações sobre o parâmetro `IniSection`, consulte [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option). 

Segue-se um exemplo do formato de arquivo.ini, com seções para [DRIVER], [DEV], [QA] e [PROD]. A seção [DRIVER] pode ser aplicada a qualquer conexão.

```
[DRIVER]
key1=val1
key2=val2

[DEV]
key1=val1
key2=val2

[QA]
key1=val1
key2=val2

[PROD]
key1=val1
key2=val2
```

O driver JDBC versão 2.x carrega parâmetros de configuração dos seguintes locais, listados em ordem de precedência:
+ Parâmetros de configuração padrão no código da aplicação.
+ [DRIVER] do arquivo.ini, se incluído.
+ Parâmetros de configuração de seção personalizada, se a `IniSection` é fornecida no URL de conexão ou na caixa de diálogo de propriedade de conexão do cliente SQL.
+ Propriedades do objeto de propriedade de conexão especificado na chamada `getConnection`.
+ Parâmetros de configuração especificados no URL de conexão.

# Opções para a configuração do driver JDBC versão 2.x
<a name="jdbc20-configuration-options"></a>

A seguir, você pode encontrar descrições para as opções que podem ser especificadas para a versão 2.2 do driver JDBC do Amazon Redshift. As opções não diferenciam letras maiúsculas de minúsculas.

Você pode definir propriedades de configuração usando o URL de conexão. Para obter mais informações, consulte [Construir o URL de conexão](jdbc20-build-connection-url.md).

**Topics**
+ [AccessKeyID](#jdbc20-accesskeyid-option)
+ [AllowDBuserOverride](#jdbc20-allowdbuseroverride-option)
+ [App\$1ID](#jdbc20-app-id-option)
+ [App\$1Name](#jdbc20-app-name-option)
+ [ApplicationName](#jdbc20-applicationname-option)
+ [AuthProfile](#jdbc20-authprofile-option)
+ [AutoCreate](#jdbc20-autocreate-option)
+ [Client\$1ID](#jdbc20-client_id-option)
+ [Client\$1Secret](#jdbc20-client_secret-option)
+ [ClusterID](#jdbc20-clusterid-option)
+ [Compactação](#jdbc20-compression-option)
+ [connectTimeout](#jdbc20-connecttimeout-option)
+ [connectionTimezone](#jdbc20-connecttimezone-option)
+ [databaseMetadataCurrentDbOnly](#jdbc20-databasemetadatacurrentdbonly-option)
+ [DbUser](#jdbc20-dbuser-option)
+ [DbGroups](#jdbc20-dbgroups-option)
+ [DBNAME](#jdbc20-dbname-option)
+ [defaultRowFetchSize](#jdbc20-defaultrowfetchsize-option)
+ [DisableIsValidQuery](#jdbc20-disableisvalidquery-option)
+ [enableFetchRingBuffer](#jdbc20-enablefetchringbuffer-option)
+ [enableMultiSqlSupport](#jdbc20-enablemultisqlsupport-option)
+ [fetchRingBufferSize](#jdbc20-fetchringbuffersize-option)
+ [ForceLowercase](#jdbc20-forcelowercase-option)
+ [groupFederation](#jdbc20-groupFederation-option)
+ [HOST](#jdbc20-host-option)
+ [IAMDisableCache](#jdbc20-iamdisablecache-option)
+ [IAMDuration](#jdbc20-iamduration-option)
+ [Idc\$1Client\$1Display\$1Name](#jdbc20-idc_client_display_name)
+ [Idc\$1Region](#jdbc20-idc_region)
+ [IdP\$1Host](#jdbc20-idp_host-option)
+ [IdP\$1Partition](#jdbc20-idp_partition-option)
+ [IdP\$1Port](#jdbc20-idp_port-option)
+ [IdP\$1Tenant](#jdbc20-idp_tenant-option)
+ [IdP\$1Response\$1Timeout](#jdbc20-idp_response_timeout-option)
+ [iniFile](#jdbc20-inifile-option)
+ [IniSection](#jdbc20-inisection-option)
+ [isServerless](#jdbc20-isserverless-option)
+ [Issuer\$1Url](#jdbc20-issuer-url)
+ [Listen\$1Port](#jdbc20-listen-port)
+ [Login\$1URL](#jdbc20-login_url-option)
+ [loginTimeout](#jdbc20-logintimeout-option)
+ [loginToRp](#jdbc20-logintorp-option)
+ [LogLevel](#jdbc20-loglevel-option)
+ [LogPath](#jdbc20-logpath-option)
+ [OverrideSchemaPatternType](#jdbc20-override-schema-pattern-type)
+ [Partner\$1SPID](#jdbc20-partner_spid-option)
+ [Senha](#jdbc20-password-option)
+ [Plugin\$1Name](#jdbc20-plugin_name-option)
+ [PORT](#jdbc20-port-option)
+ [Preferred\$1Role](#jdbc20-preferred_role-option)
+ [Perfil](#jdbc20-profile-option)
+ [PWD](#jdbc20-pwd-option)
+ [queryGroup](#jdbc20-querygroup-option)
+ [readOnly](#jdbc20-readonly-option)
+ [Região](#jdbc20-region-option)
+ [reWriteBatchedInserts](#jdbc20-rewritebatchedinserts-option)
+ [reWriteBatchedInsertsSize](#jdbc20-rewritebatchedinsertssize-option)
+ [roleArn](#jdbc20-rolearn-option)
+ [roleSessionName](#jdbc20-roleaessionname-option)
+ [scope](#jdbc20-scope-option)
+ [SecretAccessKey](#jdbc20-secretaccesskey-option)
+ [SessionToken](#jdbc20-sessiontoken-option)
+ [serverlessAcctId](#jdbc20-serverlessacctid-option)
+ [serverlessWorkGroup](#jdbc20-serverlessworkgroup-option)
+ [socketFactory](#jdbc20-socketfactory-option)
+ [socketTimeout](#jdbc20-sockettimeout-option)
+ [SSL](#jdbc20-ssl-option)
+ [SSL\$1Insecure](#jdbc20-ssl_insecure-option)
+ [SSLCert](#jdbc20-sslcert-option)
+ [SSLFactory](#jdbc20-sslfactory-option)
+ [SSLkey](#jdbc20-sslkey-option)
+ [SSLMode](#jdbc20-sslmode-option)
+ [SSLPassword](#jdbc20-sslpassword-option)
+ [SSLRootCert](#jdbc20-sslrootcert-option)
+ [StsEndpointUrl](#jdbc20-stsendpointurl-option)
+ [tcpKeepAlive](#jdbc20-tcpkeepalive-option)
+ [token](#jdbc20-token-option)
+ [token\$1type](#jdbc20-token-type-option)
+ [UID](#jdbc20-uid-option)
+ [Usuário](#jdbc20-user-option)
+ [webIdentityToken](#jdbc20-webidentitytoken-option)

## AccessKeyID
<a name="jdbc20-accesskeyid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

É possível especificar esse parâmetro para inserir a chave de acesso do IAM para o usuário ou o perfil. Normalmente, você pode localizar a chave observando e string existente ou perfil de usuário. Se você especificar esse parâmetro, também deverá especificar o parâmetro `SecretAccessKey`. Se for transmitido no URL de JDBC, o AccessKeyID deverá ser codificado por URL.

Esse parâmetro é opcional.

## AllowDBuserOverride
<a name="jdbc20-allowdbuseroverride-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados** – String

Esta opção especifica se o driver usa o valor `DbUser` a partir da declaração SAML ou o valor especificado na propriedade de conexão `DbUser` no URL de conexão. 

Esse parâmetro é opcional.

**1**  
O driver usa o valor `DbUser` da declaração SAML.  
Se a declaração SAML não especificar um valor para `DBUser`, o driver usa o valor especificado na propriedade de conexão `DBUser`. Se a propriedade de conexão também não especificar um valor, o driver usará o valor especificado no perfil de conexão.

**0**  
O driver usa o valor `DBUser` especificado no valor de propriedade de conexão. `DBUser`.  
Se a conexão `DBUser` não especificar um valor, o driver usará o valor especificado no perfil de conexão. Se o perfil de conexão também não especificar um valor, o driver usará o valor da declaração SAML.

## App\$1ID
<a name="jdbc20-app-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID exclusivo fornecido pela OKTA associado à sua aplicação Amazon Redshift. 

Este parâmetro é necessário se autenticar através do serviço Okta.

## App\$1Name
<a name="jdbc20-app-name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome da aplicação Okta que você usa para autenticar a conexão com o Amazon Redshift. 

Esse parâmetro é opcional.

## ApplicationName
<a name="jdbc20-applicationname-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

O nome da aplicação a ser passado ao Amazon Redshift para fins de auditoria. 

Esse parâmetro é opcional.

## AuthProfile
<a name="jdbc20-authprofile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do perfil de autenticação a ser usado para conexão com o Amazon Redshift. 

Esse parâmetro é opcional.

## AutoCreate
<a name="jdbc20-autocreate-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Esta opção especifica se o driver faz com que um novo usuário seja criado quando o usuário especificado não existe. 

Esse parâmetro é opcional.

**verdadeiro**  
Se o usuário especificado por `DBUser` ou ID exclusivo (UID) não existir, um novo usuário com esse nome será criado.

**false**  
O driver não faz com que novos usuários sejam criados. Se o usuário especificado não existir, a autenticação falhará.

## Client\$1ID
<a name="jdbc20-client_id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID do cliente a ser usado ao autenticar a conexão usando o serviço Azure AD. 

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## Client\$1Secret
<a name="jdbc20-client_secret-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O Segredo do cliente a ser usado ao autenticar a conexão usando o serviço Azure AD. 

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## ClusterID
<a name="jdbc20-clusterid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do cluster do Amazon Redshift ao qual você quer se conectar. O driver tenta detectar esse parâmetro a partir de um determinado host. Se você estiver usando um Network Load Balancer (NLB) e se conectando via IAM, o driver não conseguirá detectá-lo, por isso é possível configurá-lo usando essa opção de conexão. 

Esse parâmetro é opcional.

## Compactação
<a name="jdbc20-compression-option"></a>
+ **Valor padrão**: desativado
+ **Tipo de dados** – String

O método de compactação usado na comunicação via protocolo com fio entre o servidor do Amazon Redshift e o cliente ou o driver.

Esse parâmetro é opcional.

Especifique os seguintes valores:
+ **lz4**

  Define o método de compactação usado na comunicação via protocolo com fio com o Amazon Redshift como lz4.
+ **off**

  Não usa a compactação na comunicação via protocolo com fio com o Amazon Redshift.

## connectTimeout
<a name="jdbc20-connecttimeout-option"></a>
+ **Valor padrão** – 10
+ **Tipo de dados**: inteiro

O valor de tempo limite a ser usado para operações de conexão de soquete. Se o tempo necessário para estabelecer uma conexão do Amazon Redshift exceder esse valor, a conexão será considerada indisponível. O tempo limite é especificado em segundos. O valor 0 significa que nenhum tempo limite foi especificado.

Esse parâmetro é opcional.

## connectionTimezone
<a name="jdbc20-connecttimezone-option"></a>
+ **Valor padrão**: LOCAL
+ **Tipo de dados** – String

O fuso horário no nível da sessão.

Esse parâmetro é opcional.

Especifique os seguintes valores:

**LOCAL**  
Configura o fuso horário no nível da sessão para o fuso horário JVM LOCAL.

**SERVER**  
Configura o fuso horário no nível da sessão de acordo com o fuso horário definido para o usuário no servidor Amazon Redshift. Você pode configurar fusos horários no nível da sessão para usuários com o seguinte comando:  

```
ALTER USER
[...]
SET TIMEZONE TO [...];
```

## databaseMetadataCurrentDbOnly
<a name="jdbc20-databasemetadatacurrentdbonly-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booleano

Esta opção especifica se a API de metadados recupera dados de todos os bancos de dados acessíveis ou somente do banco de dados conectado. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**verdadeiro**  
A aplicação recupera metadados de um único banco de dados.

**false**  
A aplicação recupera metadados de todos os bancos de dados acessíveis.

## DbUser
<a name="jdbc20-dbuser-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID de usuário a ser usado com sua conta do Amazon Redshift. Você pode usar um ID que não existe no momento se você tiver habilitado a propriedade AutoCreate. 

Esse parâmetro é opcional.

## DbGroups
<a name="jdbc20-dbgroups-option"></a>
+ **Valor padrão** – PUBLIC
+ **Tipo de dados** – String

Uma lista separada por vírgulas de nomes de grupos de bancos de dados existentes que `DBUser` ingressa à sessão atual. 

Esse parâmetro é opcional.

## DBNAME
<a name="jdbc20-dbname-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

É o nome do banco de dados ao qual se conectar. Você pode usar essa opção para especificar o nome do banco de dados na URL da conexão JDBC. 

Esse parâmetro é obrigatório. Você deve especificar o nome do banco de dados, na URL da conexão ou nas propriedades de conexão da aplicação cliente.

## defaultRowFetchSize
<a name="jdbc20-defaultrowfetchsize-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

Esta opção especifica um valor padrão para getFetchSize. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**0**  
Obtém todas as linhas em uma única operação.

**Inteiro positivo**  
Número de linhas a serem obtidas do banco de dados para cada iteração de busca do ResultSet.

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **Valor padrão** – False
+ **Tipo de dados**: booleano

Esta opção especifica se o driver envia uma nova consulta de banco de dados ao usar o método Connection.isValid() para determinar se a conexão de banco de dados está ativa. 

Esse parâmetro é opcional.

**verdadeiro**  
O driver não envia uma consulta ao usar Connection.isValid() para determinar se a conexão de banco de dados está ativa. Isso pode fazer com que o driver identifique incorretamente a conexão de banco de dados como ativa se o servidor de banco de dados foi encerrado inesperadamente.

**false**  
O driver envia uma consulta ao usar Connection.isValid() para determinar se a conexão de banco de dados está ativa.

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booleano

Esta opção especifica que o driver obtém linhas usando um buffer de anel em um thread separado. O parâmetro fetchRingBufferSize especifica o tamanho do buffer do anel. 

O buffer em anel implementa o gerenciamento automático de memória no JDBC para evitar erros de falta de memória (OOM) durante as operações de recuperação de dados. O buffer em anel monitora o tamanho real dos dados armazenados em buffer em tempo real, garantindo que o uso total da memória pelo driver permaneça dentro dos limites definidos. Quando a capacidade do buffer é atingida, o driver pausa as operações de busca de dados, evitando o estouro da memória sem exigir intervenção manual. Essa proteção integrada elimina erros de OOM automaticamente, sem a necessidade de configuração dos usuários.

Se uma transação detectar uma instrução que contém vários comandos SQL separados por pontos e vírgulas, o buffer circular de busca dessa transação será definido como false. O valor de enableFetchRingBuffer não muda. 

Esse parâmetro é opcional.

**nota**  
Quando o buffer em anel está desabilitado e o tamanho da busca não está configurado corretamente, podem ocorrer problemas de falta de memória (OOM). Para acessar mais informações sobre como configurar o tamanho da busca, consulte [aqui](https://docs.aws.amazon.com/redshift/latest/dg/set-the-JDBC-fetch-size-parameter.html).

## enableMultiSqlSupport
<a name="jdbc20-enablemultisqlsupport-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booleano

Esta opção especifica se deseja processar vários comandos SQL separados por ponto-e-vírgula em uma instrução. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**verdadeiro**  
O driver processa vários comandos SQL, separados por ponto-e-vírgula, em um objeto de instrução.

**false**  
O driver retorna um erro para vários comandos SQL em uma única instrução.

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **Valor padrão** – 1G
+ **Tipo de dados** – String

Esta opção especifica o tamanho do buffer de anel usado ao buscar o conjunto de resultados. Você pode especificar um tamanho em bytes, por exemplo, 1K para 1 KB, 5000 para 5.000 bytes, 1M para 1 MB, 1G para 1 GB e assim por diante. Você também pode especificar uma porcentagem de memória de heap. O driver para de buscar linhas ao atingir o limite. A busca é retomada quando a aplicação lê linhas e libera espaço no buffer de anel. 

Esse parâmetro é opcional.

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Esta opção especifica se o driver coloca em minúsculas todos os grupos de banco de dados (DbGroups) enviados do provedor de identidades para o Amazon Redshift ao usar a autenticação única. 

Esse parâmetro é opcional.

**verdadeiro**  
O driver coloca em minúsculas todos os grupos de banco de dados que são enviados do provedor de identidades.

**false**  
O driver não altera grupos de banco de dados.

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Essa opção especifica se grupos de IDP do Amazon Redshift serão usados ou não. Isso é compatível com a API GetClusterCredentialsV2. 

Esse parâmetro é opcional.

**verdadeiro**  
Use grupos de provedores de identidade (IDP) do Amazon Redshift.

**false**  
Use a API STS e GetClusterCredentials para federação de usuários e especifique explicitamente DbGroups para a conexão.

## HOST
<a name="jdbc20-host-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

O nome de host do servidor do Amazon Redshift ao qual se conectar. Você pode usar essa opção para especificar o nome de host na URL da conexão JDBC. 

Esse parâmetro é obrigatório. Você deve especificar o nome do host, na URL da conexão ou nas propriedades de conexão da aplicação cliente.

## IAMDisableCache
<a name="jdbc20-iamdisablecache-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Essa opção especifica se as credenciais do IAM são armazenadas em cache.

Esse parâmetro é opcional.

**verdadeiro**  
As credenciais do IAM não são armazenadas em cache.

**false**  
As credenciais do IAM são armazenadas em cache. Isso melhora a performance quando solicitações para o API Gateway são limitadas, por exemplo.

## IAMDuration
<a name="jdbc20-iamduration-option"></a>
+ **Valor padrão** – 900
+ **Tipo de dados**: inteiro

O período de tempo, em segundos, até que as credenciais temporárias do IAM expirem. 
+ **Valor mínimo** – 900
+ **Valor máximo ** – 3,600

Esse parâmetro é opcional.

## Idc\$1Client\$1Display\$1Name
<a name="jdbc20-idc_client_display_name"></a>
+ **Valor padrão**: driver JDBC do Amazon Redshift
+ **Tipo de dados** – String

O nome de exibição a ser usado para o cliente que está usando o BrowserIdcAuthPlugin.

Esse parâmetro é opcional.

## Idc\$1Region
<a name="jdbc20-idc_region"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A região AWS onde a instância do IAM Identity Center está localizada.

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração plugin\$1name.

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O host IdP (provedor de identidades) que você está usando para autenticar no Amazon Redshift. Isso pode ser especificado na string de conexão ou em um perfil. 

Esse parâmetro é opcional.

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Especifica a partição na nuvem em que o provedor de identidades (IdP) está configurado. Isso determina a qual endpoint de autenticação do IdP o driver se conecta.

Se esse parâmetro for deixado em branco, o driver usará como padrão a partição comercial. Os valores possíveis são:
+  `us-gov`: use este valor se seu IdP estiver configurado no Azure Government. Por exemplo, o Azure AD Government usa o endpoint `login.microsoftonline.us`.
+  `cn`: use este valor se seu IdP estiver configurado na partição de nuvem da China. Por exemplo, o Azure AD China usa o endpoint `login.chinacloudapi.cn`. 

Esse parâmetro é opcional.

## IdP\$1Port
<a name="jdbc20-idp_port-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A porta usada por um IdP (provedor de identidades). Você pode especificar a porta na string da conexão ou em um perfil. A porta padrão é 5439. Dependendo da porta selecionada ao criar, modificar ou migrar o cluster, permita o acesso à porta selecionada. 

Esse parâmetro é opcional.

## IdP\$1Tenant
<a name="jdbc20-idp_tenant-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID de locatário do Azure AD para sua aplicação Amazon Redshift. 

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## IdP\$1Response\$1Timeout
<a name="jdbc20-idp_response_timeout-option"></a>
+ **Valor padrão** – 120
+ **Tipo de dados**: inteiro

A quantidade de tempo, em segundos, que o driver aguarda pela resposta SAML do provedor de identidades ao usar os serviços SAML ou Azure AD por meio de um plug-in de navegador. 

Esse parâmetro é opcional.

## iniFile
<a name="jdbc20-inifile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O caminho completo do arquivo .ini, incluindo o nome do arquivo. Por exemplo:

```
IniFile="C:\tools\rsjdbc.ini"
```

Para obter informações sobre o arquivo .ini, consulte [Criar arquivos de inicialização (.ini) para o driver JDBC versão 2.x](jdbc20-ini-file.md).

Esse parâmetro é opcional.

## IniSection
<a name="jdbc20-inisection-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de uma seção no arquivo.ini que contém as opções de configuração. Para obter informações sobre o arquivo .ini, consulte [Criar arquivos de inicialização (.ini) para o driver JDBC versão 2.x](jdbc20-ini-file.md). 

O exemplo a seguir especifica a seção [Prod] do arquivo.ini:

```
IniSection="Prod"
```

Esse parâmetro é opcional.

## isServerless
<a name="jdbc20-isserverless-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Essa opção especifica se o host do endpoint do Amazon Redshift é uma instância com tecnologia sem servidor. O driver tenta detectar esse parâmetro a partir de um determinado host. Se você estiver usando um Network Load Balancer (NLB), o driver não conseguirá detectá-lo, então é possível configurá-lo aqui. 

Esse parâmetro é opcional.

**verdadeiro**  
O host do endpoint do Amazon Redshift é uma instância com tecnologia sem servidor.

**false**  
O host do endpoint do Amazon Redshift é um cluster provisionado.

## Issuer\$1Url
<a name="jdbc20-issuer-url"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Aponta para o endpoint da instância do servidor do Centro de Identidade do AWS IAM. 

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração plugin\$1name.

## Listen\$1Port
<a name="jdbc20-listen-port"></a>
+ **Valor padrão** – 7890
+ **Tipo de dados**: inteiro

A porta que o driver usa para receber a resposta SAML do provedor de identidades ou o código de autorização ao usar os serviços SAML, Azure AD ou Centro de Identidade do AWS IAM por meio de um plug-in do navegador.

Esse parâmetro é opcional.

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A URL do recurso no site do provedor de identidades ao usar os serviços SAML ou Azure AD por meio de um plug-in do navegador. 

Esse parâmetro é necessário se autenticar com os serviços SAML ou Azure AD por meio de um plug-in de navegador.

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O número de segundos a aguardar antes de atingir o tempo limite ao conectar e autenticar no servidor. Se o tempo para estabelecer a conexão for maior do que esse limite, a conexão é cancelada. 

Quando esta propriedade é definida como 0, as conexões não atingem o tempo limite.

Esse parâmetro é opcional.

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **Valor padrão** – `urn:amazon:webservices`
+ **Tipo de dados** – String

A relação de confiança de parte confiável que você deseja usar para o tipo de autenticação do AD FS. 

Esse parâmetro é opcional.

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

Use essa propriedade para ativar ou desativar o registro em logs no driver e especificar a quantidade de detalhes incluídos nos arquivos de log. 

Habilite o registro em log somente o tempo suficiente para capturar um problema. O registro em log diminui a performance e pode consumir uma grande quantidade de espaço em disco.

Esse parâmetro é opcional.

Defina o parâmetro com um dos seguintes valores:

**0**  
Desative todos os registros em log.

**1**  
Habilita o registro em logs no nível FATAL, que registra eventos de erro muito graves que levarão o driver a anular.

**2**  
Habilita o registro em logs no nível ERROR, que registra eventos de erro que ainda permitem que o driver continue sendo executado.

**3**  
Habilite o log no nível WARNING, que registra eventos que podem resultar em um erro se a ação não for executada.

**4**  
Habilita o registro em logs no nível INFO, que registra informações gerais que descrevem o progresso do driver.

**5**  
Habilita o registro em logs no nível DEBUG, que registra informações detalhadas que sejam úteis para depurar o driver.

**6**  
Habilita o registro em log no nível TRACE, que registra todas as atividades do driver.

Quando o registro em log está habilitado, o driver produz os seguintes arquivos de log no local especificado na propriedade `LogPath`:
+ ** `redshift_jdbc.log`** – Arquivo que registra a atividade do driver que não é específica para uma conexão.
+ **`redshift_jdbc_connection_[Number].log`** — Arquivo para cada conexão feita com o banco de dados, onde `[Number]` é um número que distingue cada arquivo de log dos outros. Este arquivo registra a atividade do driver que é específica para a conexão. 

Se o valor LogPath for inválido, o driver envia as informações registradas para o fluxo de saída padrão, `System.out`.

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **Valor padrão** – O diretório de trabalho atual.
+ **Tipo de dados** – String

O caminho completo para a pasta onde o driver salva arquivos de log quando a propriedade DSILogLevel está habilitada. 

Para ter certeza de que o URL de conexão é compatível com todas as aplicações JDBC, recomendamos que você escape as barras invertidas (\$1) no caminho do arquivo digitando outra barra invertida.

Esse parâmetro é opcional.

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **Valor padrão**: null
+ **Tipo de dados**: inteiro

Esta opção especifica se o tipo de consulta usado em chamadas de getTables deve ser substituído.

**0**  
Nenhuma consulta universal de esquema

**1**  
Consulta de esquema local

**2**  
Consulta de esquema externo

Esse parâmetro é opcional.

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O valor SPID (ID do provedor de serviços) do parceiro a ser usado ao autenticar a conexão usando o serviço PingFederate. 

Esse parâmetro é opcional.

## Senha
<a name="jdbc20-password-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Ao se conectar usando a autenticação do IAM por meio de um IDP, essa é a senha do servidor IDP\$1Host. Ao usar a autenticação padrão, isso pode ser usado para a senha do banco de dados do Amazon Redshift em vez de PWD. 

Esse parâmetro é opcional.

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de classe totalmente qualificado para implementar um plugin de provedor de credenciais específico. 

Esse parâmetro é opcional.

Algumas opções compatíveis estão listadas:
+ **`AdfsCredentialsProvider`** – Serviço de Federação do Active Directory.
+ **`AzureCredentialsProvider`** – Serviço Microsoft Azure Active Directory (AD).
+ **`BasicJwtCredentialsProvider`** – Serviço JSON Web Tokens (JWT)
+ **`BasicSamlCredentialsProvider`** – credenciais de Security Assertion Markup Language (SAML) que você pode usar com muitos provedores de serviços SAML.
+ **`BrowserAzureCredentialsProvider`** – navegador do Serviço Microsoft Azure Active Directory (AD).
+ **`BrowserAzureOAuth2CredentialsProvider` ** – navegador do Serviço Microsoft Azure Active Directory (AD) para autenticação nativa.
+ **`BrowserIdcAuthPlugin`**: um plug-in de autorização que usa o Centro de Identidade do AWS IAM.
+ **`BrowserSamlCredentialsProvider`** – navegador SAML para serviços SAML como Okta, Ping ou ADFS.
+ **`IdpTokenAuthPlugin`**: um plug-in de autorização que aceita um token do Centro de Identidade do AWS IAM ou tokens de identidade baseados em JSON (JWT) do OpenID Connect (OIDC) de qualquer provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM.
+ **`OktaCredentialsProvider`** – serviço do Okta.
+ **`PingCredentialsProvider`** – serviço do PingFederate.

## PORT
<a name="jdbc20-port-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados**: inteiro

A porta do servidor do Amazon Redshift ao qual se conectar. Você pode usar essa opção para especificar a porta na URL da conexão JDBC. 

Esse parâmetro é opcional.

## Preferred\$1Role
<a name="jdbc20-preferred_role-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A função do IAM que você deseja assumir durante a conexão com o Amazon Redshift. 

Esse parâmetro é opcional.

## Perfil
<a name="jdbc20-profile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do perfil a ser usado para autenticação do IAM. Este perfil contém quaisquer propriedades de conexão adicionais não especificadas na cadeia de conexão. 

Esse parâmetro é opcional.

## PWD
<a name="jdbc20-pwd-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A senha correspondente ao nome de usuário do Amazon Redshift que você forneceu usando o UID da propriedade. 

Esse parâmetro é opcional.

## queryGroup
<a name="jdbc20-querygroup-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

Esta opção atribui uma consulta a uma fila em tempo de execução atribuindo sua consulta ao grupo de consulta apropriado. O grupo de consulta está definido para a sessão. Todas as consultas que são executadas na conexão pertencem a esse grupo de consultas. 

Esse parâmetro é opcional.

## readOnly
<a name="jdbc20-readonly-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Essa propriedade especifica se o driver está em modo somente leitura. 

Esse parâmetro é opcional.

**verdadeiro**  
A conexão está no modo somente leitura e não pode gravar no armazenamento de dados.

**false**  
A conexão não está no modo somente leitura e pode gravar no armazenamento de dados.

## Região
<a name="jdbc20-region-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

Esta opção especifica a opção da região da AWS em que o cluster está localizado. Se você especificar a opção StsEndPoint, a opção Região será ignorada. A operação de API `GetClusterCredentials` do Redshift também usa a opção Região. 

Esse parâmetro é opcional.

## reWriteBatchedInserts
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booleano

Esta opção permite a otimização para reescrever e combinar instruções INSERT compatíveis em lotes. 

Esse parâmetro é opcional.

## reWriteBatchedInsertsSize
<a name="jdbc20-rewritebatchedinsertssize-option"></a>
+ **Valor padrão** – 128
+ **Tipo de dados**: inteiro

Esta opção permite a otimização para reescrever e combinar instruções INSERT compatíveis em lotes. Este valor deve aumentar exponencialmente na potência de 2. 

Esse parâmetro é opcional.

## roleArn
<a name="jdbc20-rolearn-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do recurso da Amazon (ARN) da função. Certifique-se de especificar esse parâmetro ao especificar BasicJwtCredentialsProvider para a opção Plugin\$1Name. Especifique o ARN no seguinte formato: 

`arn:partition:service:region:account-id:resource-id`

Esse parâmetro será necessário se você especificar BasicJwtCredentialsProvider para a opção Plugin\$1Name.

## roleSessionName
<a name="jdbc20-roleaessionname-option"></a>
+ **Valor padrão**: jwt\$1redshift\$1session
+ **Tipo de dados** – String

Um identificador para a sessão de função assumida. Normalmente, você passa o nome ou identificador que está associado ao usuário da aplicação. As credenciais de segurança temporárias que o aplicativo usa estão associadas a esse usuário. É possível especificar esse parâmetro quando você especificar BasicJwtCredentialsProvider para a opção Plugin\$1Name. 

Esse parâmetro é opcional.

## scope
<a name="jdbc20-scope-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Uma lista separada por espaços de escopos com os quais o usuário pode consentir. Você especifica esse parâmetro para que sua aplicação do Microsoft Azure possa obter consentimento para APIs que você deseja chamar. É possível especificar esse parâmetro ao especificar BrowserAzureOAuth2CredentialsProvider para a opção Plugin\$1Name. 

Esse parâmetro é obrigatório para o plug-in BrowserAzureOAuth2CredentialsProvider.

## SecretAccessKey
<a name="jdbc20-secretaccesskey-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A chave de acesso do IAM para o usuário ou função. Se for especificado, AccessKeyID também deve ser especificado. Se for transmitido no URL de JDBC, o SecretAccessKey deverá ser codificado por URL. 

Esse parâmetro é opcional.

## SessionToken
<a name="jdbc20-sessiontoken-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O token temporário de sessão do IAM associado à função do IAM que você está usando para autenticar. Se for passado no URL de JDBC, o token de sessão temporário do IAM deverá ser codificado por URL. 

Esse parâmetro é opcional.

## serverlessAcctId
<a name="jdbc20-serverlessacctid-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

O ID da conta do Amazon Redshift Serverless. O driver tenta detectar esse parâmetro a partir de um determinado host. Se você estiver usando um Network Load Balancer (NLB), o driver não conseguirá detectá-lo, então é possível configurá-lo aqui. 

Esse parâmetro é opcional.

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

O nome do grupo de trabalho do Amazon Redshift Serverless. O driver tenta detectar esse parâmetro a partir de um determinado host. Se você estiver usando um Network Load Balancer (NLB), o driver não conseguirá detectá-lo, então é possível configurá-lo aqui. 

Esse parâmetro é opcional.

## socketFactory
<a name="jdbc20-socketfactory-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

Esta opção especifica uma fábrica de soquetes para criação de soquetes. 

Esse parâmetro é opcional.

## socketTimeout
<a name="jdbc20-sockettimeout-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O número de segundos de espera nas operações de leitura de um soquete antes de se atingir o tempo limite. Se a operação demorar mais do que esse limite, a conexão será fechada. Quando esta propriedade é definida como 0, a conexão não atinge o tempo limite. 

Esse parâmetro é opcional.

## SSL
<a name="jdbc20-ssl-option"></a>
+ **Valor padrão**: TRUE
+ **Tipo de dados** – String

Use esta propriedade para ativar ou desativar o SSL para a conexão. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**TRUE**  
O driver se conecta ao servidor por meio de SSL.

**FALSE**  
O driver se conecta ao servidor sem usar SSL. Essa opção não é compatível com a autenticação do IAM.

Você também pode configurar a propriedade AuthMech.

## SSL\$1Insecure
<a name="jdbc20-ssl_insecure-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados** – String

Esta propriedade indica se o certificado de servidor de hosts IDP deve ser verificado.

Esse parâmetro é opcional.

Especifique os seguintes valores:

**verdadeiro**  
O driver não verifica a autenticidade do certificado do servidor IDP.

**false**  
O driver verifica a autenticidade do certificado do servidor IDP.

## SSLCert
<a name="jdbc20-sslcert-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O caminho completo de um arquivo .pem ou .crt que contém certificados CA confiáveis adicionais para verificar a instância do servidor Amazon Redshift do quando o SSL for usado. 

Este parâmetro é necessário se SSLKey for especificado.

## SSLFactory
<a name="jdbc20-sslfactory-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A fábrica SSL a ser usada ao se conectar ao servidor por meio de TLS/SSL sem usar um certificado de servidor. 

## SSLkey
<a name="jdbc20-sslkey-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O caminho completo do arquivo .der que contém o arquivo de chave PKCS8 para verificar os certificados especificados em SSLCert. 

Este parâmetro é necessário se SSLCert for especificado.

## SSLMode
<a name="jdbc20-sslmode-option"></a>
+ **Valor padrão** – verify-ca
+ **Tipo de dados** – String

Use essa propriedade para especificar como o driver valida certificados quando TLS/SSL está habilitado. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**verify-ca**  
O driver verifica se o certificado vem de uma autoridade de certificação (CA) confiável.

**verify-full**  
O controlador verifica se o certificado vem de uma AC fidedigna e se o nome de host no certificado corresponde ao nome de host especificado na URL de ligação.

## SSLPassword
<a name="jdbc20-sslpassword-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados** – String

A senha para o arquivo de chave criptografada especificado em SSLKey. 

Esse parâmetro é necessário se SSLKey for especificado e o arquivo de chave for criptografado.

## SSLRootCert
<a name="jdbc20-sslrootcert-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O caminho completo de um arquivo .pem ou .crt que contém o certificado CA raiz que verificará a instância do Amazon Redshift Server do quando o SSL for usado. 

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **Valor padrão**: null
+ **Tipo de dados** – String

É possível especificar um endpoint AWS Security Token Service (AWS STS). Se você especificar essa opção, a opção Região será ignorada. Você só pode especificar um protocolo seguro (HTTPS) para esse endpoint. 

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **Valor padrão**: TRUE
+ **Tipo de dados** – String

Use essa propriedade para ativar ou desativar keepalives TCP. 

Esse parâmetro é opcional.

Especifique os seguintes valores:

**TRUE**  
O driver usa keepalives TCP para evitar que o tempo limite das conexões se esgote.

**FALSE**  
O driver não usa keepalives TCP.

## token
<a name="jdbc20-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O Centro de Identidade do AWS IAM forneceu um token de acesso ou um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM. A aplicação deve gerar esse token autenticando o usuário da aplicação com o Centro de Identidade do AWS IAM ou um provedor de identidades vinculado ao Centro de Identidade do AWS IAM. 

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O tipo de token que está sendo usado no `IdpTokenAuthPlugin`.

Especifique os seguintes valores:

**ACCESS\$1TOKEN**  
Insira se você usar um token de acesso fornecido pelo Centro de Identidade do AWS IAM.

**EXT\$1JWT**  
Insira se você usar um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades baseado na web integrado ao Centro de Identidade do AWS IAM.

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## UID
<a name="jdbc20-uid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de usuário do banco de dados que você usa para acessar o banco de dados.

Esse parâmetro é obrigatório.

## Usuário
<a name="jdbc20-user-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Ao se conectar usando a autenticação do IAM por meio de um IdP, esse é o nome de usuário do servidor idp\$1host. Ao usar a autenticação padrão, você pode usá-lo como nome de usuário do banco de dados do Amazon Redshift. 

Esse parâmetro é opcional.

## webIdentityToken
<a name="jdbc20-webidentitytoken-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O token de acesso OAuth 2.1 ou token OpenID Connect ID fornecido pelo provedor de identidades. Sua aplicação deve obter esse token autenticando o usuário da sua aplicação com um provedor de identidades da web. Certifique-se de especificar esse parâmetro ao especificar BasicJwtCredentialsProvider para a opção Plugin\$1Name. 

Esse parâmetro será necessário se você especificar BasicJwtCredentialsProvider para a opção Plugin\$1Name.

# Versões anteriores do driver JDBC versão 2.x
<a name="jdbc20-previous-driver-version-20"></a>

Baixe uma versão anterior do driver JDBC versão 2.x do Amazon Redshift somente se sua ferramenta exigir uma versão específica do driver. 

Estes são os drivers anteriores da versão 2.x do driver JDBC compatíveis com JDBC 4.2:
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) 

# Conector Python do Amazon Redshift
<a name="python-redshift-driver"></a>

Ao usar o conector Amazon Redshift para Python, é possível integrar o trabalho com [o AWS SDK para Python (Boto3)](https://github.com/boto/boto3) e também pandas e Python numéricos (NumPy). Para obter mais informações, consulte o [repositório de pandas no GitHub](https://github.com/pandas-dev/pandas). Para obter mais informações sobre o NumPy, consulte o [repositório do NumPy no GitHub](https://github.com/numpy/numpy). 

O conector Python do Amazon Redshift oferece uma solução de código aberto. É possível navegar pelo código-fonte, solicitar aprimoramentos, relatar problemas e fornecer contribuições. 

Para usar o conector Python do Amazon Redshift, verifique se tem o Python versão 3.6 ou posterior. Para obter mais informações, consulte o [Contrato de licença do driver do Amazon Redshift Python](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

O conector Python do Amazon Redshift oferece:
+ AWS Identity and Access ManagementAutenticação do (IAM). Para obter mais informações, consulte [Gerenciamento de Identidade e Acesso no Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Autenticação do provedor de identidade usando acesso à API federada. O acesso à API federada é compatível com provedores de identidade corporativa, tais como:
  + Azure AD. Para obter mais informações, consulte a publicação no blog AWS Big Data [Federate Amazon Redshift access with Microsoft Azure AD single sign-on](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/).
  + Serviços de Federação do Active Directory. Para obter mais informações, consulte a publicação no blog AWS Big Data [Federate access to your Amazon Redshift cluster with Active Directory Federation Services (AD FS): Part 1](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/). 
  + Okta. Para obter mais informações, consulte a publicação no blog AWS Big Data [Federate Amazon Redshift access with Okta as an identity provider](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/).
  + PingFederate. Para obter mais informações, consulte o site do [PingFederate](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Para obter mais informações, consulte o [site do JumpCloud](https://jumpcloud.com/).
+ Tipo de dados do Amazon Redshift.

O conector Python do Amazon Redshift implementa o Python Database API Specification 2.0. Para obter mais informações, consulte [PEP 249—Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/) no site da Python.

**Topics**
+ [Instalar o conector Python do Amazon Redshift](python-driver-install.md)
+ [Opções de configuração para o conector Python do Amazon Redshift](python-configuration-options.md)
+ [Importar o conector Python](python-start-import.md)
+ [Integrar o conector Python ao NumPy](python-connect-integrate-numpy.md)
+ [Integrar o conector Python a pandas](python-connect-integrate-pandas.md)
+ [Usar plugins do provedor de identidade](python-connect-identity-provider-plugins.md)
+ [Exemplos de uso do conector Python do Amazon Redshift](python-connect-examples.md)
+ [Referência de API para o conector Python do Amazon Redshift](python-api-reference.md)

# Instalar o conector Python do Amazon Redshift
<a name="python-driver-install"></a>

Utilize qualquer um dos métodos a seguir para instalar o conector Python do Amazon Redshift:
+ Python Package Index (PyPI)
+ Conda
+ Clonar o repositório do GitHub

## Instalar o conector Python pelo PyPI
<a name="python-pip-install-pypi"></a>

Para instalar o conector Python so Python Package Index (PyPI), você pode usar o pip. Para fazer isso, execute o comando a seguir.

```
>>> pip install redshift_connector
```

É possível instalar o conector em um ambiente virtual. Para fazer isso, execute o comando a seguir.

```
>>> pip install redshift_connector
```

Opcionalmente, você pode instalar pandas e NumPy com o conector.

```
>>> pip install 'redshift_connector[full]'
```

Para obter mais informações sobre o pip, consulte o [site do pip](https://pip.pypa.io/en/stable/).

## Instalar o conector Python pelo Conda
<a name="python-pip-install-from-conda"></a>

Você pode instalar o conector Python pelo Anaconda.org.

```
>>>conda install -c conda-forge redshift_connector
```

## Instalar o conector Python clonando o repositório GitHub da AWS
<a name="python-pip-install-from-source"></a>

Para instalar o conector Python a partir da origem, clone o repositório GitHub da AWS. Depois de instalar o Python e o virtualenv, configure o ambiente e instale as dependências necessárias executando os comandos a seguir.

```
$ git clone https://github.com/aws/amazon-redshift-python-driver.git
$ cd amazon-redshift-python-driver
$ virtualenv venv
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install redshift_connector
```

# Opções de configuração para o conector Python do Amazon Redshift
<a name="python-configuration-options"></a>

A seguir, você encontra descrições para as opções que podem ser especificadas para conector Python do Amazon Redshift. As opções abaixo se aplicam à versão mais recente do conector disponível, a menos que especificado de outra forma.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID de chave de acesso da função do IAM ou o usuário do IAM configurado para autenticação do banco de dados do IAM. 

Esse parâmetro é opcional.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Verdadeiro  
Especifica que o conector usa o valor `DbUser` da declaração Security Assertion Markup Language (SAML).

Falso  
Especifica que o valor no parâmetro de conexão `DbUser` é usado.

Esse parâmetro é opcional.

## app\$1name
<a name="python-app-name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome da aplicação do provedor de identidade (IdP) usado para autenticação. 

Esse parâmetro é opcional.

## application\$1name
<a name="python-application_name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome da aplicação a ser passado ao Amazon Redshift para fins de auditoria. O nome da aplicação que fornecido aparece na coluna “application\$1name” da tabela [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Isso ajuda a rastrear e solucionar problemas de fontes de conexão ao depurar problemas.

Esse parâmetro é opcional.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome de um perfil de autenticação do Amazon Redshift com propriedades de conexão como JSON. Para obter mais informações sobre como nomear parâmetros de conexão, consulte a classe `RedshiftProperty`. A classe `RedshiftProperty` armazena parâmetros de conexão fornecidos pelo usuário final e, se aplicável, gerados durante o processo de autenticação do IAM (por exemplo, credenciais temporárias do IAM). Para obter mais informações, consulte a [classe RedShiftProperty](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9). 

Esse parâmetro é opcional.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Um valor que indica se é necessário criar o usuário, caso o usuário não exista. 

Esse parâmetro é opcional.

## client\$1id
<a name="python-client-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID do cliente do Azure IdP. 

Esse parâmetro é opcional.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O segredo do cliente do Azure IdP. 

Esse parâmetro é opcional.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O identificador de clusters do cluster do Amazon Redshift. 

Esse parâmetro é opcional.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O IdP usado para autenticação com o Amazon Redshift. Estes são valores válidos: 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin`: um plug-in de autorização que usa o Centro de Identidade do AWS IAM.
+ `BrowserSamlCredentialsProvider`
+ AWS: um plug-in de autorização que aceita um token do Centro de Identidade do AWS IAM ou tokens de identidade baseados em JSON (JWT) do OpenID Connect (OIDC) de qualquer provedor de identidades da web vinculado ao Centro de Identidade do `IdpTokenAuthPlugin` IAM.
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Esse parâmetro é opcional.

## banco de dados
<a name="python-database-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do banco de dados ao qual deseja se conectar. 

Esse parâmetro é obrigatório.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booliano

Um valor que indica se uma aplicação oferece suporte a catálogos de unidades de compartilhamento de dados de vários bancos de dados. O valor padrão True indica que a aplicação não oferece suporte a catálogos de unidades de compartilhamento de dados de vários bancos de dados para compatibilidade com versões anteriores. 

Esse parâmetro é opcional.

## db\$1groups
<a name="python-db-groups-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

Uma lista separada por vírgulas de nomes de grupos de bancos de dados existentes que o usuário indicou pelo DbUser ingressa à sessão atual. 

Esse parâmetro é opcional.

## db\$1user
<a name="python-db-user-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID de usuário a ser usado com o Amazon Redshift. 

Esse parâmetro é opcional.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

A URL do endpoint do Amazon Redshift. Essa opção é apenas para uso interno da AWS. 

Esse parâmetro é opcional.

## group\$1federation
<a name="python-group-federation-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Essa opção especifica se grupos de IDP do Amazon Redshift serão usados ou não.

Esse parâmetro é opcional.

**true**  
Use grupos de provedores de identidade (IDP) do Amazon Redshift.

**false**  
Use a API STS e GetClusterCredentials para federação de usuários e especifique explicitamente os **db\$1groups** para a conexão.

## host
<a name="python-host-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome de host do cluster do Amazon Redshift. 

Esse parâmetro é opcional.

## iam
<a name="python-iam-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

A autenticação do IAM está habilitada. 

Esse parâmetro é obrigatório.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Essa opção especifica se as credenciais do IAM são armazenadas em cache. Por padrão, as credenciais do IAM são armazenadas em cache. Isso melhora a performance quando solicitações para o API Gateway têm controle de utilização. 

Esse parâmetro é opcional.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Valor padrão**: conector Python do Amazon Redshift
+ **Tipo de dados**: string

O nome de exibição a ser usado para o cliente que está usando o BrowserIdcAuthPlugin.

Esse parâmetro é opcional.

## idc\$1region
<a name="python-idc_region"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A região da AWS onde a instância do Centro de Identidade do AWS IAM está localizada.

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração credentials\$1provider.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Especifica a partição na nuvem em que o provedor de identidades (IdP) está configurado. Isso determina a qual endpoint de autenticação do IdP o driver se conecta.

Se esse parâmetro for deixado em branco, o driver usará como padrão a partição comercial. Os valores possíveis são:
+  `us-gov`: use este valor se seu IdP estiver configurado no Azure Government. Por exemplo, o Azure AD Government usa o endpoint `login.microsoftonline.us`.
+  `cn`: use este valor se seu IdP estiver configurado na partição de nuvem da China. Por exemplo, o Azure AD China usa o endpoint `login.chinacloudapi.cn`. 

Esse parâmetro é opcional.

## idpPort
<a name="python-idp-port-option"></a>
+ **Valor padrão** – 7890
+ **Tipo de dados**: inteiro

A porta de escuta para a qual o IdP envia a declaração SAML. 

Esse parâmetro é obrigatório.

## idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **Valor padrão** – 120
+ **Tipo de dados**: inteiro

O tempo limite para recuperar a declaração SAML do IdP. 

Esse parâmetro é obrigatório.

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O IdP locatário. 

Esse parâmetro é opcional.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 Aponta para o endpoint da instância do servidor do Centro de Identidade do AWS IAM. 

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Valor padrão** – 7890
+ **Tipo de dados**: inteiro

A porta que o driver usa para receber a resposta SAML do provedor de identidades ou o código de autorização ao usar os serviços SAML, Azure AD ou Centro de Identidade do AWS IAM por meio de um plug-in do navegador.

Esse parâmetro é opcional.

## login\$1url
<a name="python-login-url-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O URL de autenticação única para o IdP. 

Esse parâmetro é opcional.

## max\$1prepared\$1statations
<a name="python-max-prepared-statements-option"></a>
+ **Valor padrão** – 1000
+ **Tipo de dados**: inteiro

O número máximo de instruções preparadas que serão armazenadas em cache simultaneamente. Definir esse parâmetro como 0 desabilita o mecanismo de cache. A inserção de um número negativo para esse parâmetro o define como o valor padrão. 

Esse parâmetro é opcional.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Essa opção especifica se o conector converte valores do tipo dados numéricos de decimal.Decimal para float. Por padrão, o conector recebe valores do tipo dados numéricos como decimal.Decimal e não os converte. 

Não recomendamos habilitar numeric\$1to\$1float para casos de uso que exigem precisão, pois os resultados podem ser arredondados. 

Para obter mais informações sobre decimal.Decimal e as compensações entre ele e float, consulte [decimal — Aritmética de ponto fixo decimal e ponto flutuante](https://docs.python.org/3/library/decimal.html) no site do Python. 

Esse parâmetro é opcional.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID do Partner SP usado para autenticação com Ping. 

Esse parâmetro é opcional.

## password
<a name="python-password-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

A senha a ser usada para autenticação. 

Esse parâmetro é opcional.

## porta
<a name="python-port-option"></a>
+ **Valor padrão** – 5439
+ **Tipo de dados**: inteiro

O número da porta do cluster Amazon Redshift. 

Esse parâmetro é obrigatório.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

A função do IAM preferencial para a conexão atual. 

Esse parâmetro é opcional.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do recurso da Amazon (ARN) do usuário ou perfil do IAM para o qual você está gerando uma política. É recomendável anexar uma política a um perfil e, depois, anexar o perfil ao usuário, para acesso. 

Esse parâmetro é opcional.

## perfil
<a name="python-profile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome de um perfil em um arquivo de credenciais da AWS que contém credenciais da AWS. 

Esse parâmetro é opcional.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do provedor de autenticação nativa do Redshift. 

Esse parâmetro é opcional.

## region
<a name="python-region-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

A Região da AWS onde o cluster está localizado. 

Esse parâmetro é opcional.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do recurso da Amazon (ARN) da função que o autor da chamada deve assumir. Esse parâmetro é usado pelo provedor indicado por `JwtCredentialsProvider`. 

Para o provedor `JwtCredentialsProvider`, esse parâmetro é obrigatório. Senão, esse parâmetro é opcional.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Valor padrão**: jwt\$1redshift\$1session
+ **Tipo de dados**: string

Um identificador para a sessão de função assumida. Normalmente, você passa o nome ou identificador que está associado ao usuário que está usando a aplicação. As credenciais de segurança temporárias que o aplicativo usa estão associadas a esse usuário. Esse parâmetro é usado pelo provedor indicado por `JwtCredentialsProvider`. 

Esse parâmetro é opcional.

## scope
<a name="python-scope-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

Uma lista separada por espaços de escopos com os quais o usuário pode consentir. Você especifica esse parâmetro para que sua aplicação possa obter consentimento para APIs que você deseja chamar. É possível estipular esse parâmetro ao especificar BrowserAzureOAuth2CredentialsProvider para a opção credentials\$1provider.

Esse parâmetro é obrigatório para o plug-in BrowserAzureOAuth2CredentialsProvider.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

A chave de acesso secreta da função do IAM ou o usuário configurado para autenticação do banco de dados do IAM. 

Esse parâmetro é opcional.

## session\$1token
<a name="python-session-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID de chave de acesso da função do IAM ou o usuário do IAM configurado para autenticação do banco de dados do IAM. Esse parâmetro será necessário se as credenciais temporárias da AWS estiverem em uso. 

Esse parâmetro é opcional.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O ID da conta do Amazon Redshift Serverless.

Esse parâmetro é opcional.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do grupo de trabalho do Amazon Redshift Serverless.

Esse parâmetro é opcional.

## ssl
<a name="python-ssl-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booliano

O Secure Sockets Layer (SSL) está habilitado. 

Esse parâmetro é obrigatório.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Valor padrão**: false
+ **Tipo de dados**: booliano

Um valor que especifica se é necessário desabilitar a verificação do certificado SSL do servidor do host do IdP. Ao definir esse parâmetro como True, a verificação do certificado SSL do servidor do host do IdP será desabilitada. Recomendamos que você mantenha o valor padrão False em ambientes de produção.

Esse parâmetro é opcional.

## sslmode
<a name="python-sslmode-option"></a>
+ **Valor padrão**: verify-ca
+ **Tipo de dados**: string

A segurança da conexão com o Amazon Redshift. Você pode especificar qualquer um destes valores: 
+ verify-ca
+ verify-full

Esse parâmetro é obrigatório.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Valor padrão**: true
+ **Tipo de dados**: booliano

Se deseja usar keepalives de TCP para evitar que as conexões expirem. Especifique os seguintes valores:
+ True: o driver usará keepalives de TCP para evitar que o tempo limite das conexões se esgote.
+ False: o driver não usa keepalives de TCP.

Esse parâmetro é opcional.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Valor-padrão**: nenhum
+ **Tipo de dados**: inteiro

O número de sondagens não confirmadas a serem enviadas antes de considerar a conexão inativa. Por exemplo, definir o valor como 3 significa que o driver enviará 3 pacotes de keepalive sem resposta antes de determinar que a conexão não está mais ativa.

Se esse parâmetro não for especificado, o Amazon Redshift usará o valor padrão do sistema.

Esse parâmetro é opcional.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Valor-padrão**: nenhum
+ **Tipo de dados**: inteiro

O intervalo, em segundos, entre as sondagens de keepalive subsequentes, caso o driver não tenha recebido a confirmação da sondagem anterior. Se você especificar esse parâmetro, ele deve ser um inteiro positivo.

Se esse parâmetro não for especificado, o Amazon Redshift usará o valor padrão do sistema.

Esse parâmetro é opcional.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Valor-padrão**: nenhum
+ **Tipo de dados**: inteiro

A duração da inatividade, em segundos, após a qual o driver envia a primeira sondagem de keepalive. Por exemplo, definir o valor como 120 significa que o driver aguardará 2 minutos de inatividade antes de enviar o primeiro pacote de keepalive. Se você especificar esse parâmetro, ele deve ser um inteiro positivo. 

Se esse parâmetro não for especificado, o Amazon Redshift usará o valor padrão do sistema.

Esse parâmetro é opcional.

## timeout
<a name="python-timeout-option"></a>
+ **Valor-padrão**: nenhum
+ **Tipo de dados**: inteiro

O número de segundos antes de a conexão com o servidor atingir o tempo limite. 

Esse parâmetro é opcional.

## token
<a name="python-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O Centro de Identidade do AWS IAM forneceu um token de acesso ou um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM. A aplicação deve gerar esse token autenticando o usuário da aplicação com o Centro de Identidade do AWS IAM ou um provedor de identidades vinculado ao Centro de Identidade do AWS IAM. 

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O tipo de token que está sendo usado no `IdpTokenAuthPlugin`.

Especifique os seguintes valores:

**ACCESS\$1TOKEN**  
Insira se você usar um token de acesso fornecido pelo Centro de Identidade do AWS IAM.

**EXT\$1JWT**  
Insira se você usar um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades baseado na web integrado ao Centro de Identidade do AWS IAM.

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## usuário
<a name="python-user-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome do usuário a ser usado para autorização. 

Esse parâmetro é opcional.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O token de acesso OAuth 2.0 ou token OpenID Connect ID fornecido pelo provedor de identidade. Verifique se sua aplicação obtém esse token autenticando o usuário que está usando a aplicação com um provedor de identidade da Web. O provedor indicado por `JwtCredentialsProvider` usa este parâmetro. 

Para o provedor `JwtCredentialsProvider`, esse parâmetro é obrigatório. Senão, esse parâmetro é opcional.

# Importar o conector Python
<a name="python-start-import"></a>

Para importar o conector Python, execute o comando a seguir.

```
>>> import redshift_connector
```

Para se conectar a um cluster do Amazon Redshift usando credenciais da AWS, execute o comando a seguir.

```
conn = redshift_connector.connect(
    host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
    port=5439,
    database='dev',
    user='awsuser',
    password='my_password'
 )
```

# Integrar o conector Python ao NumPy
<a name="python-connect-integrate-numpy"></a>

A seguir, veja um exemplo de integração do conector Python ao NumPy.

```
>>>  import numpy
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set            
cursor.execute("select * from book")

result: numpy.ndarray = cursor.fetch_numpy_array()
print(result)
```

Veja os resultados a seguir.

```
[['One Hundred Years of Solitude' 'Gabriel García Márquez']
['A Brief History of Time' 'Stephen Hawking']]
```

# Integrar o conector Python a pandas
<a name="python-connect-integrate-pandas"></a>

A seguir, veja um exemplo de integração do conector Python a pandas.

```
>>> import pandas

#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set
cursor.execute("select * from book")
result: pandas.DataFrame = cursor.fetch_dataframe()
print(result)
```

# Usar plugins do provedor de identidade
<a name="python-connect-identity-provider-plugins"></a>

Para obter informações gerais sobre como usar plugins do provedor de identidade, consulte [Opções para fornecer credenciais do IAM](options-for-providing-iam-credentials.md). Para obter mais informações sobre o gerenciamento de identidades do IAM, incluindo práticas recomendadas para perfis do IAM, consulte [Gerenciamento de Identidade e Acesso no Amazon Redshift](redshift-iam-authentication-access-control.md).

## Autenticação com o plugin do provedor de identidade ADFS
<a name="python-connect-identity-provider-active-dir"></a>

Veja a seguir um exemplo de uso do plugin do provedor de identidade do Serviço de Federação do Active Directory (ADFS) para autenticar um usuário que se conecta a um banco de dados do Amazon Redshift.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AdfsCredentialsProvider',
    user='brooke@myadfshostname.com',
    password='Hunter2',
    idp_host='myadfshostname.com'
)
```

## Autenticação com o plugin do provedor de identidade do Azure
<a name="python-connect-identity-provider-azure"></a>

Veja a seguir um exemplo de autenticação com o plugin do provedor de identidade do Azure. Você pode criar valores para um `client_id` e `client_secret` para uma aplicação Azure Enterprise, conforme mostrado a seguir. 

```
>>>  con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AzureCredentialsProvider',
    user='brooke@myazure.org',
    password='Hunter2',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
    client_secret='my_client_secret',
    preferred_role='arn:aws:iam:123:role/DataScientist'
)
```

## Autenticação com o plugin do provedor de identidades do Centro de Identidade do AWS IAM
<a name="python-connect-identity-provider-aws-idc"></a>

 Veja a seguir um exemplo de autenticação com o plugin do provedor de identidades do Centro de Identidade do AWS IAM. 

```
with redshift_connector.connect(
credentials_provider='BrowserIdcAuthPlugin',
host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
database='dev',
idc_region='us-east-1',
issuer_url='https://identitycenter.amazonaws.com/ssoins-790723ebe09c86f9',
idp_response_timeout=60,
listen_port=8100,
idc_client_display_name='Test Display Name',
# port value of 5439 is specified by default
)
```

## Autenticação com o plugin do provedor de identidade do Azure Browser
<a name="python-connect-identity-provider-azure-browser"></a>

Veja a seguir um exemplo de uso do plugin do provedor de identidade do Azure Browser para autenticar um usuário que se conecta a um banco de dados do Amazon Redshift.

A autenticação multifator ocorre no navegador, no qual as credenciais de login são fornecidas pelo usuário.

```
>>>con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserAzureCredentialsProvider',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
)
```

## Autenticação com o plugin do provedor de identidade Okta
<a name="python-connect-identity-provider-okta"></a>

Veja a seguir um exemplo de autenticação com o plugin do provedor de identidade do Okta. Você pode obter os valores para `idp_host`, `app_id` e `app_name` pela aplicação Okta.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='OktaCredentialsProvider',
    user='brooke@myazure.org',
    password='hunter2',
    idp_host='my_idp_host',
    app_id='my_first_appetizer',
    app_name='dinner_party'
)
```

## Autenticação com JumpCloud com um plugin genérico de provedor de identidade de navegador SAML
<a name="python-connect-identity-provider-jumpcloud"></a>

Veja a seguir um exemplo de uso do JumpCloud com um plugin genérico de provedor de identidade de navegador SAML para autenticação.

O parâmetro password é obrigatório. Porém, não é necessário inserir esse parâmetro, pois a autenticação multifator ocorre no navegador.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserSamlCredentialsProvider',
    user='brooke@myjumpcloud.org',
    password='',
    login_url='https://sso.jumpcloud.com/saml2/plustwo_melody'
)
```

# Exemplos de uso do conector Python do Amazon Redshift
<a name="python-connect-examples"></a>

Veja a seguir exemplos de como usar o conector Python do Amazon Redshift. Para executá-los, primeiro instale o conector Python. Para obter mais informações sobre a instalação do conector Python do Amazon Redshift, consulte [Instalar o conector Python do Amazon Redshift](python-driver-install.md). Para obter mais informações sobre as opções de configuração que você pode usar com o conector Python, consulte [Opções de configuração para o conector Python do Amazon Redshift](python-configuration-options.md).

**Topics**
+ [Conectar-se a um cluster do Amazon Redshift e consultá-lo usando credenciais da AWS](#python-connect-cluster)
+ [Habilitar o autocommit](#python-connect-enable-autocommit)
+ [Configurar o estilo de parâmetro do cursor](#python-connect-config-paramstyle)
+ [Usar COPY para copiar dados de um bucket do Amazon S3 e UNLOAD para gravar dados nele](#python-connect-copy-unload-s3)

## Conectar-se a um cluster do Amazon Redshift e consultá-lo usando credenciais da AWS
<a name="python-connect-cluster"></a>

O exemplo a seguir mostra como você se conecta com um cluster do Amazon Redshift usando credenciais da AWS, consulta uma tabela e recupera os resultados da consulta.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     database='dev',
     port=5439,
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query a table using the Cursor
>>> cursor.execute("select * from book")
                
#Retrieve the query result set
>>> result: tuple = cursor.fetchall()
>>> print(result)
 >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])
```

## Habilitar o autocommit
<a name="python-connect-enable-autocommit"></a>

A propriedade autocommit é desativada por padrão, conforme a Python Database API Specification. Use os comandos a seguir para ativar a propriedade autocommit da conexão depois de executar um comando de reversão para garantir que uma transação não esteja em andamento.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(...)

# Run a rollback command
>>>  conn.rollback()

# Turn on autocommit
>>>  conn.autocommit = True
>>>  conn.run("VACUUM")

# Turn off autocommit
>>>  conn.autocommit = False
```

## Configurar o estilo de parâmetro do cursor
<a name="python-connect-config-paramstyle"></a>

O estilo de parâmetro de um cursor pode ser modificado por meio de cursor.paramstyle. O estilo de parâmetro padrão usado é `format`. Os valores válidos para o estilo de parâmetro são `qmark`, `numeric`, `named`, `format` e `pyformat`.

Veja a seguir exemplos do uso de vários estilos de parâmetros para transmitir parâmetros para um exemplo de instrução SQL.

```
# qmark
redshift_connector.paramstyle = 'qmark'
sql = 'insert into foo(bar, jar) VALUES(?, ?)'
cursor.execute(sql, (1, "hello world"))

# numeric
redshift_connector.paramstyle = 'numeric'
sql = 'insert into foo(bar, jar) VALUES(:1, :2)'
cursor.execute(sql, (1, "hello world"))

# named
redshift_connector.paramstyle = 'named'
sql = 'insert into foo(bar, jar) VALUES(:p1, :p2)'
cursor.execute(sql, {"p1":1, "p2":"hello world"})

# format
redshift_connector.paramstyle = 'format'
sql = 'insert into foo(bar, jar) VALUES(%s, %s)'
cursor.execute(sql, (1, "hello world"))

# pyformat
redshift_connector.paramstyle = 'pyformat'
sql = 'insert into foo(bar, jar) VALUES(%(bar)s, %(jar)s)'
cursor.execute(sql, {"bar": 1, "jar": "hello world"})
```

## Usar COPY para copiar dados de um bucket do Amazon S3 e UNLOAD para gravar dados nele
<a name="python-connect-copy-unload-s3"></a>

O exemplo a seguir mostra como copiar dados de um bucket do Amazon S3 para uma tabela e descarregar dessa tabela de volta no bucket.

Um arquivo de texto chamado `category_csv.txt`, que contém os dados a seguir, é carregado em um bucket do Amazon S3.

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

Veja a seguir um exemplo do código Python, que primeiro se conecta ao banco de dados do Amazon Redshift. Em seguida, cria uma tabela chamada `category` e copia os dados CSV do bucket do S3 para a tabela.

```
#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>>     cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>>     cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the table
>>>     cursor.execute("select * from category")
>>>     print(cursor.fetchall())

#Use UNLOAD to copy the contents of the table into the S3 bucket
>>>     cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt'  iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the bucket
>>>     print(cursor.fetchall())
 >> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts'])
```

Se você não definiu `autocommit` como true, confirme com `conn.commit()` depois de executar as instruções `execute()`.

Os dados são descarregados no arquivo `unloaded_category_csv.text0000_part00` no bucket do S3, com o seguinte conteúdo:

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

# Referência de API para o conector Python do Amazon Redshift
<a name="python-api-reference"></a>

A seguir, você encontrará uma descrição das operações de API do conector Python do Amazon Redshift.

## redshift\$1connector
<a name="python-api-redshift_connector"></a>

A seguir, você encontrará uma descrição da operação de API `redshift_connector`.

`connect(user, database, password[, port, …])`  
Estabelece uma conexão com um cluster do Amazon Redshift. Essa função valida a entrada do usuário, autentica opcionalmente usando um plugin do provedor de identidade e cria um objeto de conexão.

`apilevel`  
O nível DBAPI compatível, atualmente “2.0".

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
O estilo de parâmetro da API do banco de dados a ser usado globalmente.

## Conexão
<a name="python-api-connection"></a>

A seguir, você encontrará uma descrição das operações de API de conexão para o conector Python do Amazon Redshift.

`__init__(user, password, database[, host, …])`  
Inicializa um objeto de conexão bruta.

`cursor`  
Cria um objeto cursor vinculado a essa conexão.

`commit`  
Confirma a transação de banco de dados atual.

`rollback`  
Reverte a transação de banco de dados atual.

`close`  
Encerra a conexão com o banco de dados.

`execute(cursor, operation, vals)`  
Executa os comandos SQL especificados. Você pode fornecer os parâmetros como uma sequência ou como um mapeamento, conforme o valor de `redshift_connector.paramstyle`.

`run(sql[, stream])`  
Executa os comandos SQL especificados. Se preferir, você também pode fornecer um fluxo a ser usado com o comando COPY.

`xid(format_id, global_transaction_id, …)`  
Crie um ID de transação. Somente o parâmetro `global_transaction_id` é usado em postgres. O format\$1id e o branch\$1qualifier não são usados em postgres. O `global_transaction_id` pode ser qualquer identificador de string compatível com postgres que retorne uma tupla (`format_id`, `global_transaction_id`, `branch_qualifier`).

`tpc_begin(xid)`  
Inicia uma transação TPC com um ID de transação `xid` consistindo em um ID de formato, ID de transação global e qualificador de ramificação. 

`tpc_prepare`  
Executa a primeira fase de uma transação iniciada com .tpc\$1begin.

`tpc_commit([xid])`  
Quando chamado sem argumentos, o .tpc\$1commit confirma uma transação TPC previamente preparada com .tpc\$1prepare().

`tpc_rollback([xid])`  
Quando chamado sem argumentos, o .tpc\$1rollback reverte uma transação TPC.

`tpc_recover`  
Retorna uma lista de IDs de transação pendentes adequadas para uso com .tpc\$1commit(xid) ou .tpc\$1rollback(xid).

## Cursor
<a name="python-api-cursor"></a>

A seguir, você encontrará uma descrição da operação de API de cursor.

`__init__(connection[, paramstyle])`  
Inicializa um objeto cursor bruto.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Executa uma instrução INSERT em massa.

`execute(operation[, args, stream, …])`  
Executa uma operação de banco de dados.

`executemany(operation, param_sets)`  
Prepara uma operação de banco de dados e a executa para todas as sequências de parâmetros ou mapeamentos fornecidos.

`fetchone`  
Busca a próxima linha de um conjunto de resultados de consulta.

`fetchmany([num])`  
Busca o próximo conjunto de linhas de um resultado da consulta.

`fetchall`  
Busca todas as linhas restantes de um resultado da consulta.

`close`  
Encerra o cursor agora. 

`__iter__`  
É possível iterar um objeto de cursor para recuperar as linhas de uma consulta.

`fetch_dataframe([num])`  
Retorna um dataframe dos últimos resultados da consulta.

`write_dataframe(df, table)`  
Grava o mesmo dataframe de estrutura em um banco de dados do Amazon Redshift.

`fetch_numpy_array([num])`  
Retorna uma matriz NumPy dos últimos resultados da consulta.

`get_catalogs`  
O Amazon Redshift não oferece suporte a vários catálogos a partir de uma única conexão. O Amazon Redshift retorna somente o catálogo atual.

`get_tables([catalog, schema_pattern, …])`  
Retorna as tabelas públicas exclusivas que são definidas pelo usuário dentro do sistema.

`get_columns([catalog, schema_pattern, …])`  
Retorna uma lista de todas as colunas de uma tabela específica em um banco de dados do Amazon Redshift.

## Plugin AdfsCredentialsProvider
<a name="python-adfs-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin AdfsCredentialsProvider do conector Python do Amazon Redshift. 

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## Plugin AzureCredentialsProvider
<a name="python-azure-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin AzureCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## Plugin BrowserAzureCredentialsProvider
<a name="python-browser-azure-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin BrowserAzureCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## Plugin BrowserSamlCredentialsProvider
<a name="python-browser-saml-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin BrowserSamlCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## Plugin OktaCredentialsProvider
<a name="python-okta-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin OktaCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## Plugin PingCredentialsProvider
<a name="python-ping-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin PingCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.PingCredentialsProvider()
```

## Plugin SamlCredentialsProvider
<a name="python-saml-credentials-plugin"></a>

Veja a seguir a sintaxe da operação de API do plugin SamlCredentialsProvider do conector Python do Amazon Redshift.

```
redshift_connector.plugin.SamlCredentialsProvider()
```

# Integração do Amazon Redshift para o Apache Spark
<a name="spark-redshift-connector"></a>

 O [Apache Spark](https://aws.amazon.com/emr/features/spark/) é um modelo de programação e estrutura de processamento distribuído que ajuda você a realizar machine learning, processamento de fluxo ou análises de gráficos. Semelhante ao Apache Hadoop, o Spark é um sistema de processamento distribuído de código-fonte aberto comumente utilizado para workloads de big data. O Spark tem um mecanismo de execução otimizado de gráfico acíclico direcionado (DAG) e armazena ativamente os dados na memória. Isso pode aumentar a performance, especialmente para determinados algoritmos e consultas interativas. 

 Essa integração fornece um conector do Spark que você pode usar para criar aplicações do Apache Spark que leem e gravam dados no Amazon Redshift e no Amazon Redshift Serverless. Essas aplicações não comprometem a performance nem a consistência transacional dos dados. Essa integração é incluída automaticamente no [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/) e [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/), portanto você pode executar imediatamente trabalhos do Apache Spark que acessam e carregam dados no Amazon Redshift como parte de seus pipelines de ingestão e transformação de dados. 

No momento, é possível usar as versões 3.3.x, 3.4.x, 3.5.x e 4.0.0 do Spark com essa integração.

 Essa integração fornece o seguinte: 
+  AWS Identity and Access ManagementAutenticação do (IAM). Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). 
+ Aplicação de predicados e consultas para melhorar a performance.
+  Tipo de dados do Amazon Redshift. 
+ Conectividade com o Amazon Redshift e o Amazon Redshift Serverless.

## Considerações e limitações ao usar o conector do Spark
<a name="spark-redshift-connector-considerations"></a>
+  O URI de tempdir aponta para uma localização do Amazon S3. Esse diretório temporário não é limpo automaticamente e pode incorrer custos adicionais. Recomendamos usar as [políticas de ciclo de vida do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) no *Guia do usuário do Amazon Simple Storage Service* para definir as regras de retenção para o bucket do Amazon S3. 
+  Por padrão, as cópias entre o Amazon S3 e o Redshift não funcionam se o bucket do S3 e o cluster do Redshift estiverem em regiões da AWS diferentes. Para usar regiões da AWS separadas, defina o parâmetro `tempdir_region` como a região do bucket do S3 usado para `tempdir`.
+ Gravações entre regiões entre o S3 e o Redshift ao gravar dados do Parquet usando o parâmetro `tempformat`.
+ Recomendamos usar a [criptografia no lado do servidor do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) para criptografar os buckets do Amazon S3 usados. 
+ Recomendamos [bloquear o acesso público aos buckets do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html). 
+  Recomendamos que o cluster do Amazon Redshift não esteja acessível ao público. 
+  Recomendamos ativar o [registro em log de auditoria do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html). 
+  Recomendamos ativar a [criptografia em repouso do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/security-server-side-encryption.html). 
+  Recomendamos ativar SSL para a conexão JDBC do Spark no Amazon EMR ao Amazon Redshift. 
+ Recomendamos transmitir um perfil do IAM usando o parâmetro `aws_iam_role` para o parâmetro de autenticação do Amazon Redshift.

# Autenticação com o conector do Spark
<a name="redshift-spark-connector-authentication"></a>

O diagrama a seguir descreve a autenticação entre o Amazon S3, o Amazon Redshift, o driver do Spark e os executores do Spark.

![\[Este é um diagrama da autenticação do conector do Spark.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/spark-connector-authentication.png)


## Autenticação entre Redshift e Spark
<a name="redshift-spark-authentication"></a>

 Você pode usar o driver JDBC versão 2.x fornecido pelo Amazon Redshift para se conectar ao Amazon Redshift com o conector do Spark especificando as credenciais de login. Para usar o IAM, [configure o URL do JDBC para usar a autenticação do IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html). Para se conectar a um cluster do Redshift pelo Amazon EMR ou AWS Glue, certifique-se de que seu perfil do IAM tenha as permissões necessárias para recuperar credenciais temporárias do IAM. A lista a seguir descreve todas as permissões que seu perfil do IAM precisa para recuperar credenciais e executar operações do Amazon S3. 
+ [ Redshift:GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) (para clusters provisionados do Redshift)
+ [ Redshift:DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html) (para clusters provisionados do Redshift)
+ [Redshift:GetWorkgroup](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetWorkgroup.html) (para grupos de trabalho do Amazon Redshift sem servidor)
+ [ Redshift:GetCredentials](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCredentials.html) (para grupos de trabalho do Amazon Redshift Serverless)
+ [s3:ListBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
+ [ s3:GetBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [ s3:GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [ s3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [ s3:GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)

 Para acessar mais informações sobre GetClusterCredentials, consulte [Políticas do IAM para GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources). 

Você também deve garantir que o Amazon Redshift possa assumir o perfil do IAM durante as operações `COPY` e `UNLOAD`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Se você estiver usando o driver JDBC mais recente, o driver gerenciará automaticamente a transição de um certificado autoassinado do Amazon Redshift para um certificado do ACM. No entanto, você deve [especificar as opções de SSL para o URL de JDBC](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-ssl-option). 

 Veja a seguir um exemplo de como especificar o URL do driver JDBC e `aws_iam_role` para se conectar ao Amazon Redshift. 

```
df.write \
  .format("io.github.spark_redshift_community.spark.redshift ") \
  .option("url", "jdbc:redshift:iam://<the-rest-of-the-connection-string>") \
  .option("dbtable", "<your-table-name>") \
  .option("tempdir", "s3a://<your-bucket>/<your-directory-path>") \
  .option("aws_iam_role", "<your-aws-role-arn>") \
  .mode("error") \
  .save()
```

## Autenticação entre Amazon S3 e Spark
<a name="spark-s3-authentication"></a>

 Se você estiver usando um perfil do IAM para realizar a autenticação entre Spark e Amazon S3, use um dos métodos a seguir: 
+ O AWS SDK para Java tentará encontrar credenciais da AWS automaticamente usando a cadeia de provedores de credenciais padrão implementada pela classe DefaultAWSCredentialsProviderChain. Para obter mais informações, consulte [Utilização da cadeia de fornecedores de credenciais padrão](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default).
+ Você pode especificar chaves da AWS usando as [propriedades de configuração do Hadoop](https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/index.md). Por exemplo, se sua configuração de `tempdir` apontar para um sistema de arquivos `s3n://`, defina as propriedades `fs.s3n.awsAccessKeyId` e `fs.s3n.awsSecretAccessKey` em um arquivo de configuração XML do Hadoop ou chame `sc.hadoopConfiguration.set()` para alterar a configuração global do Hadoop do Spark.

Por exemplo, se estiver usando o sistema de arquivos s3n, adicione:

```
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```

Para o sistema de arquivos s3a, adicione:

```
sc.hadoopConfiguration.set("fs.s3a.access.key", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3a.secret.key", "YOUR_SECRET_ACCESS_KEY")
```

Se estiver usando o Python, use as seguintes operações:

```
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```
+ Codifique as chaves de autenticação no URL de `tempdir`. Por exemplo, o URI `s3n://ACCESSKEY:SECRETKEY@bucket/path/to/temp/dir` codifica o par de chaves (`ACCESSKEY`, `SECRETKEY`).

## Autenticação entre Redshift e Amazon S3
<a name="redshift-s3-authentication"></a>

 Se você estiver usando os comandos COPY e UNLOAD em sua consulta, também deverá conceder ao Amazon S3 acesso ao Amazon Redshift para executar consultas em seu nome. Para fazer isso, primeiro [autorize o Amazon Redshift a acessar outros serviços da AWS](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html), depois autorize as [operações COPY e UNLOAD usando perfis do IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html). 

Como prática recomendada, anexe políticas de permissões a um perfil do IAM e, depois, atribua-as a usuários e grupos, conforme necessário. Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

## Integração com AWS Secrets Manager
<a name="redshift-secrets-manager-authentication"></a>

Você pode recuperar suas credenciais de nome de usuário e senha do Redshift de um segredo armazenado no AWS Secrets Manager. Para fornecer automaticamente as credenciais do Redshift, use o parâmetro `secret.id`. Para obter mais informações sobre como criar um segredo de credenciais do Redshift, consulte [Criar um segredo do banco de dados do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html).

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/redshift-spark-connector-authentication.html)

**nota**  
 Confirmação: esta documentação contém exemplos de código e linguagem desenvolvidos pela [Apache Software Foundation](http://www.apache.org/) e licenciados sob a [licença Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Melhorias de performance com aplicação
<a name="spark-redshift-connector-pushdown"></a>

 O conector do Spark realiza automaticamente a aplicação de predicados e consultas para otimizar a performance. Esse suporte significa que, se você estiver usando uma função compatível em sua consulta, o conector do Spark transformará a função em uma consulta SQL e executará a consulta no Amazon Redshift. Essa otimização resulta em menos dados sendo recuperados, para que o Apache Spark possa processar menos dados e ter melhor performance. Por padrão, a aplicação é ativada automaticamente. Para desativá-la, defina `autopushdown` como false. 

```
import sqlContext.implicits._val 
 sample= sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url",jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "event")
    .option("autopushdown", "false")
    .load()
```

 As funções a seguir são compatíveis com a aplicação. Se você estiver usando uma função que não está nessa lista, o conector do Spark executará a função no Spark no lugar do Amazon Redshift, resultando em uma performance não otimizada. Para obter uma lista completa das funções no Spark, consulte [Funções integradas](https://spark.apache.org/docs/latest/api/sql/index.html). 
+ Funções de agregação
  + avg
  + contagem
  + max
  + min
  + soma
  + stddev\$1samp
  + stddev\$1pop
  + var\$1samp
  + var\$1pop
+ Operadores booleanos
  + em
  + isnull
  + isnotnull
  + contém
  + endswith
  + startswith
+ Operadores lógicos
  + and
  + ou
  + not (ou \$1)
+ Funções matemáticas
  + \$1
  + -
  + \$1
  + /
  + - (unário)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + exp
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ Funções diversas
  + cast
  + coalesce
  + decimal
  + se
  + em
+ Operadores relacionais
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ Funções de string
  + ascii
  + lpad
  + rpad
  + translate
  + upper
  + lower
  + length
  + trim
  + ltrim
  + rtrim
  + like
  + substring
  + concat
+ Funções de data e hora
  + add\$1months
  + date
  + date\$1add
  + date\$1sub
  + date\$1trunc
  + timestamp
  + trunc
+ Operadores matemáticos
  + CheckOverflow
  + PromotePrecision
+ Operações relacionais
  + Aliases (por exemplo, AS)
  + CaseWhen
  + Distinto
  + InSet
  + Junções e junções cruzadas
  + Limites
  + Unions, union all
  + ScalarSubquery
  + Sorts (crescente e decrescente)
  + UnscaledValue

# Outras opções de configuração
<a name="spark-redshift-connector-other-config"></a>

Nesta página, você encontra descrições sobre as opções que podem ser especificadas para o conector Amazon Redshift Spark.

## Tamanho máximo das colunas de string
<a name="spark-redshift-connector-other-config-max-size"></a>

O Redshift cria colunas de string como colunas de texto ao criar tabelas, que são armazenadas como VARCHAR(256). Se você quiser colunas que ofereçam suporte a tamanhos maiores, poderá usar maxlength para especificar o comprimento máximo das colunas de string. Veja a seguir um exemplo de como especificar `maxlength`. 

```
columnLengthMap.foreach { case (colName, length) =>
  val metadata = new MetadataBuilder().putLong("maxlength", length).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Tipo de coluna
<a name="spark-redshift-connector-other-config-column-type"></a>

Para definir um tipo de coluna, use o campo `redshift_type`.

```
columnTypeMap.foreach { case (colName, colType) =>
  val metadata = new MetadataBuilder().putString("redshift_type", colType).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Codificação de compactação de uma coluna
<a name="spark-redshift-connector-other-config-compression-encoding"></a>

 Para usar uma codificação de compressão específica em uma coluna, use o campo de codificação. Para obter uma lista completa das codificações de compressão compatíveis, consulte [Codificações de compressão](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html). 

## Descrição de uma coluna
<a name="spark-redshift-connector-other-config-description"></a>

Para definir uma descrição, use o campo `description`.

## Autenticação entre Redshift e Amazon S3
<a name="spark-redshift-connector-other-config-unload-as-text"></a>

 Por padrão, o resultado é descarregado no Amazon S3 no formato parquet. Para descarregar o resultado como um arquivo de texto delimitado por barras, especifique a opção a seguir. 

```
.option("unload_s3_format", "TEXT")
```

## Instruções de pushdown
<a name="spark-redshift-connector-other-config-lazy-pushdown"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

## Parâmetros do conector
<a name="spark-redshift-connector-other-config-spark-parameters"></a>

O mapa de parâmetros ou `OPTIONS` no Spark SQL é compatível com as seguintes configurações.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

**nota**  
 Confirmação: esta documentação contém exemplos de código e linguagem desenvolvidos pela [Apache Software Foundation](http://www.apache.org/) e licenciados sob a [licença Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Tipos de dados compatíveis
<a name="spark-redshift-connector-data-types"></a>

Os seguintes tipos de dados no Amazon Redshift são compatíveis com o conector do Spark. Para obter uma lista completa dos tipos de dados compatíveis no Amazon Redshift, consulte [Tipos de dados](https://docs.aws.amazon.com//redshift/latest/dg/c_Supported_data_types.html). Se um tipo de dado não está na tabela abaixo, ele não é compatível com o conector do Spark.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## Tipos de dados complexos
<a name="spark-redshift-connector-complex-data-types"></a>

 É possível usar o conector Spark para ler e gravar tipos de dados complexos do Spark, como `ArrayType`, `MapType` e `StructType` de e para as colunas do tipo de dados SUPER do Redshift. Se você fornecer um esquema durante uma operação de leitura, os dados na coluna serão convertidos em seus tipos complexos correspondentes no Spark, incluindo qualquer tipo aninhado. Além disso, se `autopushdown` estiver habilitado, a projeção de atributos aninhados, valores de mapas e índices de matriz será enviada ao Redshift para que toda a estrutura de dados aninhada não precise mais ser descarregada ao acessar apenas uma parte dos dados. 

Quando você grava DataFrames pelo conector, qualquer coluna do tipo `MapType`(usando `StringType`) `StructType` ou `ArrayType` é gravada em uma coluna de tipo de dados SUPER do Redshift. Ao escrever essas estruturas de dados aninhadas, o parâmetro `tempformat` deve ser do tipo `CSV`, `CSV GZIP` ou `PARQUET`. Usar `AVRO` causará uma exceção. Gravar uma estrutura de dados `MapType` que tem um tipo de chave diferente de `StringType` também causará uma exceção. 

### StructType
<a name="spark-redshift-connector-complex-data-types-examples-structtype"></a>

O exemplo a seguir demonstra como criar uma tabela com um tipo de dados SUPER que contém uma estrutura.

```
create table contains_super (a super);
```

Depois, é possível usar o conector para consultar um campo `StringType` `hello` da coluna `a` de SUPER na tabela usando um esquema como no exemplo a seguir.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)

val helloDF = sqlContext.read
.format("io.github.spark_redshift_community.spark.redshift")
.option("url", jdbcURL )
.option("tempdir", tempS3Dir)
.option("dbtable", "contains_super")
.schema(schema)
.load().selectExpr("a.hello")
```

O exemplo a seguir demonstra como escrever uma estrutura na coluna `a`.

```
import org.apache.spark.sql.types._
import org.apache.spark.sql._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)
val data = sc.parallelize(Seq(Row(Row("world"))))
val mydf = sqlContext.createDataFrame(data, schema)

mydf.write.format("io.github.spark_redshift_community.spark.redshift").
option("url", jdbcUrl).
option("dbtable", tableName).
option("tempdir", tempS3Dir).
option("tempformat", "CSV").
mode(SaveMode.Append).save
```

### MapType
<a name="spark-redshift-connector-complex-data-types-examples-maptype"></a>

Se você preferir usar um `MapType` para representar seus dados, poderá usar uma estrutura de dados `MapType` no esquema e recuperar o valor correspondente a uma chave no mapa. Observe que todas as chaves na estrutura de dados `MapType` deve ser do tipo String e todos os valores devem ser do mesmo tipo, como int. 

O exemplo a seguir demonstra como obter o valor da chave `hello` na coluna `a`.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", MapType(StringType, IntegerType))::Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a['hello']")
```

### ArrayType
<a name="spark-redshift-connector-complex-data-types-examples-arraytype"></a>

Se a coluna contiver uma matriz em vez de uma estrutura, você poderá usar o conector para consultar o primeiro elemento na matriz.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", ArrayType(IntegerType)):: Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a[0]")
```

### Limitações
<a name="spark-redshift-connector-complex-data-types-limitations"></a>

O uso de tipos de dados complexos com o conector do Spark tem as seguintes limitações:
+ Todos os nomes de campos de estrutura aninhados e chaves de mapa devem estar em letras minúsculas. Se estiver consultando nomes de campos complexos com letras maiúsculas, uma solução alternativa é tentar omitir o esquema e usar a função `from_json` do Spark para converter a string retornada localmente.
+ Qualquer campo de mapa usado em operações de leitura ou gravação precisa ter apenas chaves `StringType`.
+ Somente `CSV`, `CSV GZIP` e `PARQUET ` são valores de formato temporário compatíveis para gravar tipos complexos no Redshift. Tentar usar `AVRO ` lançará uma exceção.

# Configurar uma conexão para o driver ODBC versão 2.x para o Amazon Redshift
<a name="odbc20-install"></a>

Você pode usar uma conexão ODBC para se conectar ao seu cluster Amazon Redshift a partir de muitas ferramentas e aplicações de cliente SQL de terceiros. Se sua ferramenta cliente oferece suporte ao JDBC, é possível optar por usar esse tipo de conexão em vez de usar o ODBC, devido à facilidade de configuração que o JDBC oferece. No entanto, se sua ferramenta cliente não for compatível com JDBC, siga as etapas nesta seção para configurar uma conexão ODBC em seu computador cliente ou instância do Amazon EC2.

O Amazon Redshift fornece drivers ODBC de 64 bits para sistemas operacionais Linux, Windows e Mac. Os drivers ODBC de 32 bits foram descontinuados. Outras atualizações de drivers ODBC de 32bits não serão lançadas, exceto para patches de segurança urgentes.

Para obter as informações mais recentes sobre as alterações do driver ODBC, consulte o [log de alterações](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/CHANGELOG.md).

**Topics**
+ [Obter o URL do ODBC](odbc20-getting-url.md)
+ [Usar um driver ODBC do Amazon Redshift no Microsoft Windows](odbc20-install-config-win.md)
+ [Usar um driver ODBC do Amazon Redshift no Linux](odbc20-install-config-linux.md)
+ [Usar um driver ODBC do Amazon Redshift no Apple macOS](odbc20-install-config-mac.md)
+ [Métodos de autenticação](odbc20-authentication-ssl.md)
+ [Conversões de tipos de dados](odbc20-converting-data-types.md)
+ [Opções do driver ODBC](odbc20-configuration-options.md)
+ [Versões anteriores do driver ODBC](odbc20-previous-versions.md)

# Obter o URL do ODBC
<a name="odbc20-getting-url"></a>

O Amazon Redshift exibe o URL do ODBC para o cluster no console do Amazon Redshift. Este URL contém as informações necessárias para a configuração da conexão entre o computador cliente e o banco de dados.

O URL do ODBC tem o seguinte formato: 

```
Driver={driver}; Server=endpoint_host; Database=database_name; UID=user_name; PWD=password; Port=port_number
```

Os campos do formato anterior possuem os seguintes valores:


| Campo | Valor | 
| --- | --- | 
| Driver | O nome do driver ODBC de 64 bits a ser usado: Amazon Redshift ODBC Driver (x64) (Driver ODBC do Amazon Redshift (x64)) | 
| Server | O host do endpoint do cluster Amazon Redshift. | 
| Database | O banco de dados que você criou para o cluster. | 
| UID | O nome do usuário de uma conta de usuário de banco de dados que tem a permissão para se conectar ao banco de dados. Embora esse valor seja uma permissão de nível de banco de dados, não uma permissão de nível de cluster, é possível usar a conta de usuário administrador do Redshift que você configurou quando iniciou o cluster. | 
| PWD | A senha da conta de usuário de banco de dados para se conectar ao banco de dados. | 
| Port | O número da porta usado quando você iniciou o cluster. Se você tem um firewall, certifique-se de que essa porta está aberta para uso. | 

Este é um exemplo de URL de ODBC: 

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com; Database=dev; UID=adminuser; PWD=insert_your_admin_user_password_here; Port=5439
```

Para obter informações sobre onde encontrar o URL do ODBC, consulte [Encontrar a string de conexão do cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string). 

# Usar um driver ODBC do Amazon Redshift no Microsoft Windows
<a name="odbc20-install-config-win"></a>

Você deve instalar o driver ODBC do Amazon Redshift em computadores clientes que tenham acesso um data warehouse do Amazon Redshift. Para cada computador onde o driver é instalado, os seguintes requisitos mínimos do sistema devem ser atendidos: 
+ Direitos de administrador na máquina. 
+ A máquina atende aos seguintes requisitos do sistema:
  + Um dos seguintes sistemas operacionais:
    + Windows 10 ou 8.1.
    + Windows Server 2019, 2016 ou 2012.
  + 100 MB de espaço em disco disponível.
  + Visual C\$1\$1 redistribuível para Visual Studio 2015 para Windows de 64 bits instalado. É possível baixar o pacote de instalação em [Baixe o Visual C\$1\$1 redistribuível para Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022) no site da Microsoft.

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc20-install-win"></a>

Use o procedimento a seguir para baixar e instalar os drivers ODBC do Amazon Redshift para sistemas operacionais Windows. Use apenas um driver diferente se estiver executando uma aplicação de terceiros certificada para uso com o Amazon Redshift e que exija um driver específico.

Para baixar e instalar o driver ODBC: 

1. Baixe o seguinte driver: [Driver ODBC de 64 bits versão 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC64-2.1.15.0.msi) 

   O nome desse driver é **Amazon Redshift ODBC Driver (x64)**.

1. Analise a [licença do driver ODBC do Amazon Redshift versão 2.x](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Clique duas vezes no arquivo .msi e, em seguida, siga os passos do assistente para instalar o driver.

# Criação de uma entrada de DSN do sistema para uma conexão ODBC
<a name="odbc20-dsn-win"></a>

Depois de baixar e instalar o driver ODBC, adicione uma entrada de nome de origem dos dados (DSN) ao computador cliente ou instância do Amazon EC2. As ferramentas de cliente SQL podem usar essa fonte de dados para se conectar ao banco de dados do Amazon Redshift. 

Recomendamos a criação de um DSN de sistema em vez de um DSN de usuário. Algumas aplicações podem carregar dados usando uma conta de usuário de banco de dados diferente e podem não conseguir detectar DSNs de usuário criados em outra conta de usuário de banco de dados.

**nota**  
Para realizar a autenticação usando as credenciais do AWS Identity and Access Management (IAM) ou do provedor de identidades (IdP), serão necessárias etapas adicionais. Para obter mais informações, consulte [ Configurar uma conexão JDBC ou ODBC para usar credenciais do IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html).

Crie uma entrada de DSN de sistema para uma conexão ODBC:

1. No menu **Start** (Iniciar), abra "Fontes de dados ODBC". Escolha **ODBC Data sources** (Fontes de dados ODBC).

   Certifique-se de escolher o Administrador de origem dos dados ODBC que tem a mesma quantidade de bits da aplicação cliente que você está usando para se conectar ao Amazon Redshift. 

1. Em **ODBC Data Source Administrator** (Administrador de fonte de dados ODBC), escolha a guia **Driver** e localize a seguinte pasta do driver: **Amazon Redshift ODBC Driver (x64)** (Driver ODBC do Amazon Redshift (x64)).

1. Selecione a guia **DSN de sistema** a fim de configurar o driver para todos os usuários no computador, ou a guia **DSN de usuário** a fim de configurar o driver apenas para sua conta de usuário de banco de dados.

1. Escolha **Adicionar**. A janela **Create New Data Source** é exibida.

1. Escolha o **Amazon Redshift ODBC driver (x64)** (Driver ODBC do Amazon Redshift (x64)) e, em seguida, escolha **Finish** (Concluir). A janela **Configuração de DSN do driver ODBC do Amazon Redshift** é exibida.

1. Na seção **Connection Settings** (Configurações de conexão), insira as seguintes informações: 
   + 

**Nome da fonte de dados**  
 Insira um nome para a fonte de dados. Por exemplo, se você seguiu o *Guia de conceitos básicos do Amazon Redshift*, pode digitar `exampleclusterdsn` para facilitar a lembrança do cluster que associa a este DSN. 
   + 

**Servidor**  
 Especifique o host de endpoint do cluster do Amazon Redshift. Você pode encontrar essas informações no console do Amazon Redshift na página de detalhes do cluster. Para obter mais informações, consulte [Configurar conexões no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html). 
   + 

**Porta**  
 Insira o número da porta que o banco de dados usa. Dependendo da porta selecionada ao criar, modificar ou migrar o cluster, permita o acesso à porta selecionada. 
   + 

**Banco de dados**  
 Insira o nome do banco de dados do Amazon Redshift. Se você iniciou o cluster sem especificar um nome de banco de dados, insira `dev`. Caso contrário, use o nome escolhido durante o processo de inicialização. Se você seguiu o *Guia de conceitos básicos do Amazon Redshift*, insira `dev`. 

1. Na seção **Authentication** (Autenticação), especifique as opções de configuração para configurar a autenticação padrão ou do IAM. 

1. Escolha **SSL Options** (Opções SSL) e especifique um valor para o seguinte:
   + 

**Modos de autenticação**  
Escolha um modo para tratar o Secure Sockets Layer (SSL). Em um ambiente de teste, você pode usar `prefer`. No entanto, para ambientes de produção e quando um intercâmbio de dados seguro for necessário, use `verify-ca` ou `verify-full`.
   + 

**TLS mín.**  
Opcionalmente, escolha a versão mínima do TLS/SSL que o driver permite que o datastore use para criptografar conexões. Por exemplo, se você especificar TLS 1.2, não será possível usar o TLS 1.1 para criptografar conexões. A versão padrão é TLS 1.2.

1.  Na guia **Proxy**, especifique qualquer configuração de conexão proxy. 

1. Na guia **Cursor**, especifique opções sobre como retornar os resultados de consultas ao aplicativo ou ferramenta do cliente SQL. 

1. Em **Opções avançadas**, especifique valores para `logLevel`, `logPath`, `compression` e outras opções. 

1. Escolha **Testar**. Se o computador cliente puder se conectar ao banco de dados Amazon Redshift, a seguinte mensagem será exibida: **Connection successful** (Conexão bem-sucedida). Se a conexão do computador cliente com o banco de dados falhar, você poderá solucionar os possíveis problemas gerando um arquivo de log e entrando em contato com o suporte da AWS. Para obter informações sobre como gerar logs, consulte (LINK). 

1.  Escolha **OK**. 

# Usar um driver ODBC do Amazon Redshift no Linux
<a name="odbc20-install-config-linux"></a>

Você deve instalar o driver ODBC do Amazon Redshift em computadores clientes que tenham acesso um data warehouse do Amazon Redshift. Para cada computador onde o driver é instalado, os seguintes requisitos mínimos do sistema devem ser atendidos: 
+ Acesso root na máquina.
+ Uma das distribuições seguintes:
  + Red Hat® Enterprise Linux® (RHEL) 8 ou posterior
  + CentOS 8 ou posterior
+ 150 MB de espaço em disco disponível.
+ unixODBC 2.2.14 ou posterior.
+ glibc 2.26 ou posterior.

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc20-install-linux"></a>

Para baixar e instalar o driver ODBC do Amazon Redshift versão 2.x para Linux:

1.  Baixe o seguinte driver: 
   + [Driver RPM X86 de 64 bits versão 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.x86_64.rpm) 
   + [Driver RPM ARM de 64 bits versão 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.aarch64.rpm) 
**nota**  
Os drivers ODBC de 32 bits foram descontinuados. Outras atualizações não serão lançadas, exceto para patches de segurança urgentes.

1.  Navegue até o local onde você salvou o download do pacote e execute um dos comandos a seguir. Use o comando que corresponde a sua distribuição do Linux. 

   Em sistemas operacionais RHEL e CentOS, execute o seguinte comando:

   ```
   yum --nogpgcheck localinstall RPMFileName
   ```

   Substitua `RPMFileName` pelo nome do arquivo de pacote do RPM. Por exemplo, o comando a seguir demonstra a instalação do driver de 64 bits:

   ```
   yum --nogpgcheck localinstall AmazonRedshiftODBC-64-bit-2.x.xx.xxxx.x86_64.rpm
   ```

# Usar um gerenciador de driver ODBC para configurar o driver ODBC
<a name="odbc20-config-linux"></a>

No Linux, utilize o gerenciador de driver ODBC para configurar as definições de conexão ODBC. Os gerenciadores de driver ODBC usam arquivos de configuração para definir e configurar as fontes de dados e os drivers ODBC. O gerenciador de driver ODBC a ser usado dependerá do sistema operacional em uso.

## Configuração do driver ODBC usando o gerenciador de driver unixODBC
<a name="odbc20-config-unixodbc-linux"></a>

Os arquivos a seguir são necessários para configurar o driver ODBC do Amazon Redshift: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Se você fez a instalação no local padrão, o arquivo de configuração do `amazon.redshiftodbc.ini` estará localizado em `/opt/amazon/redshiftodbcx64`.

 Além disso, em `/opt/amazon/redshiftodbcx64`, é possível encontrar exemplos de arquivos `odbc.ini` e `odbcinst.ini`. Você pode usar esses arquivos como exemplos para configurar o driver ODBC do Amazon Redshift e o nome da origem dos dados (DSN).

 Não é recomendado o uso do diretório de instalação do driver ODBC do Amazon Redshift para os arquivos de configuração. Os arquivos de exemplo do diretório instalado devem ser usados somente para servir de modelo. Se você reinstalar o driver ODBC do Amazon Redshift posteriormente ou atualizar para uma versão mais recente, o diretório de instalação será substituído. Você perderá todas as alterações feitas nos arquivos do diretório de instalação.

 Para evitar isso, copie o arquivo `amazon.redshiftodbc.ini` para um diretório diferente do diretório de instalação. Se você copiar esse arquivo no diretório base do usuário, adicione um ponto (.) ao início do nome do arquivo para torná-lo um arquivo oculto.

 Para os arquivos `odbc.ini` e `odbcinst.ini`, use os arquivos de configuração do diretório inicial do usuário ou crie versões em um outro diretório. Por padrão, os sistemas operacionais Linux devem ter um arquivo `odbc.ini` e um `odbcinst.ini` no diretório inicial do usuário (`/home/$USER` ou `~/.`). Esses arquivos padrão são arquivos ocultos, o que é indicado pelo ponto (.) na frente do nome de cada arquivo. Esses arquivos são exibidos somente ao usar o sinalizador `-a` para listar o conteúdo do diretório.

 Qualquer que seja a opção escolhida para os arquivos `odbc.ini` e `odbcinst.ini`, modifique os arquivos para adicionar as informações do driver e da configuração de DSN. Se você criar arquivos, também precisará definir as variáveis do ambiente para especificar onde esses arquivos de configuração estão localizados.

 Por padrão, os gerenciadores de driver ODBC são configurados para usar versões ocultas dos arquivos de configuração `odbc.ini` e `odbcinst.ini` (chamados `.odbc.ini` e `.odbcinst.ini`) localizadas no diretório inicial. Eles também são configurados para usar o arquivo `amazon.redshiftodbc.ini` do diretório de instalação do driver. Se você armazenar esses arquivos de configuração em outro lugar, defina as variáveis de ambiente descritas a seguir para que o gerenciador de driver possa localizar os arquivos.

 Se você estiver usando o unixODBC, faça o seguinte: 
+  Defina `ODBCINI` para o caminho completo e o nome de arquivo do arquivo `odbc.ini`. 
+  Defina `ODBCSYSINI` para o caminho completo do diretório que contém o arquivo `odbcinst.ini`. 
+  Defina `AMAZONREDSHIFTODBCINI` para o caminho completo e o nome de arquivo do arquivo `amazon.redshiftodbc.ini`. 

Veja a seguir um exemplo de definição das variáveis acima:

```
export ODBCINI=/usr/local/odbc/odbc.ini 
export ODBCSYSINI=/usr/local/odbc 
export AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
```

## Configuração de uma conexão usando um nome de fonte de dados (DSN) no Linux
<a name="odbc20-dsn-linux"></a>

Ao conectar-se ao datastore usando um nome da fonte de dados (DSN), configure o arquivo `odbc.ini` para definir nomes de fonte de dados (DSNs). Defina as propriedades no arquivo `odbc.ini` para criar um DSN que especifique as informações de conexão para o armazenamento de dados.

Use o seguinte formato nos sistemas operacionais Linux:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

O exemplo a seguir mostra a configuração do `odbc.ini` com driver ODBC de 64 bits em sistemas operacionais Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932Database=dev
locale=en-US
```

## Configurar uma conexão sem um DSN no Linux
<a name="odbc20-no-dsn-linux"></a>

 Para se conectar ao armazenamento de dados por meio de uma conexão que não tenha um DSN, defina o driver no arquivo `odbcinst.ini`. Depois, forneça uma string de conexão sem DSN no aplicativo.

Use o seguinte formato nos sistemas operacionais Linux:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

O exemplo a seguir mostra a configuração do `odbcinst.ini` com driver ODBC de 64 bits em sistemas operacionais Linux.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
```

# Usar um driver ODBC do Amazon Redshift no Apple macOS
<a name="odbc20-install-config-mac"></a>

Você deve instalar o driver ODBC do Amazon Redshift em computadores clientes que tenham acesso um data warehouse do Amazon Redshift. Para cada computador onde o driver é instalado, estes são os requisitos mínimos: 
+ Acesso root na máquina. 
+ Requisitos do sistema Apple macOS:
  + É necessária uma versão de 64 bits do Apple macOS versão 11.7 ou posterior (como Apple macOS Big Sur, Monterey, Ventura ou posterior). O driver ODBC do Redshift só comporta aplicações cliente de 64 bits.
  + 150 MB de espaço em disco disponível.
  + O driver comporta aplicações criadas com iODBC 3.52.9\$1 ou unixODBC 2.3.7\$1.

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc20-install-mac"></a>

Use o procedimento a seguir para baixar e instalar o driver ODBC do Amazon Redshift no Apple macOS. Use apenas um driver diferente se estiver executando uma aplicação de terceiros certificada para uso com o Amazon Redshift e que exija um driver específico.

Para baixar e instalar o driver ODBC: 

1. Baixe o seguinte driver: [Driver ODBC de 64 bits versão 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit.2.1.15.0.universal.pkg) 

   Esse driver comporta arquiteturas x86\$164 e arm64. O nome desse driver é **Amazon Redshift ODBC Driver (x64)**.

1. Analise a [licença do driver ODBC do Amazon Redshift versão 2.x](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Clique duas vezes no arquivo .pkg e, depois, siga os passos do assistente para instalar o driver. Como alternativa, você pode executar o seguinte comando:

   ```
   sudo installer -pkg PKGFileName -target /
   ```

   Substitua `PKGFileName` pelo nome do arquivo de pacote pkg. Por exemplo, o comando a seguir demonstra a instalação do driver de 64 bits:

   ```
   sudo installer -pkg ./AmazonRedshiftODBC-64-bit.X.X.XX.X.universal.pkg -target /
   ```

# Usar um gerenciador de driver ODBC para configurar o driver ODBC
<a name="odbc20-config-mac"></a>

No Mac, utilize o gerenciador de driver ODBC para configurar as definições de conexão ODBC. Os gerenciadores de driver ODBC usam arquivos de configuração para definir e configurar as fontes de dados e os drivers ODBC. O gerenciador de driver ODBC a ser usado dependerá do sistema operacional em uso.

## Configurar o driver ODBC usando o gerenciador de driver iODBC ou unixODBC
<a name="odbc20-config-iodbc-mac"></a>

Os arquivos a seguir são necessários para configurar o driver ODBC do Amazon Redshift: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Se você fez a instalação no local padrão, o arquivo de configuração do `amazon.redshiftodbc.ini` estará localizado em `/opt/amazon/redshiftodbcx64`.

 Além disso, em `/opt/amazon/redshiftodbcx64`, é possível encontrar exemplos de arquivos `odbc.ini` e `odbcinst.ini`. Você pode usar esses arquivos como exemplos para configurar o driver ODBC do Amazon Redshift e o nome da origem dos dados (DSN). Os arquivos de exemplo do diretório instalado devem ser usados somente para servir de modelo.

 Não é recomendado o uso do diretório de instalação do driver ODBC do Amazon Redshift para os arquivos de configuração. Se você reinstalar o driver ODBC do Amazon Redshift posteriormente ou atualizar para uma versão mais recente, o diretório de instalação será substituído. Você perderá todas as alterações feitas nos arquivos do diretório de instalação.

 Para evitar isso, copie os arquivos `odbc.ini`, `odbcinst.ini` e `amazon.redshiftodbc.ini` para um diretório diferente do diretório de instalação. Se você copiar esses arquivos no diretório base do usuário, adicione um ponto (.) ao início deles para ocultá-los.

 Modifique os arquivos para adicionar informações de configuração do DSN. Se você criar arquivos, também precisará definir as variáveis do ambiente para especificar onde esses arquivos de configuração estão localizados.

Veja a seguir um exemplo de como definir as variáveis de ambiente:

```
export ODBCINI=/Library/ODBC/odbc.ini
export ODBCSYSINI=/Library/ODBC
export ODBCINSTINI=${ODBCSYSINI}/odbcinst.ini
```

Para aplicações de linha de comandos: adicione os comandos de exportação ao seu arquivo de inicialização do shell (por exemplo, `~/.bash_profile` ou `~/.zshrc`). 

Para a versão compatível do gerenciador de drivers, veja [aqui](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install-config-mac.html). 

### Configurar uma conexão usando um nome de fonte de dados (DSN) no Apple macOS
<a name="odbc20-dsn-mac"></a>

Ao conectar-se ao datastore usando um nome da fonte de dados (DSN), configure o arquivo `odbc.ini` para definir nomes de fonte de dados (DSNs). Defina as propriedades no arquivo `odbc.ini` para criar um DSN que especifique as informações de conexão para o data warehouse Redshift.

No Apple macOS, use o seguinte formato:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

O exemplo a seguir mostra a configuração de `odbc.ini` com driver ODBC de 64 bits no Apple macOS.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

### Configurar uma conexão sem um DSN no Apple macOS
<a name="odbc20-no-dsn-mac"></a>

 Para se conectar ao data warehouse Redshift por meio de uma conexão que não tenha um DSN, defina o driver no arquivo `odbcinst.ini`. Depois, forneça uma string de conexão sem DSN no aplicativo.

No Apple macOS, use o seguinte formato:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

O exemplo a seguir mostra a configuração de `odbcinst.ini` com driver ODBC de 64 bits no Apple macOS.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
```

# Métodos de autenticação
<a name="odbc20-authentication-ssl"></a>

Para proteger os dados contra acesso não autorizado, os armazenamentos de dados do Amazon Redshift exigem que todas as conexões sejam autenticadas usando credenciais do usuário.

A seguinte tabela ilustra as opções de conexão necessárias e opcionais para cada método de autenticação que pode ser usado para se conectar ao driver ODBC do Amazon Redshift versão 2.x:


| Método de autenticação | Obrigatório | Opcional | 
| --- | --- | --- | 
|  Standard  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Perfil do IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Credenciais do IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Azure AD do navegador  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  SAML do navegador  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Perfil de autorização  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Azure AD OAUTH2 do navegador  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** e **Region** (Região) deverão ser definidos em **Host** se eles não estiverem definidos separadamente.    | 
|  Centro de Identidade do AWS IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## Utilização de um serviço de credenciais externas
<a name="odbc20-authentication-external"></a>

Além do suporte interno para AD FS, Azure AD e Okta, a versão Windows do driver ODBC do Amazon Redshift também é compatível com outros serviços de credenciais. O driver pode autenticar conexões usando qualquer plug-in de provedor de credenciais baseado em SAML de sua escolha. 

Como configurar um serviço de credenciais externas no Windows:

1. Crie um perfil do IAM que especifique o plug-in do provedor de credenciais e outros parâmetros de autenticação conforme necessário. O perfil deve ser codificado em ASCII e deve conter o seguinte par de valores-chave, em que `PluginPath` é o caminho completo para o aplicativo do plugin: 

   ```
   plugin_name = PluginPath
   ```

   Por exemplo:

   ```
   plugin_name = C:\Users\kjson\myapp\CredServiceApp.exe 
   ```

   Para obter informações sobre como criar um perfil, consulte [Usar um perfil de configuração](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html#using-configuration-profile) no Guia de gerenciamento de clusters do Amazon Redshift.

1. Configure o driver para usar esse perfil. O driver detecta e usa as configurações de autenticação especificadas no perfil.

# Conversões de tipos de dados
<a name="odbc20-converting-data-types"></a>

O driver ODBC do Amazon Redshift versão 2.x é compatível com muitos formatos de dados comuns, convertendo entre tipos de dados do Amazon Redshift, SQL e Java.

A tabela a seguir lista os mapeamentos de tipo de dados compatíveis.


| Tipo do Amazon Redshift | Tipo SQL | 
| --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  | 
|  BOOLEAN  |  SQL\$1BIT  | 
|  CHAR  |  SQL\$1CHAR  | 
|  DATE  |  SQL\$1TYPE\$1DATE  | 
|  DECIMAL  |  SQL\$1NUMERIC  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  | 
|  GEOGRAPHY  |  SQL\$1 LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  | 
|  INTEGER  |  SQL\$1INTEGER  | 
|  REAL  |  SQL\$1REAL  | 
|  SMALLINT  |  SQL\$1SMALLINT  | 
|  SUPER  |  SQL\$1LONGVARCHAR  | 
|  TEXT  |  SQL\$1LONGVARCHAR  | 
|  TIME  |  SQL\$1TYPE\$1TIME  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  VARBYTE  |  SQL\$1LONGVARBINARY  | 
|  VARCHAR  |  SQL\$1VARCHAR  | 

# Opções do driver ODBC
<a name="odbc20-configuration-options"></a>

É possível usar opções de configuração de driver para controlar o comportamento do driver ODBC Amazon Redshift. As opções do driver não diferenciam letras maiúsculas de minúsculas.

No Microsoft Windows, você normalmente define as opções de driver ao configurar um nome de fonte de dados (DSN). Também é possível definir as opções de driver na string de conexão estabelecendo a conexão de forma programática ou adicionando/alterando as chaves de registro em `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`.

No Linux, defina as opções de configuração do driver nos arquivos `odbc.ini` e `amazon.redshiftodbc.ini`. As opções de configuração definidas em um arquivo `amazon.redshiftodbc.ini` aplicam-se a todas as conexões. Em contrapartida, as opções de configuração definidas em um arquivo `odbc.ini` são específicas de uma conexão. As opções de configuração definidas em `odbc.ini` têm precedência sobre as opções de configuração definidas em `amazon.redshiftodbc.ini`.

Veja a seguir descrições para as opções que podem ser especificadas para o driver ODBC do Amazon Redshift versão 2.x:

## AccessKeyID
<a name="odbc20-accesskeyid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 A chave de acesso do IAM para o usuário ou função. Se definir esse parâmetro, você também deverá especificar **SecretAccessKey**.

Esse parâmetro é opcional.

## app\$1id
<a name="odbc20-app-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID exclusivo fornecido pela OKTA associado à sua aplicação Amazon Redshift.

Esse parâmetro é opcional.

## ApplicationName
<a name="odbc20-application_name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: string

O nome da aplicação a ser passado ao Amazon Redshift para fins de auditoria. O nome da aplicação que fornecido aparece na coluna “application\$1name” da tabela [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Isso ajuda a rastrear e solucionar problemas de fontes de conexão ao depurar problemas.

Esse parâmetro é opcional.

## app\$1name
<a name="odbc20-app-name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome da aplicação Okta que você usa para autenticar a conexão com o Amazon Redshift.

Esse parâmetro é opcional.

## AuthProfile
<a name="odbc20-authprofile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O perfil de autenticação usado para gerenciar as configurações de conexão. Se definir esse parâmetro, você também deverá configurar **AccessKeyID** e **SecretAccessKey**. 

Esse parâmetro é opcional.

## AuthType
<a name="odbc20-authtype-option"></a>
+ **Valor padrão**: padrão
+ **Tipo de dados** – String

Esta opção especifica o modo de autenticação que o driver usa quando você configura um DSN usando a caixa de diálogo ODBC Driver DSN Setup (Configuração de DSN do driver ODBC) do Amazon Redshift: 
+  Padrão: autenticação padrão usando seu nome de usuário e senha do Amazon Redshift. 
+  Perfil da AWS: autenticação do IAM usando um perfil.
+  Credenciais do IAM da AWS: autenticação do IAM usando credenciais do IAM. 
+  Provedor de identidades: AD FS: autenticação do IAM usando os Serviços de Federação do Active Directory (AD FS). 
+  Provedor de identidades (plug-in de autenticação): um plug-in de autorização que aceita um token do Centro de Identidade do AWS IAM ou tokens de identidade baseados em JSON (JWT) do OpenID Connect (OIDC) de qualquer provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM.
+  Provedor de identidades: Azure AD: autenticação do IAM usando um portal do Azure AD. 
+  Provedor de identidades: JWT: autenticação do IAM usando um JSON Web Token (JWT). 
+  Provedor de identidades: Okta: autenticação do IAM usando Okta. 
+  Provedor de identidade: PingFederate: autenticação do IAM usando PingFederate. 

Essa opção está disponível somente quando você configura um DSN usando a caixa de diálogo ODBC Driver DSN Setup (Configuração de DSN do driver ODBC) do Amazon Redshift no driver do Windows. Quando você configura uma conexão usando uma string de conexão ou uma máquina que não seja Windows, o driver determina automaticamente se deve usar Padrão, Perfil da AWS ou Autenticação de Credenciais de IAM da AWS com base em suas credenciais especificadas. Para usar um provedor de identidades, você deve configurar a propriedade **plugin\$1name**. 

Esse parâmetro é obrigatório.

## AutoCreate
<a name="odbc20-autocreate-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver cria um novo usuário quando o usuário especificado não existe. 
+  1 \$1 TRUE: se o usuário especificado pelo **UID** não existir, o driver criará um novo usuário. 
+  0 \$1 FALSE: o driver não criará um novo usuário. Se o usuário especificado não existir, a autenticação falhará. 

Esse parâmetro é opcional.

## CaFile
<a name="odbc20-cafile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O caminho do arquivo para o arquivo de certificado da CA usado para algumas formas de autenticação do IAM. 

 Esse parâmetro está disponível apenas no Linux.

Esse parâmetro é opcional.

## client\$1id
<a name="odbc20-client-id-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O ID do cliente associado ao aplicativo Amazon Redshift no Azure AD. 

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## client\$1 secret
<a name="odbc20-client-secret-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 A chave secreta associada à sua aplicação Amazon Redshift no Azure AD. 

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## ClusterId
<a name="odbc20-clusterid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do cluster do Amazon Redshift ao qual você deseja se conectar. Ele é usado para autenticação do IAM. O ID do cluster não está especificado no parâmetro **Server** (Servidor).

Esse parâmetro é opcional.

## compression
<a name="odbc20-compression-option"></a>
+ **Valor padrão**: desativado
+ **Tipo de dados** – String

O método de compactação usado na comunicação via protocolo com fio entre o servidor do Amazon Redshift e o cliente ou o driver.

Especifique os seguintes valores:
+ lz4: define o método de compactação usado na comunicação via protocolo com fio com o Amazon Redshift como `lz4`. 
+ zstd: define o método de compactação usado na comunicação via protocolo com fio com o Amazon Redshift como `zstd`. 
+  off: não usa a compactação na comunicação via protocolo com fio com o Amazon Redshift. 

Esse parâmetro é opcional.

## Banco de dados
<a name="odbc20-database-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do banco de dados do Amazon Redshift que você deseja acessar.

Esse parâmetro é obrigatório.

## DatabaseMetadataCurrentDbOnly
<a name="odbc20-database-metadata-option"></a>
+ **Valor padrão** – 1
+ **Tipo de dados**: booleano

Um booleano especificando se o driver retorna metadados de vários bancos de dados e clusters.
+ 1 \$1 TRUE: o driver só retorna metadados do banco de dados atual. 
+  0 \$1 FALSE. O driver retorna metadados de vários bancos de dados e clusters do Amazon Redshift. 

Esse parâmetro é opcional.

## dbgroups\$1filter
<a name="odbc20-dbgroups-filter-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A expressão regular que você pode especificar para filtrar DbGroups recebidos da resposta SAML para o Amazon Redshift ao usar os tipos de autenticação Azure, Azure do navegador e SAML do navegador. 

Esse parâmetro é opcional.

## Driver
<a name="odbc20-driver-option"></a>
+ **Valor padrão** - Driver ODBC do Amazon Redshift (x64)
+ **Tipo de dados** – String

O nome do driver. O único valor com suporte é **Driver ODBC do Amazon Redshift (x64)**.

Esse parâmetro será obrigatório se você não configurar o **DSN**.

## DSN
<a name="odbc20-dsn-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome da fonte de dados do driver. O aplicativo especifica o DSN na API SQLDriverConnect.

Esse parâmetro será obrigatório se você não configurar o **Driver**.

## EndpointUrl
<a name="odbc20-endpointurl-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O endpoint substituto usado para se comunicar com o Amazon Redshift Coral Service para autenticação do IAM.

Esse parâmetro é opcional.

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booliano que especifica se o driver coloca em letras minúsculas todos os DbGroups enviados do provedor de identidades para o Amazon Redshift ao usar a autenticação única. 
+  1 \$1 TRUE: o driver coloca em letras minúsculas todos os DbGroups que são enviados do provedor de identidades. 
+  0 \$1 FALSE: o driver não altera os DbGroups. 

Esse parâmetro é opcional.

## group\$1federation
<a name="odbc20-group-federation-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booliano que especifica se a API `getClusterCredentialsWithIAM` é usada para obter credenciais temporárias de cluster em clusters provisionados. Essa opção permite que os usuários do IAM se integrem aos perfis do banco de dados do Redshift em clusters provisionados. Essa opção não se aplica a namespaces do Redshift sem servidor.
+  1 \$1 TRUE: o driver usa a API `getClusterCredentialsWithIAM` para obter credenciais temporárias de cluster em clusters provisionados. 
+  0 \$1 FALSE: o driver usa a API `getClusterCredentials` padrão para obter credenciais temporárias de cluster em clusters provisionados. 

Esse parâmetro é opcional.

## https\$1proxy\$1host
<a name="odbc20-https-proxy-host-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do host ou endereço IP do servidor de proxy por meio do qual você deseja transmitir processos de autenticação do IAM.

Esse parâmetro é opcional.

## https\$1proxy\$1password
<a name="odbc20-https-proxy-password-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A senha que você utiliza para acessar o servidor proxy. Ele é usado para autenticação do IAM.

Esse parâmetro é opcional.

## https://proxy\$1port
<a name="odbc20-https-proxy-port-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: inteiro

O número da porta que o servidor proxy usa para escutar as conexões do cliente. Ele é usado para autenticação do IAM.

Esse parâmetro é opcional.

## https\$1proxy\$1username
<a name="odbc20-https-proxy-username-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de usuário que você usa para acessar o servidor de proxy. Ele é usado para autenticação do IAM.

Esse parâmetro é opcional.

## IAM
<a name="odbc20-iam-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver usa um método de autenticação do IAM para autenticar a conexão. 
+  1 \$1 TRUE: o driver usa um dos métodos de autenticação do IAM (usando uma chave de acesso e um par de chaves secretas, um perfil ou um serviço de credenciais). 
+  0 \$1 FALSE. O driver usa autenticação padrão (usando o nome de usuário e a senha do banco de dados). 

Esse parâmetro é opcional.

## idc\$1client\$1display\$1name
<a name="odbc20-idc_client_display_name-option"></a>
+ **Valor padrão**: driver ODBC do Amazon Redshift
+ **Tipo de dados** – String

O nome de exibição a ser usado para o cliente que está usando o BrowserIdcAuthPlugin.

Esse parâmetro é opcional.

## idc\$1region
<a name="odbc20-idc_region"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A região da AWS onde a instância do Centro de Identidade do AWS IAM está localizada.

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração plugin\$1name.

## idp\$1host
<a name="odbc20-idp-host-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O host IdP (provedor de identidades) que você está usando para autenticar no Amazon Redshift.

Esse parâmetro é opcional.

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: inteiro

A porta para um IdP (provedor de identidades) que você está usando para autenticar no Amazon Redshift. Dependendo da porta selecionada ao criar, modificar ou migrar o cluster, permita o acesso à porta selecionada. 

Esse parâmetro é opcional.

## idp\$1response\$1timeout
<a name="odbc20-idp-response-timeout-option"></a>
+ **Valor padrão** – 120
+ **Tipo de dados**: inteiro

Quantos segundos o driver aguarda pela resposta SAML do provedor de identidades ao usar os serviços SAML ou Azure AD por meio de um plug-in de navegador. 

Esse parâmetro é opcional.

## idp\$1tenant
<a name="odbc20-idp-tenant-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 O ID do locatário Azure AD associado à sua aplicação Amazon Redshift.

Esse parâmetro é necessário se autenticar por meio do serviço Azure AD.

## idp\$1partition
<a name="odbc20-idp-partition-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Especifica a partição na nuvem em que o provedor de identidades (IdP) está configurado. Isso determina a qual endpoint de autenticação do IdP o driver se conecta.

Se esse parâmetro for deixado em branco, o driver usará como padrão a partição comercial. Os valores possíveis são:
+ `us-gov`: use este valor se seu IdP estiver configurado no Azure Government. Por exemplo, o Azure AD Government usa o endpoint `login.microsoftonline.us`.
+ `cn`: use este valor se seu IdP estiver configurado na partição de nuvem da China. Por exemplo, o Azure AD China usa o endpoint `login.chinacloudapi.cn`.

Esse parâmetro é opcional.

## idp\$1use\$1https\$1proxy
<a name="odbc20-idp-use-https-proxy-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver passa os processos de autenticação para provedores de identidade (IdP) por meio de um servidor de proxy. 
+  1 \$1 TRUE: o driver transmite processos de autenticação do IdP por meio de um servidor de proxy. 
+  0 \$1 FALSE. O driver não transmite processos de autenticação do IdP por meio de um servidor de proxy. 

Esse parâmetro é opcional.

## InstanceProfile
<a name="odbc20-instanceprofile-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver usa o perfil de instância do Amazon EC2, quando configurado, para usar um perfil para autenticação.
+  1 \$1 TRUE: o driver usa o perfil de instância do Amazon EC2. 
+  0 \$1 FALSE. Em vez disso, o driver usa o perfil de funções encadeadas especificado pela opção Nome do perfil (**Profile** (Perfil)). 

Esse parâmetro é opcional.

## issuer\$1url
<a name="odbc20-issuer_url"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 Aponta para o endpoint da instância do servidor do Centro de Identidade do AWS IAM. 

Esse parâmetro só é necessário durante a autenticação usando `BrowserIdcAuthPlugin` na opção de configuração plugin\$1name.

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **Valor padrão** – 1
+ **Tipo de dados**: booleano

Um booleano que especifica se o driver usa keepalives TCP para evitar que o tempo limite das conexões se esgote.
+  1 \$1 TRUE: o driver usa keepalives TCP para evitar que o tempo limite das conexões se esgote. 
+  0 \$1 FALSE. O driver não usa keepalives TCP. 

Esse parâmetro é opcional.

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O número de pacotes de keepalive de TCP que podem ser perdidos antes que a conexão seja considerada interrompida. Quando esse parâmetro está definido como 0, o driver usa o sistema padrão para essa configuração. 

Esse parâmetro é opcional.

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O número de segundos entre cada retransmissão de keepalive de TCP. Quando esse parâmetro está definido como 0, o driver usa o sistema padrão para essa configuração. 

Esse parâmetro é opcional.

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O número de segundos de inatividade antes que o driver envie um pacote de manutenções de atividade de TCP. Quando esse parâmetro está definido como 0, o driver usa o sistema padrão para essa configuração. 

Esse parâmetro é opcional.

## listen\$1port
<a name="odbc20-listen-port-option"></a>
+ **Valor padrão** – 7890
+ **Tipo de dados**: inteiro

A porta que o driver usa para receber a resposta SAML do provedor de identidades ou o código de autorização ao usar os serviços SAML, Azure AD ou Centro de Identidade do AWS IAM por meio de um plug-in do navegador.

Esse parâmetro é opcional.

## login\$1url
<a name="odbc20-login-url-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A URL do recurso no site do provedor de identidades ao usar o plug-in SAML de navegador genérico.

Esse parâmetro é necessário se autenticar com os serviços SAML ou Azure AD por meio de um plug-in de navegador.

## loginToRp
<a name="odbc20-logintorp-option"></a>
+ **Valor padrão** - urn:amazon:webservices
+ **Tipo de dados** – String

A relação de confiança de parte confiável que você deseja usar para o tipo de autenticação do AD FS.

Essa string é opcional.

## LogLevel
<a name="odbc20-loglevel-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

Use essa propriedade para habilitar ou desabilitar o registro em log no driver e especificar a quantidade de detalhes incluídos nos arquivos de log. Recomendamos que você ative o registro em log apenas por tempo suficiente para capturar um problema, pois o registro em log diminui o desempenho e pode consumir uma grande quantidade de espaço em disco.

 Define a propriedade com um dos seguintes valores:
+  0: OFF. Desative todos os registros em log. 
+  1: ERROR. Registra em log eventos de erro que podem permitir que o driver continue em execução mas produza um erro. 
+  2: API\$1CALL. Registra em log chamadas de função da API ODBC com valores de argumento de função. 
+  3: INFO. Registra em log informações gerais que descrevem o andamento do driver. 
+  4: MSG\$1PROTOCOL. Registra em log informações detalhadas do protocolo de mensagens do driver. 
+  5: DEBUG. Registra em log todas as atividades do driver 
+  6: DEBUG\$1APPEND. Continue anexando registros em log para todas as atividades do driver. 

Quando o registro em log está habilitado, o driver produz os seguintes arquivos de log no local especificado na propriedade **LogPath**: 
+  Um arquivo `redshift_odbc.log.1` que registra em log a atividade do driver que ocorre durante o handshake de uma conexão. 
+  Um arquivo `redshift_odbc.log` para todas as atividades do driver depois que uma conexão é estabelecida com o banco de dados. 

Esse parâmetro é opcional.

## LogPath
<a name="odbc20-logpath-option"></a>
+ **Valor padrão** - O diretório TEMP específico do sistema operacional
+ **Tipo de dados** – String

O caminho completo para a pasta onde o driver salva arquivos de log quando **LogLevel** é maior que 0.

Esse parâmetro é opcional.

## Min\$1TLS
<a name="odbc20-min-tls-option"></a>
+ **Valor padrão** – 1.2
+ **Tipo de dados** – String

 A versão mínima do TLS/SSL que o driver permite que o datastore use para criptografar conexões. Por exemplo, se o TLS 1.2 for especificado, não será possível usar o TLS 1.1 para criptografar conexões.

Min\$1TLS aceita os seguintes valores:
+  1.0: A conexão deve usar pelo menos TLS 1.0. 
+  1.1: A conexão deve usar pelo menos TLS 1.1. 
+  1.2: A conexão deve usar pelo menos TLS 1.2. 

Esse parâmetro é opcional.

## partner\$1spid
<a name="odbc20-partner-spid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O valor SPID (ID do provedor de serviços) do parceiro a ser usado ao autenticar a conexão usando o serviço PingFederate.

Esse parâmetro é opcional.

## Senha \$1 PWS
<a name="odbc20-password-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A senha correspondente ao nome de usuário do banco de dados que você forneceu no campo Usuário (**UID** \$1 **Usuário** \$1 **LogonID**). 

Esse parâmetro é opcional.

## plugin\$1name
<a name="odbc20-plugin-name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do plug-in do provedor de credenciais que você deseja usar para autenticação. 

 Os valores a seguir são aceitos: 
+  `ADFS`: use os serviços de federação do Active Directory para autenticação. 
+  `AzureAD`: use o Serviço Microsoft Azure Active Directory (AD) para autenticação. 
+  `BrowserAzureAD`: use um plug-in de navegador para o Serviço Microsoft Azure Active Directory (AD) para autenticação. 
+  `BrowserIdcAuthPlugin `: um plug-in de autorização que usa o Centro de Identidade do AWS IAM. 
+  `BrowserSAML`: use um plug-in do navegador para serviços SAML como Okta ou Ping para autenticação. 
+  `IdpTokenAuthPlugin`: um plug-in de autorização que aceita um token do Centro de Identidade do AWS IAM ou tokens de identidade baseados em JSON (JWT) do OpenID Connect (OIDC) de qualquer provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM. 
+  `JWT`: use um JSON Web Token (JWT) para autenticação. 
+  `Ping`: use o serviço PingFederate para autenticação. 
+  `Okta`: use o serviço Okta para autenticação. 

Esse parâmetro é opcional.

## Porta \$1 PortNumber
<a name="odbc20-port-option"></a>
+ **Valor padrão** – 5439
+ **Tipo de dados**: inteiro

O número da porta TCP que o servidor Amazon Redshift usa para escutar as conexões do cliente. 

Esse parâmetro é opcional.

## preferred\$1role
<a name="odbc20-preferred-role-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

A função que você deseja assumir durante a conexão com o Amazon Redshift. Ele é usado para autenticação do IAM.

Esse parâmetro é opcional.

## Perfil
<a name="odbc20-profile-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do perfil da AWS de usuário usado para autenticar no Amazon Redshift.
+  Se o parâmetro Use Instance Profile (a propriedade **InstanceProfile**) for definido como 1 \$1 TRUE, essa configuração terá precedência e o driver usará o perfil de instância do Amazon EC2. 
+  O local padrão do arquivo de credenciais que contém perfis é `~/.aws/Credentials`. O ambiente `AWS_SHARED_CREDENTIALS_FILE` pode ser usado para apontar para um arquivo de credenciais diferente. 

Esse parâmetro é opcional.

## provider\$1name
<a name="odbc20-provider-name-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O provedor de autenticação criado pelo usuário usando a consulta CREATE IDENTITY PROVIDER. Ele é usado na autenticação nativa do Amazon Redshift.

Esse parâmetro é opcional.

## ProxyHost
<a name="odbc20-proxyhost-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome do host ou endereço IP do servidor de proxy ao qual você quer se conectar.

Esse parâmetro é opcional.

## ProxyPort
<a name="odbc20-proxyport-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados**: inteiro

O número da porta que o servidor proxy usa para escutar as conexões do cliente.

Esse parâmetro é opcional.

## ProxyPwd
<a name="odbc20-proxypwd-option"></a>
+ **Versão padrão do driver ODBC anterior**: nenhuma.
+ **Tipo de dados** – String

A senha que você utiliza para acessar o servidor proxy. 

Esse parâmetro é opcional.

## ProxyUid
<a name="odbc20-proxyuid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de usuário que você usa para acessar o servidor de proxy.

Esse parâmetro é opcional.

## ReadOnly
<a name="odbc20-readonly-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver está em modo somente leitura. 
+  1 \$1 TRUE: a conexão está no modo somente leitura e não pode gravar no datastore. 
+  0 \$1 FALSE: a conexão não está no modo somente leitura e pode gravar no datastore. 

Esse parâmetro é opcional.

## region
<a name="odbc20-region-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Substitua AWS pela região em que seu cluster está localizado. 

Esse parâmetro é opcional.

## SecretAccessKey
<a name="odbc20-secretaccesskey-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 A chave secreta do IAM para o usuário ou função. Se definir esse parâmetro, você também deverá configurar **AccessKeyID**. 

Esse parâmetro é opcional.

## SessionToken
<a name="odbc20-sessiontoken-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

 O token temporário de sessão do IAM associado ao perfil do IAM que você está usando para autenticar. 

Esse parâmetro é opcional.

## Servidor \$1 HostName \$1 Host
<a name="odbc20-server-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O servidor do endpoint para conectar-se.

Esse parâmetro é obrigatório.

## ssl\$1insecure
<a name="odbc20-ssl-insecure-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um booleano especificando se o driver verifica a autenticidade do certificado do servidor IdP.
+  1 \$1 TRUE: o driver não verifica a autenticidade do certificado do servidor IDP. 
+  0 \$1 FALSE: o driver verifica a autenticidade do certificado do servidor idP. 

Esse parâmetro é opcional.

## SSLMode
<a name="odbc20-sslmode-option"></a>
+ **Valor padrão** – `verify-ca`
+ **Tipo de dados** – String

O modo de verificação do certificado SSL para usar ao se conectar ao Amazon Redshift. Os seguintes valores são possíveis: 
+  `verify-full`: Conectar somente usando SSL, uma autoridade de certificação confiável e um nome de servidor que corresponda ao certificado. 
+  `verify-ca`: Conectar somente usando SSL e uma autoridade de certificação confiável. 
+  `require`: Conectar somente usando SSL. 
+  `prefer`: Conectar usando SSL, se disponível. Caso contrário, conectar sem usar SSL. 
+  `allow`: por padrão, conectar sem usar SSL. Se o servidor exigir conexões SSL, use SSL. 
+  `disable`: Conectar sem usar SSL. 

Esse parâmetro é opcional.

## StsConnectionTimeout
<a name="odbc20-stsconnectiontimeout-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: inteiro

O tempo máximo de espera para conexões do IAM, em segundos. Se definido como 0 ou não especificado, o driver espera 60 segundos para cada chamada AWS STS. 

Esse parâmetro é opcional.

## StsEndpointUrl
<a name="odbc20-stsendpointurl-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

Essa opção especifica o endpoint de substituição usado para se comunicar com o AWS Security Token Service (AWS STS). 

Esse parâmetro é opcional.

## token
<a name="jdbc20-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O Centro de Identidade do AWS IAM forneceu um token de acesso ou um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM. A aplicação deve gerar esse token autenticando o usuário da aplicação com o Centro de Identidade do AWS IAM ou um provedor de identidades vinculado ao Centro de Identidade do AWS IAM. 

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O tipo de token que está sendo usado no `IdpTokenAuthPlugin`.

Especifique os seguintes valores:

**ACCESS\$1TOKEN**  
Insira se você usar um token de acesso fornecido pelo Centro de Identidade do AWS IAM.

**EXT\$1JWT**  
Insira se você usar um token web JSON (JWT) do OpenID Connect (OIDC) fornecido por um provedor de identidades baseado na web integrado ao Centro de Identidade do AWS IAM.

Esse parâmetro funciona com `IdpTokenAuthPlugin`.

## UID \$1 Usuário \$1 LogonID
<a name="odbc20-uid-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O nome de usuário que você usa para acessar o servidor do Amazon Redshift.

Esse parâmetro será necessário se você usar autenticação de banco de dados.

## UseUnicode
<a name="odbc20-useunicode-option"></a>
+ **Valor padrão** – 0
+ **Tipo de dados**: booleano

Um valor booliano especificando se o driver exibe dados do Redshift como tipos Unicode ou SQL regulares.
+  1 \$1 TRUE: o driver exibe o tipo SQL amplo para o tipo de dados do caractere. 
  + SQL\$1WCHAR é exibido em vez de SQL\$1CHAR.
  + SQL\$1WVARCHAR é exibido em vez de SQL\$1VARCHAR.
  + SQL\$1WLONGVARCHAR é exibido em vez de SQL\$1LONGVARCHAR.
+  0 \$1 FALSE: o driver exibe o tipo SQL normal para o tipo de dados do caractere. 
  + SQL\$1CHAR é exibido em vez de SQL\$1WCHAR.
  + SQL\$1VARCHAR é exibido em vez de SQL\$1WVARCHAR.
  + SQL\$1LONGVARCHAR é exibido em vez de SQL\$1WLONGVARCHAR.

Esse parâmetro é opcional. Só está disponível nas versões 2.1.15 e posteriores do driver.

## web\$1identity\$1token
<a name="odbc20-web-identity-token-option"></a>
+ **Valor padrão**: nenhum
+ **Tipo de dados** – String

O token OAUTH fornecido pelo provedor de identidades. Ele é usado no plugin JWT.

Esse parâmetro será necessário se você definir o parâmetro **plugin\$1name** como BasicJwtCredentialsProvider.

# Versões anteriores do driver ODBC
<a name="odbc20-previous-versions"></a>

Baixe uma versão anterior do driver ODBC versão 2.x do Amazon Redshift somente se sua ferramenta exigir uma versão específica do driver. 

## Usar versões anteriores do driver ODBC para o Microsoft Windows
<a name="odbc20-previous-versions-windows"></a>

A seguir estão as versões 2.x anteriores do driver ODBC do Amazon Redshift para Microsoft Windows: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi) 

## Usar versões anteriores do driver ODBC para Linux
<a name="odbc20-previous-versions-linux"></a>

A seguir estão as versões 2.x anteriores do driver ODBC do Amazon Redshift para Linux: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86_64.rpm) 

## Usar versões anteriores do driver ODBC para Apple macOS
<a name="odbc20-previous-versions-mac"></a>

Veja a seguir as versões anteriores do driver ODBC do Amazon Redshift para Apple macOS: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg) 

# Configurar a conexão de um driver ODBC versão 1.x
<a name="configure-odbc-connection"></a>

Você pode usar uma conexão ODBC para se conectar ao seu cluster Amazon Redshift a partir de muitas ferramentas e aplicações de cliente SQL de terceiros. Para fazer isso, configure a conexão em seu computador cliente ou instância do Amazon EC2. Se sua ferramenta cliente oferece suporte ao JDBC, você pode optar por usar esse tipo de conexão em vez de usar o ODBC, devido à facilidade de configuração que o JDBC oferece. Contudo, se sua ferramenta cliente não oferece suporte ao JDBC, siga as etapas nesta seção para configurar uma conexão ODBC. 

O Amazon Redshift fornece drivers ODBC 64 bits para sistemas operacionais Linux, Windows e macOS X. Os drivers ODBC de 32 bits foram descontinuados. Outras atualizações não serão lançadas, exceto para patches de segurança urgentes. 

Para obter as informações mais recentes sobre a funcionalidade e os pré-requisitos do driver ODBC, consulte as [Notas de release do driver ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Release+Notes.pdf). 

Para obter informações sobre a instalação e a configuração de drivers ODBC do Amazon Redshift, consulte [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Obter o URL do ODBC](obtain-odbc-url.md)
+ [Usar um driver ODBC do Amazon Redshift no Microsoft Windows](install-odbc-driver-windows.md)
+ [Usar um driver ODBC do Amazon Redshift no Linux](install-odbc-driver-linux.md)
+ [Usar um driver ODBC do Amazon Redshift no macOS X](install-odbc-driver-mac.md)
+ [Opções do driver ODBC](configure-odbc-options.md)
+ [Versões anteriores do driver ODBC](odbc-previous-versions.md)

# Obter o URL do ODBC
<a name="obtain-odbc-url"></a>

O Amazon Redshift exibe o URL do ODBC para o cluster no console do Amazon Redshift. Este URL contém as informações para a configuração da conexão entre o computador cliente e o banco de dados.

 O URL do ODBC tem o seguinte formato: `Driver={driver};Server=endpoint;Database=database_name;UID=user_name;PWD=password;Port=port_number` 

Os campos do formato mostrado anteriormente têm os seguintes valores.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/obtain-odbc-url.html)

 Os campos nas tabelas anteriores podem conter os seguintes caracteres especiais:

```
[]{}(),;?*=!@ 
```

 Se você usar esses caracteres especiais, deverá colocar o valor entre chaves. Por exemplo, o valor de senha `Your;password123` em uma string de conexão é representado como `PWD={Your;password123};`. 

 Como os pares `Field=value` são separados por ponto e vírgula, a combinação de `}` e `;` com qualquer número de espaços entre eles é considerada o fim de um par `Field={value};`. Recomendamos que você evite a sequência `};` nos valores de campo. Por exemplo, se você definir o valor da senha como `PWD={This is a passwor} ;d};`, sua senha será `This is a passwor} ;` e o URL apresentará um erro. 

Veja a seguir um exemplo de URL de ODBC.

```
Driver={Amazon Redshift (x64)};
                    Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com;
                    Database=dev; 
                    UID=adminuser;
                    PWD=insert_your_admin_user_password_here;
                    Port=5439
```

Para obter informações sobre como obter sua conexão ODBC, consulte [Encontrar a string de conexão do cluster](connecting-connection-string.md). 

# Usar um driver ODBC do Amazon Redshift no Microsoft Windows
<a name="install-odbc-driver-windows"></a>

Você instala o driver ODBC do Amazon Redshift em computadores clientes que acessam um data warehouse do Amazon Redshift. Cada computador onde o driver é instalado deve atender a uma lista de requisitos mínimos do sistema. Para obter informações sobre os requisitos mínimos do sistema, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Baixar e instalar o driver ODBC do Amazon Redshift](odbc-driver-windows-how-to-install.md)
+ [Criação de uma entrada de DSN do sistema para uma conexão ODBC](create-dsn-odbc-windows.md)

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc-driver-windows-how-to-install"></a>

Use o procedimento a seguir para baixar os drivers ODBC do Amazon Redshift para sistemas operacionais Windows. Use apenas um driver diferente desses se estiver executando uma aplicação de terceiros certificado para uso com o Amazon Redshift e que requer um driver específico. 

**Para instalar o driver ODBC do**

1. Baixe uma das versões a seguir, dependendo da arquitetura de sistema usada pela aplicação ou pela ferramenta do cliente SQL: 
   + [Driver ODBC de 64 bits versão 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC64-1.6.3.1008.msi) 

     O nome deste driver é Amazon Redshift (x64).
   + [Driver ODBC de 32 bits versão 1.4.52](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC32-1.4.52.1000.msi) 

     O nome deste driver é Amazon Redshift (x86). Os drivers ODBC de 32 bits foram descontinuados. Outras atualizações não serão lançadas, exceto para patches de segurança urgentes.
**nota**  
Baixe o pacote MSI que correspondente à arquitetura de sistema da ferramenta do cliente ou do aplicativo SQL. Por exemplo, se a ferramenta do cliente SQL é de 64 bits, instale o driver de 64 bits.

    Depois, baixe e revise o [Acordo de licença do driver ODBC e JDBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1.  Clique duas vezes no arquivo .msi e, em seguida, siga os passos do assistente para instalar o driver. 

# Criação de uma entrada de DSN do sistema para uma conexão ODBC
<a name="create-dsn-odbc-windows"></a>

Depois de baixar e instalar o driver ODBC, adicione uma entrada de nome de origem dos dados (DSN) ao computador cliente ou instância do Amazon EC2. As ferramentas de cliente SQL usam essa origem dos dados para se conectar ao banco de dados do Amazon Redshift. 

Recomendamos a criação de um DSN de sistema em vez de um DSN de usuário. Alguns aplicativos carregam os dados usando uma conta de usuário diferente. Esses aplicativos podem não conseguir detectar DSNs de usuário criados em outra conta de usuário.

**nota**  
Para realizar a autenticação usando as credenciais do AWS Identity and Access Management (IAM) ou do provedor de identidades (IdP), serão necessárias etapas adicionais. Para obter mais informações, consulte [Etapa 5: configurar uma conexão JDBC ou ODBC para usar credenciais do IAM](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc).

Para obter informações sobre como criar uma entrada DSN do sistema, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Como criar uma entrada de DSN de sistema para uma conexão ODBC no Windows**

1. No menu **Iniciar**, abra **Fontes de dados ODBC**.

   Certifique-se de escolher o Administrador de origem dos dados ODBC que tem a mesma quantidade de bits da aplicação cliente que você está usando para se conectar ao Amazon Redshift.

1. Em **ODBC Data Source Administrator** (Administrador de origem dos dados ODBC), escolha a guia **Drivers** e localize a pasta do driver:
   + **Driver ODBC do Amazon Redshift (64 bits)**
   + **Driver ODBC do Amazon Redshift (32 bits)**

1.  Selecione a guia **DSN de Sistema** a fim de configurar o driver para todos os usuários no computador, ou a guia **DSN de Usuário** a fim de configurar o driver apenas para sua conta de usuário. 

1.  Escolha **Adicionar**. A janela **Create New Data Source** é exibida. 

1.  Escolha o driver ODBC do **Amazon Redshift** e, em seguida, escolha **Concluir**. A janela **Configuração de DSN do driver ODBC do Amazon Redshift** é exibida.

1. Em **Connection Settings**, insira as seguintes informações:
<a name="rs-mgmt-dsn"></a>
**Nome da fonte de dados**  
Insira um nome para a fonte de dados. Use um nome qualquer para identificar a fonte de dados posteriormente, quando você criar a conexão com o cluster. Por exemplo, se você seguiu o *Guia de conceitos básicos do Amazon Redshift*, pode digitar `exampleclusterdsn` para facilitar a lembrança do cluster que associa a este DSN.
<a name="rs-mgmt-server"></a>
**Servidor**  
Especifique o endpoint do cluster do Amazon Redshift. Você pode encontrar essas informações no console do Amazon Redshift na página de detalhes do cluster. Para obter mais informações, consulte [Configurar conexões no Amazon Redshift](configuring-connections.md).
<a name="rs-mgmt-port"></a>
**Porta**  
Insira o número da porta que o banco de dados usa. Use a porta que foi configurada para o cluster quando ele foi iniciado ou modificado.
<a name="rs-mgmt-database"></a>
**Banco de dados**  
Insira o nome do banco de dados do Amazon Redshift. Se você iniciou o cluster sem especificar um nome de banco de dados, insira `dev`. Caso contrário, use o nome escolhido durante o processo de inicialização. Se você seguiu o *Guia de conceitos básicos do Amazon Redshift*, insira `dev`.

1. Em **Autenticação**, especifique as opções de configuração para definir autenticação padrão ou do IAM. Para obter informações sobre as opções de autenticação, consulte “Configurar a autenticação no Windows” no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

1. Em **SSL Settings**, especifique um valor para:
<a name="rs-mgmt-ssl-authentication"></a>
**Autenticação SSL**  
Escolha um modo para tratar o Secure Sockets Layer (SSL). Em um ambiente de teste, você pode usar `prefer`. No entanto, para ambientes de produção e quando um intercâmbio de dados seguro for necessário, use `verify-ca` ou `verify-full`. Para obter mais informações sobre como usar SSL no Windows, consulte "Configurando a verificação SSL no Windows" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

1. Em **Opções Adicionais**, especifique opções sobre como retornar os resultados de consultas ao aplicativo ou ferramenta do cliente SQL. Para obter mais informações, consulte "Configurando opções adicionais no Windows" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

1. Em **Opções de Log**, especifique valores para a opção de registro em log. Para obter mais informações, consulte "Configurando opções de registro em log no Windows" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

   Escolha **OK**.

1. Em **Opções de Tipo de Dados**, especifique valores para os tipos de dados. Para obter mais informações, consulte "Configurando opções de tipo de dados no Windows" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

   Escolha **OK**.

1. Escolha **Testar**. Se o computador cliente puder se conectar ao banco de dados Amazon Redshift, você verá a seguinte mensagem: **Conexão bem-sucedida**. 

    Se a conexão do computador cliente com o banco de dados falhar, você pode tentar solucionar os possíveis problemas. Para obter mais informações, consulte [Solução de problemas de conexão no Amazon Redshift](troubleshooting-connections.md). 

1. Configure manutenções de atividade de TCP no Windows para impedir que as conexões atinjam o tempo limite. Para obter informações sobre como configurar keepalives TCP no Windows, consulte o *Guia de instalação e configuração do conector ODBC Amazon Redshift*.

1. Para ajudar na solução de problemas, configure o registro em log. Para obter informações sobre como configurar o registro em log no Windows, consulte o *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

# Usar um driver ODBC do Amazon Redshift no Linux
<a name="install-odbc-driver-linux"></a>

Você instala o driver ODBC do Amazon Redshift em computadores clientes que acessam um data warehouse do Amazon Redshift. Cada computador onde o driver é instalado deve atender a uma lista de requisitos mínimos do sistema. Para obter informações sobre os requisitos mínimos do sistema, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Baixar e instalar o driver ODBC do Amazon Redshift](odbc-driver-linux-how-to-install.md)
+ [Usar um gerenciador de driver ODBC para configurar o driver](odbc-driver-configure-linux.md)

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc-driver-linux-how-to-install"></a>

Siga as etapas nesta seção para baixar e instalar os drivers ODBC do Amazon Redshift em uma distribuição Linux compatível. O processo de instalação instala os arquivos de driver nos seguintes diretórios: 
+ `/opt/amazon/redshiftodbc/lib/64` (para o driver de 64 bits)
+ `/opt/amazon/redshiftodbc/ErrorMessages`
+ `/opt/amazon/redshiftodbc/Setup`
+  `/opt/amazon/redshiftodbc/lib/32` (para o driver de 32 bits)<a name="rs-mgmt-install-odbc-drivers-linux"></a>

**Para instalar o driver ODBC do Amazon Redshift**

1. Baixe uma das versões a seguir, dependendo da arquitetura de sistema usada pela aplicação ou pela ferramenta do cliente SQL: 
   + [Driver RPM de 64 bits versão 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.rpm) 
   + [Driver Debian de 64 bits versão 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.deb) 
   + [Driver RPM de 64 bits versão 1.5.52](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-32-bit-1.4.52.1000-1.i686.rpm) 

   O nome de cada um desses drivers é driver ODBC do Amazon Redshift. Os drivers ODBC de 32 bits foram descontinuados. Outras atualizações não serão lançadas, exceto para patches de segurança urgentes.
**nota**  
Baixe o pacote que correspondente à arquitetura de sistema da ferramenta do cliente ou do aplicativo SQL. Por exemplo, se a ferramenta do cliente é de 64 bits, instale um driver de 64 bits.

    Depois, baixe e revise o [Acordo de licença do driver ODBC e JDBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Navegue até o local onde você salvou o download do pacote e execute um dos comandos a seguir. Use o comando que corresponde a sua distribuição do Linux. 
   + Em sistemas operacionais RHEL e CentOS , execute o comando a seguir.

     ```
     yum -nogpgcheck localinstall RPMFileName
     ```

     Substitua *`RPMFileName`* pelo nome do arquivo de pacote do RPM. Por exemplo, o comando a seguir demonstra a instalação do driver de 64 bits.

     ```
     yum -nogpgcheck localinstall AmazonRedshiftODBC-64-bit-1.x.xx.xxxx-x.x86_64.rpm
     ```
   + Em SLES, execute o comando a seguir.

     ```
     zypper install RPMFileName
     ```

     Substitua *`RPMFileName`* pelo nome do arquivo de pacote do RPM. Por exemplo, o comando a seguir demonstra a instalação do driver de 64 bits.

     ```
     zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm
     ```
   + Em Debian, execute o comando a seguir.

     ```
     sudo apt install ./DEBFileName.deb
     ```

     Substitua `DEBFileName.deb` pelo nome do arquivo de pacote do Debian. Por exemplo, o comando a seguir demonstra a instalação do driver de 64 bits.

     ```
     sudo apt install ./AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.deb
     ```

**Importante**  
Quando você tiver concluído a instalação dos drivers, configure-os para usar no sistema. Para obter mais informações sobre a configuração de drivers, consulte [Usar um gerenciador de driver ODBC para configurar o driverUsar um gerenciador de driver ODBC para configurar o driver](odbc-driver-configure-linux.md).

# Usar um gerenciador de driver ODBC para configurar o driver
<a name="odbc-driver-configure-linux"></a>

Nos sistemas operacionais Linux, utilize o gerenciador de driver ODBC para configurar as definições de conexão ODBC. Os gerenciadores de driver ODBC usam arquivos de configuração para definir e configurar as fontes de dados e os drivers ODBC. O gerenciador de driver ODBC a ser usado dependerá do sistema operacional em uso. Para Linux, é o gerenciador de drivers unixODBC.

Para ter mais informações sobre os gerenciadores de driver ODBC com suporte para configurar os drivers ODBC do Amazon Redshift, consulte [Usar um driver ODBC do Amazon Redshift no LinuxUsar um driver ODBC no Linux](install-odbc-driver-linux.md) para sistemas operacionais Linux. Consulte também “Especificar gerenciadores de drivers ODBC em máquinas que não utilizam Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Três arquivos são necessários para configurar o driver ODBC do Amazon Redshift: `amazon.redshiftodbc.ini`, `odbc.ini` e `odbcinst.ini`.

Se você fez a instalação no local padrão, o arquivo de configuração `amazon.redshiftodbc.ini` estará localizado em um dos seguintes diretórios:
+ `/opt/amazon/redshiftodbc/lib/64` (para o driver de 64 bits em sistemas operacionais Linux)
+ `/opt/amazon/redshiftodbc/lib/32` (para o driver de 32 bits em sistemas operacionais Linux)

Além disso, em `/opt/amazon/redshiftodbc/Setup` no Linux, há os arquivos de exemplo `odbc.ini` e `odbcinst.ini`. Você pode usar esses arquivos como exemplos para configurar o driver ODBC do Amazon Redshift e o nome da origem dos dados (DSN).

Não é recomendado o uso do diretório de instalação do driver ODBC do Amazon Redshift para os arquivos de configuração. Os arquivos de exemplo do diretório `Setup` devem ser usados somente para servir de modelo. Se você reinstalar o driver ODBC do Amazon Redshift posteriormente ou atualizar para uma versão mais recente, o diretório de instalação será substituído. Você perderá todas as alterações que fez nesses arquivos.

Para evitar isso, copie o arquivo `amazon.redshiftodbc.ini` para um diretório diferente do diretório de instalação. Se você copiar esse arquivo no diretório base do usuário, adicione um ponto (.) ao início do nome do arquivo para torná-lo um arquivo oculto.

Para os arquivos `odbc.ini` e `odbcinst.ini`, use os arquivos de configuração do diretório inicial do usuário ou crie versões em um outro diretório. Por padrão, os sistemas operacionais Linux devem ter os arquivos `odbc.ini` e `odbcinst.ini` no diretório inicial do usuário (`/home/$USER` ou `~/`). Esses arquivos padrão são arquivos ocultos, o que é indicado pelo ponto (.) na frente do nome de cada arquivo. Esses arquivos são exibidos somente ao usar o sinalizador `-a` para listar o conteúdo do diretório.

Qualquer que seja a opção escolhida para os arquivos `odbc.ini` e `odbcinst.ini`, modifique os arquivos para adicionar as informações do driver e da configuração de DSN. Se você criar arquivos, também precisará definir as variáveis do ambiente para especificar onde esses arquivos de configuração estão localizados. 

Por padrão, os gerenciadores de driver ODBC são configurados para usar versões ocultas dos arquivos de configuração `odbc.ini` e `odbcinst.ini` (chamados `odbc.ini` e `odbcinst.ini`) localizadas no diretório inicial. Eles também são configurados para usar o arquivo `amazon.redshiftodbc.ini` na subpasta `/lib` do diretório de instalação do driver. Se você armazenar esses arquivos de configuração em outro lugar, defina as variáveis de ambiente descritas a seguir para que o gerenciador de driver possa localizar os arquivos. Para obter mais informações, consulte “Especificar os locais dos arquivos de configuração do driver” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). . 

## Criar um nome de fonte de dados em sistemas operacionais Linux
<a name="configure-odbc-ini-file"></a>

 Ao conectar-se ao armazenamento de dados usando um nome da fonte de dados (DSN), configure o arquivo `odbc.ini` para definir DSNs. Defina as propriedades no arquivo `odbc.ini` para criar um DSN que especifique as informações de conexão para o armazenamento de dados.

Para obter informações sobre como configurar o arquivo `odbc.ini`, consulte “Criar um nome da fonte de dados em uma máquina que não usa Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) . 

 Use o formato a seguir em sistemas operacionais Linux.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

O exemplo a seguir mostra a configuração do odbc.ini com driver ODBC de 64 bits em sistemas operacionais Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

O exemplo a seguir mostra a configuração do odbc.ini com driver ODBC de 32 bits em sistemas operacionais Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x32=Amazon Redshift (x86)

[Amazon Redshift (x86)]
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configurar uma conexão sem DSN em sistemas operacionais Linux
<a name="configure-odbcinst-ini-file"></a>

Para se conectar ao armazenamento de dados por meio de uma conexão que não tenha um DSN, defina o driver no arquivo `odbcinst.ini`. Depois, forneça uma string de conexão sem DSN no aplicativo.

Para obter informações sobre como configurar o arquivo `odbcinst.ini` nesse caso, consulte “Configurar uma conexão sem DSN em uma máquina que não usa Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). . 

Use o formato a seguir em sistemas operacionais Linux.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

O exemplo a seguir mostra a configuração do `odbcinst.ini` para o driver de 64 bits instalados em diretórios padrão em sistemas operacionais Linux.

```
[ODBC Drivers]
Amazon Redshift (x64)=Installed

[Amazon Redshift (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
```

O exemplo a seguir mostra a configuração do `odbcinst.ini` para o driver de 32 bits instalados em diretórios padrão em sistemas operacionais Linux.

```
[ODBC Drivers]
Amazon Redshift (x86)=Installed

[Amazon Redshift (x86)]
Description=Amazon Redshift ODBC Driver (32-bit)
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
```

## Configurar variáveis de ambiente
<a name="rs-mgmt-config-global-env-variables"></a>

Use o gerenciador de driver ODBC correto para carregar o driver correto. Para isso, defina a variável de ambiente do caminho da biblioteca. Para obter mais informações, consulte “Especificar gerenciadores de driver ODBC em máquinas que não usam Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Por padrão, os gerenciadores de driver ODBC são configurados para usar versões ocultas dos arquivos de configuração `odbc.ini` e `odbcinst.ini` (chamados `odbc.ini` e `odbcinst.ini`) localizadas no diretório inicial. Eles também são configurados para usar o arquivo `amazon.redshiftodbc.ini` na subpasta `/lib` do diretório de instalação do driver. Se você armazenar esses arquivos de configuração em outro lugar, defina as variáveis de ambiente para que o gerenciador de driver possa localizar os arquivos. Para obter mais informações, consulte "Especificando os locais dos arquivos de configuração do driver" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

## Configurar recursos de conexão
<a name="connection-config-features"></a>

Você pode configurar os seguintes recursos de conexão para a configuração ODBC:
+ Configure o driver ODBC para fornecer credenciais e autenticar a conexão com o banco de dados do Amazon Redshift.
+ Configure o driver ODBC para se conectar a um soquete habilitado com Secure Sockets Layer (SSL), se você estiver se conectando a um servidor Amazon Redshift que tenha SSL habilitado.
+ Configure o driver ODBC para se conectar ao Amazon Redshift por meio de um servidor proxy.
+ Configure o driver ODBC para usar um modo de processamento de consultas a fim de impedir que as consultas consumam muita memória.
+ Configure o driver ODBC para transmitir processos de autenticação do IAM por meio de um servidor de proxy.
+ Configure o driver ODBC para usar manutenções de atividade de TCP a fim de impedir que as conexões atinjam o tempo limite.

Para obter informações sobre esses recursos de conexão, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Usar um driver ODBC do Amazon Redshift no macOS X
<a name="install-odbc-driver-mac"></a>

Você instala o driver em computadores clientes que acessam um data warehouse do Amazon Redshift. Cada computador onde o driver é instalado deve atender a uma lista de requisitos mínimos do sistema. Para obter informações sobre os requisitos mínimos do sistema, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Baixar e instalar o driver ODBC do Amazon Redshift](odbc-driver-mac-how-to-install.md)
+ [Usar um gerenciador de driver ODBC para configurar o driver](odbc-driver-configure-mac.md)

# Baixar e instalar o driver ODBC do Amazon Redshift
<a name="odbc-driver-mac-how-to-install"></a>

Siga as etapas nesta seção para baixar e instalar o driver ODBC do Amazon Redshift em uma versão compatível do macOS X. O processo de instalação instala os arquivos do driver nos seguintes diretórios: 
+ `/opt/amazon/redshift/lib/universal`
+ `/opt/amazon/redshift/ErrorMessages`
+ `/opt/amazon/redshift/Setup`<a name="rs-mgmt-install-odbc-drivers-mac"></a>

**Para instalar o driver ODBC do Amazon Redshift no macOS X**

1. Para instalar o driver ODBC do Amazon Redshift no macOS X, baixe o [driver macOS versão 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit.1.6.3.1008.universal.pkg). 

   Depois, baixe e revise o [Acordo de licença do driver ODBC e JDBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Clique duas vezes em **AmazonRedshiftODBC.pkg** para executar o instalador.

1. Siga as etapas no instalador para concluir o processo de instalação do driver. Para executar a instalação, aceite os termos do acordo de licença.

**Importante**  
Quando você tiver concluído a instalação do driver, configure-o para usar no sistema. Para obter mais informações sobre a configuração de drivers, consulte [Usar um gerenciador de driver ODBC para configurar o driverUsar um gerenciador de driver ODBC para configurar o driver](odbc-driver-configure-mac.md).

# Usar um gerenciador de driver ODBC para configurar o driver
<a name="odbc-driver-configure-mac"></a>

Nos sistemas operacionais macOS X, utilize o gerenciador de driver ODBC para configurar as definições de conexão ODBC. Os gerenciadores de driver ODBC usam arquivos de configuração para definir e configurar as fontes de dados e os drivers ODBC. O gerenciador de driver ODBC a ser usado dependerá do sistema operacional em uso. Para um sistema operacional macOS X, é o gerenciador de driver iODBC.

Para ter mais informações sobre os gerenciadores de driver ODBC com suporte para configurar os drivers ODBC do Amazon Redshift, consulte [Usar um driver ODBC do Amazon Redshift no macOS XUsar um driver ODBC no macOS X](install-odbc-driver-mac.md) para sistemas operacionais macOS X. Consulte também “Especificar gerenciadores de drivers ODBC em máquinas que não utilizam Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Três arquivos são necessários para configurar o driver ODBC do Amazon Redshift: `amazon.redshiftodbc.ini`, `odbc.ini` e `odbcinst.ini`.

Se você fez a instalação no local padrão, o arquivo de configuração do `amazon.redshiftodbc.ini` estará localizado em `/opt/amazon/redshift/lib`.

Além disso, em `/opt/amazon/redshift/Setup` no macOS X, há os arquivos de exemplo `odbc.ini` e `odbcinst.ini`. Você pode usar esses arquivos como exemplos para configurar o driver ODBC do Amazon Redshift e o nome da origem dos dados (DSN).

Não é recomendado o uso do diretório de instalação do driver ODBC do Amazon Redshift para os arquivos de configuração. Os arquivos de exemplo do diretório `Setup` devem ser usados somente para servir de modelo. Se você reinstalar o driver ODBC do Amazon Redshift posteriormente ou atualizar para uma versão mais recente, o diretório de instalação será substituído. Você perderá todas as alterações que fez nesses arquivos.

Para evitar isso, copie o arquivo `amazon.redshiftodbc.ini` para um diretório diferente do diretório de instalação. Se você copiar esse arquivo no diretório base do usuário, adicione um ponto (.) ao início do nome do arquivo para torná-lo um arquivo oculto.

Para os arquivos `odbc.ini` e `odbcinst.ini`, use os arquivos de configuração do diretório inicial do usuário ou crie versões em um outro diretório. Por padrão, os sistemas operacionais macOS X devem ter os arquivos `odbc.ini` e `odbcinst.ini` no diretório inicial do usuário (`/home/$USER` ou `~/`). Esses arquivos padrão são arquivos ocultos, o que é indicado pelo ponto (.) na frente do nome de cada arquivo. Esses arquivos são exibidos somente ao usar o sinalizador `-a` para listar o conteúdo do diretório.

Qualquer que seja a opção escolhida para os arquivos `odbc.ini` e `odbcinst.ini`, modifique os arquivos para adicionar as informações do driver e da configuração de DSN. Se você criar arquivos, também precisará definir as variáveis do ambiente para especificar onde esses arquivos de configuração estão localizados. 

Por padrão, os gerenciadores de driver ODBC são configurados para usar versões ocultas dos arquivos de configuração `odbc.ini` e `odbcinst.ini` (chamados `odbc.ini` e `odbcinst.ini`) localizadas no diretório inicial. Eles também são configurados para usar o arquivo `amazon.redshiftodbc.ini` na subpasta `/lib` do diretório de instalação do driver. Se você armazenar esses arquivos de configuração em outro lugar, defina as variáveis de ambiente descritas a seguir para que o gerenciador de driver possa localizar os arquivos. Para obter mais informações, consulte “Especificar os locais dos arquivos de configuração do driver” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). . 

## Criar um nome da fonte de dados em sistemas operacionais macOS X
<a name="configure-odbc-ini-file"></a>

 Ao conectar-se ao armazenamento de dados usando um nome da fonte de dados (DSN), configure o arquivo `odbc.ini` para definir DSNs. Defina as propriedades no arquivo `odbc.ini` para criar um DSN que especifique as informações de conexão para o armazenamento de dados.

Para obter informações sobre como configurar o arquivo `odbc.ini`, consulte “Criar um nome da fonte de dados em uma máquina que não usa Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) . 

Use o formato a seguir em sistemas operacionais macOS X.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

 O exemplo a seguir mostra a configuração do `odbc.ini` em sistemas operacionais macOS X.

```
[ODBC Data Sources]
Amazon_Redshift_dylib=Amazon Redshift DSN for macOS X

[Amazon Redshift DSN for macOS X]
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configurar uma conexão sem DSN em sistemas operacionais macOS X
<a name="configure-odbcinst-ini-file"></a>

Para se conectar ao armazenamento de dados por meio de uma conexão que não tenha um DSN, defina o driver no arquivo `odbcinst.ini`. Depois, forneça uma string de conexão sem DSN no aplicativo.

Para obter informações sobre como configurar o arquivo `odbcinst.ini` nesse caso, consulte “Configurar uma conexão sem DSN em uma máquina que não usa Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Use o formato a seguir em sistemas operacionais macOS X.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/lib/amazonredshiftodbc.dylib
    
...
```

O exemplo a seguir mostra a configuração do `odbcinst.ini` para o driver instalado no diretório padrão em sistemas operacionais macOS X.

```
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for macOS X
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
```

## Configurar variáveis de ambiente
<a name="rs-mgmt-config-global-env-variables"></a>

Use o gerenciador de driver ODBC correto para carregar o driver correto. Para isso, defina a variável de ambiente do caminho da biblioteca. Para obter mais informações, consulte “Especificar gerenciadores de driver ODBC em máquinas que não usam Windows” no [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Por padrão, os gerenciadores de driver ODBC são configurados para usar versões ocultas dos arquivos de configuração `odbc.ini` e `odbcinst.ini` (chamados `odbc.ini` e `odbcinst.ini`) localizadas no diretório inicial. Eles também são configurados para usar o arquivo `amazon.redshiftodbc.ini` na subpasta `/lib` do diretório de instalação do driver. Se você armazenar esses arquivos de configuração em outro lugar, defina as variáveis de ambiente para que o gerenciador de driver possa localizar os arquivos. Para obter mais informações, consulte "Especificando os locais dos arquivos de configuração do driver" no *Guia de instalação e configuração do conector ODBC Amazon Redshift*. 

## Configurar recursos de conexão
<a name="connection-config-features"></a>

Você pode configurar os seguintes recursos de conexão para a configuração ODBC:
+ Configure o driver ODBC para fornecer credenciais e autenticar a conexão com o banco de dados do Amazon Redshift.
+ Configure o driver ODBC para se conectar a um soquete habilitado com Secure Sockets Layer (SSL), se você estiver se conectando a um servidor Amazon Redshift que tenha SSL habilitado.
+ Configure o driver ODBC para se conectar ao Amazon Redshift por meio de um servidor proxy.
+ Configure o driver ODBC para usar um modo de processamento de consultas a fim de impedir que as consultas consumam muita memória.
+ Configure o driver ODBC para transmitir processos de autenticação do IAM por meio de um servidor de proxy.
+ Configure o driver ODBC para usar manutenções de atividade de TCP a fim de impedir que as conexões atinjam o tempo limite.

Para obter informações sobre esses recursos de conexão, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Opções do driver ODBC
<a name="configure-odbc-options"></a>

Você pode usar opções de configuração para controlar o comportamento do driver ODBC Amazon Redshift.

No Microsoft Windows, você normalmente define as opções de driver ao configurar um nome de fonte de dados (DSN). Também é possível definir as opções de driver na string de conexão estabelecendo a conexão de forma programática ou adicionando/alterando as chaves de registro em `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`. Para obter mais informações sobre a configuração de um DSN, consulte [Usar um driver ODBC do Amazon Redshift no Microsoft Windows](install-odbc-driver-windows.md).

No macOS X, defina as opções de configuração do driver nos arquivos `odbc.ini` e `amazon.redshiftodbc.ini`, conforme descrito em [Usar um gerenciador de driver ODBC para configurar o driverUsar um gerenciador de driver ODBC para configurar o driver](odbc-driver-configure-mac.md). As opções de configuração definidas em um arquivo `amazon.redshiftodbc.ini` aplicam-se a todas as conexões. Em contrapartida, as opções de configuração definidas em um arquivo `odbc.ini` são específicas de uma conexão. As opções de configuração definidas em `odbc.ini` têm precedência sobre as opções de configuração definidas em `amazon.redshiftodbc.ini`.

Para obter informações sobre como definir as opções de configuração do driver ODBC, consulte o [Guia de instalação e configuração do conector ODBC do Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Versões anteriores do driver ODBC
<a name="odbc-previous-versions"></a>

Baixe uma versão anterior do driver ODBC do Amazon Redshift apenas se sua ferramenta exigir uma versão específica do driver. 

## Versões anteriores do driver ODBC para Windows
<a name="odbc-previous-versions-windows"></a>

Estes são os drivers de 64 bits: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi) 

Os drivers de 32 bits são descontinuados e as versões anteriores não são compatíveis.

## Versões anteriores do driver ODBC para Linux
<a name="odbc-previous-versions-linux"></a>

Estas são as versões do driver de 64 bits: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.deb) 

Os drivers de 32 bits são descontinuados e as versões anteriores não são compatíveis.

## Versões anteriores do driver ODBC para macOS X
<a name="odbc-previous-versions-mac"></a>

A seguir estão as versões do driver ODBC do Amazon Redshift para macOS X: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg) 

# Configurar as opções de segurança para conexões
<a name="connecting-ssl-support"></a>

O Amazon Redshift oferece suporte a conexões Secure Sockets Layer (SSL) para criptografar dados e certificados do servidor para validar o certificado do servidor ao qual o cliente se conecta. 

## SSL
<a name="connect-using-ssl"></a>

Para oferecer suporte a conexões SSL, o Amazon Redshift cria e instala um certificado SSL emitido [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) em cada cluster. Os certificados ACM são publicamente confiáveis pela maioria dos sistemas operacionais, navegadores da Web e clientes. Poderá ser necessário baixar um pacote de certificados, caso seus clientes ou aplicações SQL se conectarem ao Amazon Redshift usando SSL com a opção de conexão `sslmode` definida como `require`, `verify-ca` ou `verify-full`. Se o cliente precisar de um certificado, o Amazon Redshift fornecerá um certificado de pacote da seguinte forma:
+ Baixe o pacote em [https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt](https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt). 
  + O número de soma de verificação MD5 esperado é 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + O número da soma de verificação sha256 é 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  Não use o pacote de certificados anterior localizado em `https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt`. 
+  Na Região da AWS da China, baixe o pacote de [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt). 
  + O número de soma de verificação MD5 esperado é 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + O número da soma de verificação sha256 é 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  Não use os pacotes de certificados anteriores localizados em `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/redshift-ca-bundle.crt` e `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem`

**Importante**  
O Amazon Redshift mudou a maneira como os certificados SSL são gerenciados. Talvez seja necessário atualizar os certificados CA raiz confiáveis atuais para continuar se conectando aos clusters por meio de SSL. Para obter mais informações, consulte [Transição para certificados ACM das conexões SSL](connecting-transitioning-to-acm-certs.md).

Por padrão, os bancos de dados de cluster aceitam tanto as conexões SSL quanto as que não utilizam SSL. Para configurar seu cluster para solicitar uma conexão SSL, configure o parâmetro `require_SSL` como `true` no parameter group que está associado ao cluster. 

O Amazon Redshift oferece suporte a um modo SSL compatível com Federal Information Processing Standard (FIPS) 140-2. O modo SSL compatível com a FIPS está desativado por padrão. 

**Importante**  
Habilite o modo SSL compatível com FIPS somente se o sistema precisar ser compatível com FIPS.

Para habilitar o modo SSL compatível com FIPS, defina os parâmetros `use_fips_ssl` e `require_SSL` como `true` no grupo de parâmetros que está associado ao cluster do Amazon Redshift ou ao grupo de trabalho do Redshift sem servidor. Para ter informações sobre como modificar um grupo de parâmetros em um cluster, consulte [Grupos de parâmetros do Amazon Redshift](working-with-parameter-groups.md). Para ter informações sobre como modificar um grupo de parâmetros, consulte [Configurar uma conexão SSL compatível com FIPS com o Amazon Redshift sem servidor](serverless-connecting.md#serverless_secure-fips-ssl). 

 O Amazon Redshift oferece suporte ao protocolo de acordo de chave Elliptic Curve Diffie—Hellman Ephemeral (ECDHE). Com o ECDHE, o cliente e o servidor têm, cada um, um par de chaves públicas/privadas de curva elíptica que é usado para estabelecer um segredo compartilhado através de um canal inseguro. Não é necessário configurar nada no Amazon Redshift para habilitar o ECDHE. Se você se conectar a partir de uma ferramenta de cliente SQL que usa ECDHE para criptografar a comunicação entre o cliente e o servidor, o Amazon Redshift usa a lista de cifras fornecida para fazer a conexão apropriada. Para obter mais informações, consulte [Elliptic curve diffie—hellman](https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) na Wikipedia e [Cifras](https://www.openssl.org/) no site do OpenSSL. 

## SSL e certificados de CA de confiança no ODBC
<a name="connecting-ssl-support-odbc"></a>

Se você estabelecer a conexão usando os drivers ODBC mais recentes do Amazon Redshift (versão 1.3.7.1000 ou posterior), ignore esta seção. Para baixar os drivers mais recentes, consulte [Configurar uma conexão para o driver ODBC versão 2.x para o Amazon Redshift](odbc20-install.md). 

Talvez seja necessário atualizar os certificados CA raiz confiáveis atuais para continuar se conectando aos clusters por meio de SSL. Para obter mais informações, consulte [SSL](#connect-using-ssl).

Você pode verificar se o certificado baixado corresponde ao número de checksum MD5 esperado. Para isso, você pode usar o programa Md5sum em sistemas operacionais Linux ou outra ferramenta em sistemas operacionais Windows e macOS X.

 Os DSNs do ODBC contêm uma configuração `sslmode` que determina como lidar com a criptografia para conexões de cliente e verificação de certificado de servidor. O Amazon Redshift oferece suporte ao seguinte valores `sslmode` da conexão do cliente: 
+ `disable`

  O SSL é desabilitado e a conexão não é criptografada.
+ `allow`

  O SSL será usado se o servidor exigir.
+ `prefer`

  O SSL será usado se o servidor for compatível. O Amazon Redshift oferece suporte ao SSL, portanto, o SSL é usado quando você define `sslmode` como `prefer`.
+ `require`

  O SSL é necessário.
+ `verify-ca`

  O SSL deve ser usado e o certificado de servidor deve ser verificado.
+ `verify-full`

  O SSL deve ser usado. O certificado de servidor deve ser verificado, e o nome do host do servidor deve corresponder ao nome do host atribuído no certificado. 

É possível determinar se o SSL é usado, e se os certificados do servidor são verificados em uma conexão entre o cliente e o servidor. Para fazer isso, você precisa revisar a configuração `sslmode` do ODBC DSN no cliente e a configuração `require_SSL` do cluster do Amazon Redshift no servidor. A tabela a seguir descreve o resultado da criptografia para várias combinações de configuração de clientes e servidores: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/connecting-ssl-support.html)

### Conexão usando o certificado de servidor com o ODBC no Microsoft Windows
<a name="connecting-ssl-support-odbc-with-cert"></a>

 Se você deseja se conectar ao seu cluster usando SSL e o certificado do servidor, primeiro baixe o certificado para o seu computador cliente ou instância do Amazon EC2. Depois, configure o DSN do ODBC. 

1.  Baixe o pacote de autoridade de certificação do Amazon Redshift para o seu computador cliente na pasta `lib` no diretório de instalação do driver e salve o arquivo como `root.crt`. Para baixar as informações, consulte [SSL](#connect-using-ssl).

1.  Abra **ODBC Data Source Administrator** e adicione ou edite a entrada de DSN do sistema para a conexão ODBC. Em **SSL Mode**, selecione `verify-full`, a menos que você use um alias DNS. Se você usa um alias DNS, selecione `verify-ca`. Em seguida, escolha **Salvar**. 

    Para obter mais informações sobre a configuração do DSN do ODBC, consulte [Configurar uma conexão para o driver ODBC versão 2.x para o Amazon Redshift](odbc20-install.md). 

## SSL e certificados de servidor em Java
<a name="connecting-ssl-support-java"></a>

O SSL fornece uma camada de segurança criptografando os dados transferidos entre o cliente e o cluster. Usar um certificado de servidor fornece uma camada extra de segurança, validando que o cluster é um cluster do Amazon Redshift. Para isso, ele verifica o certificado de servidor que é instalado automaticamente em todos os clusters provisionados. Para obter mais informações sobre como usar certificados de servidor com o JDBC, acesse [Configuração do cliente](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) na documentação do PostgreSQL.

### Conexão por meio de certificados CA confiáveis em Java
<a name="connecting-ssl-support-java-with-cert"></a>

**Importante**  
O Amazon Redshift mudou a maneira como os certificados SSL são gerenciados. Talvez seja necessário atualizar os certificados CA raiz confiáveis atuais para continuar se conectando aos clusters por meio de SSL. Para obter mais informações, consulte [SSL](#connect-using-ssl).

**Para se conectar por meio de certificados CA confiáveis**

Você pode usar o arquivo `redshift-keytool.jar` para importar certificados CA no pacote de autoridade de certificação do Amazon Redshift para um Java TrustStore ou seu TrustStore privado.

1. Se você usa a opção `-Djavax.net.ssl.trustStore` de linha de comando Java, remova-a da linha de comando, se possível.

1. Baixe o [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Execute um destes procedimentos:
   + Para importar o pacote de autoridade de certificação do Amazon Redshift para um Java TrustStore, execute o comando a seguir. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Para importar o pacote de autoridade de certificação do Amazon Redshift para o seu TrustStore privado, execute o seguinte comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

# Transição para certificados ACM das conexões SSL
<a name="connecting-transitioning-to-acm-certs"></a>

O Amazon Redshift está substituindo os certificados SSL em seus clusters por certificados [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) emitidos. O ACM é uma autoridade de certificação pública confiável pela maioria dos sistemas atuais. Talvez seja necessário atualizar os certificados CA raiz confiáveis atuais para continuar se conectando aos clusters por meio de SSL. 

Essa alteração afetará você somente se todas as condições a seguir forem aplicáveis:
+  Os clientes ou os aplicativos SQL se conectam aos clusters do Amazon Redshift usando o SSL com a opção de conexão `sslMode` definida como a opção de configuração `require`, `verify-ca` ou `verify-full`. 
+ Você não está usando os drivers ODBC ou JDBC do Amazon Redshift ou usa os drivers do Amazon Redshift anteriores ao ODBC versão 1.3.7.1000 ou JDBC versão 1.2.8.1005. 

Se essa mudança afetar você nas regiões comerciais do Amazon Redshift, você deverá atualizar seus certificados CA raiz de confiança atuais antes de 23 de outubro de 2017. O Amazon Redshift fará a transição dos clusters para que usem certificados ACM até 23 de outubro de 2017. A alteração afetará muito pouco ou não afetará a performance ou a disponibilidade do cluster.

Se essa mudança afetar você nas regiões AWS GovCloud (US) (EUA), você deverá atualizar seus certificados CA raiz de confiança atuais antes de 1° de abril de 2020 para evitar a interrupção do serviço. A partir desta data, os clientes que se conectam a clusters Amazon Redshift usando conexões criptografadas SSL precisam de uma autoridade de certificação (CA) confiável adicional. Os clientes usam autoridades de certificação confiáveis para confirmar a identidade do cluster Amazon Redshift quando se conectam a ele. É necessário que você atualize os clientes e aplicativos SQL para usar um pacote de certificados atualizado que inclui a nova CA confiável. 

**Importante**  
Nas regiões da China em 5 de janeiro de 2021, o Amazon Redshift substituirá os certificados SSL nos clusters pelos certificados AWS Certificate Manager (ACM) emitidos. Se essa alteração afetar você na região China (Pequim) ou China (Ningxia), será necessário atualizar os certificados CA raiz de confiança atuais antes de 5 de janeiro de 2021 para evitar a interrupção do serviço. A partir desta data, os clientes que se conectam a clusters Amazon Redshift usando conexões criptografadas SSL precisam de uma autoridade de certificação (CA) confiável adicional. Os clientes usam autoridades de certificação confiáveis para confirmar a identidade do cluster Amazon Redshift quando se conectam a ele. É necessário que você atualize os clientes e aplicativos SQL para usar um pacote de certificados atualizado que inclui a nova CA confiável.
+ [Uso dos drivers ODBC ou JDBC mais recentes do Amazon Redshift](#connecting-transitioning-to-acm-latest-odbc-jdbc)
+ [Uso dos drivers ODBC ou JDBC mais antigos do Amazon Redshift](#connecting-transitioning-to-acm-earlier-odbc-jdbc)
+ [Uso de outros tipos de conexão SSL](#connecting-transitioning-to-acm-other-ssl-types)

## Uso dos drivers ODBC ou JDBC mais recentes do Amazon Redshift
<a name="connecting-transitioning-to-acm-latest-odbc-jdbc"></a>

O método preferencial é usar os drivers ODBC ou JDBC mais recentes do Amazon Redshift. Os drivers do Amazon Redshift a partir da versão ODBC 1.3.7.1000 e da versão JDBC 1.2.8.1005 gerenciam automaticamente a transição de um certificado autoassinado do Amazon Redshift para um certificado ACM. Para baixar os drivers mais recentes, consulte [Configurar uma conexão para o driver JDBC versão 2.x para o Amazon Redshift](jdbc20-install.md). 

Se você usar o driver JDBC mais recente do Amazon Redshift, é recomendável não usar `-Djavax.net.ssl.trustStore` nas opções da JVM. Se você precisar usar `-Djavax.net.ssl.trustStore`, importe o pacote da autoridade de certificação do Redshift para a truststore indicada. Para baixar as informações, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obter mais informações, consulte [Importar o pacote de autoridade de certificação do Amazon Redshift para um TrustStore](#importing-the-acm-bundle-to-truststore).

## Uso dos drivers ODBC ou JDBC mais antigos do Amazon Redshift
<a name="connecting-transitioning-to-acm-earlier-odbc-jdbc"></a>
+ Se o DSN ODBC for configurado com `SSLCertPath`, substitua o arquivo de certificado no caminho especificado.
+ Se `SSLCertPath` não for definido, substitua o arquivo de certificado `root.crt` no local da DLL do driver. 

Se você deve usar um driver JDBC do Amazon Redshift antes da versão 1.2.8.1005, siga um destes procedimentos:
+ Se a string de conexão JDBC usar a opção `sslCert`, remova a opção `sslCert`. Depois, importe o pacote da autoridade de certificação do Redshift para a Java TrustStore. Para baixar as informações, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obter mais informações, consulte [Importar o pacote de autoridade de certificação do Amazon Redshift para um TrustStore](#importing-the-acm-bundle-to-truststore). 
+ Se você usa a opção `-Djavax.net.ssl.trustStore` de linha de comando Java, remova-a da linha de comando, se possível. Depois, importe o pacote da autoridade de certificação do Redshift para a Java TrustStore. Para baixar as informações, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obter mais informações, consulte [Importar o pacote de autoridade de certificação do Amazon Redshift para um TrustStore](#importing-the-acm-bundle-to-truststore).

### Importar o pacote de autoridade de certificação do Amazon Redshift para um TrustStore
<a name="importing-the-acm-bundle-to-truststore"></a>

Você pode usar `redshift-keytool.jar` para importar certificados CA no pacote de autoridade de certificação do Amazon Redshift para um Java TrustStore ou seu truststore privado.

**Para importar o pacote de autoridade de certificação do Amazon Redshift para um TrustStore**

1. Baixe o [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Execute um destes procedimentos:
   + Para importar o pacote de autoridade de certificação do Amazon Redshift para um Java TrustStore, execute o comando a seguir. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Para importar o pacote de autoridade de certificação do Amazon Redshift para o seu TrustStore privado, execute o seguinte comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

## Uso de outros tipos de conexão SSL
<a name="connecting-transitioning-to-acm-other-ssl-types"></a>

Siga as etapas nesta seção se você se conectar usando um dos itens a seguir:
+  Driver ODBC de código aberto 
+  Driver JDBC de código aberto 
+  A interface de linha de comando [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) 
+  Qualquer vinculação de linguagem baseada em libpq, como psycopg2 (Python) e ruby-pg (Ruby) 

**Para usar certificados ACM com outros tipos de conexão SSL:**

1.  Baixe o pacote de autoridade de certificação do Amazon Redshift. Para baixar as informações, consulte [SSL](connecting-ssl-support.md#connect-using-ssl).

1. Insira os certificados do pacote em seu arquivo `root.crt`. 
   + Nos sistemas operacionais Linux e macOS X, o arquivo é `~/.postgresql/root.crt`.
   + No Microsoft Windows, o arquivo é `%APPDATA%\postgresql\root.crt`.

# Conexão de código e ferramentas clientes
<a name="connecting-via-client-tools"></a>

O Amazon Redshift fornece o editor de consultas v2 do Amazon Redshift para conexão a clusters e grupos de trabalho. Para obter mais informações, consulte [Consultar um banco de dados usando o Editor de Consultas V2Consultar um banco de dados usando o editor de consultas v2 do Amazon Redshift](query-editor-v2.md).

Esta seção fornece algumas opções de ferramentas de terceiros para conexão. Além disso, ela descreve como estabelecer a conexão com o cluster por meio de programação. 

**Topics**
+ [Conectar-se com o Amazon Redshift RSQL](rsql-query-tool.md)
+ [Conectar-se a um cluster com o Amazon Redshift RSQL](rsql-query-tool-starting-tool-connection.md)
+ [Metacomandos do Amazon Redshift RSQL](rsql-query-tool-commands.md)
+ [Variáveis do Amazon Redshift RSQL](rsql-query-tool-variables.md)
+ [Códigos de erro Amazon Redshift RSQL](rsql-query-tool-error-codes.md)
+ [Variáveis de ambiente do Amazon Redshift RSQL](rsql-query-tool-environment-variables.md)

# Conectar-se com o Amazon Redshift RSQL
<a name="rsql-query-tool"></a>

 O Amazon Redshift RSQL é um cliente de linha de comando para interagir com clusters e bancos de dados do Amazon Redshift. Você pode se conectar a um cluster do Amazon Redshift, descrever objetos de banco de dados, consultar dados e visualizar resultados de consulta em vários formatos de saída. 

 O Amazon Redshift RSQL oferece suporte aos recursos da ferramenta da linha de comando psql PostgreSQL com um conjunto adicional de recursos específicos para o Amazon Redshift. Incluindo o seguinte: 
+ É possível usar a autenticação única utilizando AD FS, PingIdentity, Okta, Azure ADm ou outros provedores de identidades baseados em SAML/JWT. Você também pode usar provedores de identidade SAML baseados em navegador para autenticação multifator (MFA).
+ É possível descrever propriedades ou atributos de objetos do Amazon Redshift, como chaves de distribuição de tabela, chaves de classificação de tabela, visualizações de vinculação tardia (LBVs) e views materializadas. Você também pode descrever propriedades ou atributos de tabelas externas em um catálogo do AWS Glue ou Apache Hive Metastore, bancos de dados externos no Amazon RDS for PostgreSQL, Amazon Aurora edição compatível com PostgreSQL, RDS para MySQL (pré-visualização) e Amazon Aurora edição compatível com MySQL (pré-visualização) e tabelas compartilhadas usando o compartilhamento de dados do Amazon Redshift.
+ Você também pode usar comandos de fluxo de controle aprimorados, como `IF` (`\ELSEIF`, `\ELSE,` `\ENDIF`), `\GOTO` e `\LABEL`.

 Com o modo em lote do Amazon Redshift RSQL, que executa um script passado como um parâmetro de entrada, é póssível executar scripts que contenham SQL e lógica de negócios complexa. Se você tiver data warehouses on-premises autogerenciados, poderá usar o Amazon Redshift RSQL para substituir scripts existentes de extração, transformação, carregamento (ETL) e automação, como scripts Teradata BTEQ. Usar o RSQL ajuda você a evitar a reimplementação manual de scripts em uma linguagem processual. 

 O Amazon Redshift RSQL está disponível para sistemas operacionais Linux, Windows e macOS X. 

Para relatar problemas com o Amazon Redshift RSQL, escreva para redshift-rsql-support@amazon.com.

**Topics**
+ [Conceitos básicos do Amazon Redshift RSQL](rsql-query-tool-getting-started.md)
+ [Log de alterações do Amazon Redshift RSQL](rsql-query-tool-changelog.md)

# Conceitos básicos do Amazon Redshift RSQL
<a name="rsql-query-tool-getting-started"></a>

Instale o Amazon Redshift RSQL em um computador com sistema operacional Linux, macOS ou Microsoft Windows.

## Baixar o RSQL
<a name="rsql-query-tool-download"></a>
+ RPM de 64 bits do Linux: [RSQL versão 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.rhel.x86_64.rpm) 
  + Chave de assinatura de artefato Linux: [chave](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-certificate.pem) 
  + Hash assinado por artefato Linux: [hash](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-signature.bin) 
+ Mac OS 64 bits PKG: [RSQL Versão 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.universal.pkg) 
+ MSI de 64 bits do Windows: [RSQL versão 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.x86_64.msi) 

Veja o log de alterações e os downloads das versões anteriores em [Log de alterações do Amazon Redshift RSQL](rsql-query-tool-changelog.md).

## Instalar o RSQL para Linux
<a name="rsql-query-tool-linux-install"></a>

Siga as etapas abaixo para instalar o RSQL para Linux.

1. Instale o driver com o seguinte comando:

   ```
   sudo yum install unixODBC
   ```

1. Instale o driver ODBC: [Baixar e instalar o driver ODBC do Amazon RedshiftBaixar e instalar o driver ODBC](odbc20-install-linux.md).

1. Copie o arquivo ini para o diretório inicial:

   ```
   cp /opt/amazon/redshiftodbcx64/odbc.ini ~/.odbc.ini
   ```

1. Defina as variáveis de ambiente para apontar ao local do arquivo:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshiftodbcx64/
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshiftodbcx64/amazon.redshiftodbc.ini
   ```

1. Agora é possível instalar o RSQL executando o comando a seguir.

   ```
   sudo rpm -i AmazonRedshiftRsql-<version>.rhel.x86_64.rpm
   ```

## Instalar o RSQL para Mac
<a name="rsql-query-tool-mac-install"></a>

Siga as etapas abaixo para instalar o RSQL para Mac OSX.

1. Instale o driver com o seguinte comando:

   ```
   brew install unixodbc --build-from-source
   ```

1. Instale o driver ODBC: [Baixar e instalar o driver ODBC do Amazon RedshiftBaixar e instalar o driver ODBC](odbc-driver-mac-how-to-install.md).

1. Copie o arquivo ini para o diretório inicial:

   ```
   cp /opt/amazon/redshift/Setup/odbc.ini ~/.odbc.ini
   ```

1. Defina as variáveis de ambiente para apontar ao local do arquivo:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshift/Setup
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshift/lib/amazon.redshiftodbc.ini
   ```

1. Defina `DYLD_LIBRARY_PATH` para a localização do seu libodbc.dylib se não estiver em `/usr/local/lib`.

   ```
   export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
   ```

1. Clique duas vezes no arquivo pkg para executar o instalador.

1. Siga as etapas do instalador para concluir a instalação. Concorde com os termos do contrato de licença.

## Instalar o RSQL para Windows
<a name="rsql-query-tool-windows-install"></a>

Siga as etapas abaixo para instalar o RSQL para Windows.

1. Instale o driver ODBC: [Baixar e instalar o driver ODBC do Amazon RedshiftBaixar e instalar o driver ODBC](odbc-driver-windows-how-to-install.md).

1. Clique duas vezes no arquivo de download do RSQL para executar o instalador e siga as solicitações para concluir a instalação.

# Log de alterações do Amazon Redshift RSQL
<a name="rsql-query-tool-changelog"></a>

*1.1.2 (2025-12-11)*

Correções de bugs
+ Correção de um bug que causava falhas nos comandos\$1 goto e\$1 label.
+ Correção de um bug que impedia o RSQL de imprimir valores de variáveis quando as variáveis estavam entre aspas.
+ Correção de um bug que causava falhas no RSQL quando os resultados da consulta excediam o tamanho do parâmetro ODBC DSN Fetch enquanto UseDeclareFetch era habilitado.
+ Correção de um problema em que várias páginas de resultados eram exibidas ao mesmo tempo, mesmo que o pager era ativado.
+ Correção de um bug que provocava falhas no RSQL quando as consultas falhavam nos blocos de transações.

*1.1.1 (20-11-2025)*

Correções de bugs
+ Correção de um problema em que o RSQL analisava consultas incorretamente ao usar o sinalizador -c. Essa correção se aplica a todas as plataformas.
+ Corrija um bug no Mac que impedia os usuários de usar o comando \$1s no RSQL.

*1.1.0 (2025-11-11)*

Correções de bugs
+ Solução de um problema de vazamento de memória que estava causando falhas inesperadas no rSQL.
+ Remoção da dependência do OpenSSL do RSQL.
+ Correção de conflitos de vinculação com instalações libpq/psql no mesmo ambiente.
+ Melhoria da compatibilidade de plataforma para Amazon Linux 2023, Windows e macOS.
+ Correção de um problema em que a saída era truncada ao exceder o tamanho de exibição atual.

*1.0.8 (2023-06-19)*

Correções de bugs
+ Corrigido um problema em que a saída era truncada com os comandos SHOW.
+ Adicionado suporte a \$1de para descrever fluxos externos do Kinesis e tópicos do Kafka.

*1.0.7 (22/03/2023)*

Correções de bugs
+ Correção de um problema em que o RSQL não conseguia descrever visões materializadas.
+ Correção do erro de permissão negada em stl\$1connection\$1log ao usar o Amazon Redshift sem servidor.
+ Correção de um problema em que o RSQL processava rótulos \$1GOTO incorretamente.
+ Correção de um problema em que mensagens SSL eram impressas no modo silencioso.
+ Correção de um problema de exibição de caracteres aleatórios ao descrever procedimentos armazenados.
+ Correção de um problema de impressão de mensagens ERROR/INFO duplicadas.

Novo
+ O RSQL agora recebe informações de SSL diretamente do driver ODBC.



*1.0.6 (21/02/2023)*

Correções de bugs
+ Correção de um problema em que \$1d gerava um erro (sintaxe de entrada inválida para inteiro: “xid”) no patch 1.0.46086 (P173) do Redshift.

Novo
+ Renomeação dos arquivos de instalação para refletir a arquitetura compatível.



*1.0.5 (2022-06-27)*

Correções de bugs
+ Envia mensagens de erro SQL para erro padrão (stderr).
+ Corrigido o problema com os códigos de saída ao usar ON\$1ERROR\$1STOP. Os scripts agora terminam depois de encontrar um erro e retornam os códigos de saída corretos.
+ Maxerror agora não diferencia maiúsculas de minúsculas.

Novo
+ Inclusão de suporte ao driver ODBC 2.x.



*1.0.4 (19-03-2022)*
+ Adicione suporte para a variável de ambiente RSPASSWORD. Defina uma senha para se conectar ao Amazon Redshift. Por exemplo, `export RSPASSWORD=TestPassw0rd`.



*1.0.3 (2021-12-08)*

Correções de bugs
+ Caixa de diálogo pop-up corrigida ao usar `\c` ou `\logon` para alternar entre bancos de dados no sistema operacional Windows.
+ Corrigida a falha ao verificar informações ssl.



## Versões anteriores do Amazon Redshift RSQL
<a name="rsql-query-tool-changelog-legacy-versions"></a>

Escolha um dos links para baixar a versão do Amazon Redshift RSQL de que você precisa, com base em seu sistema operacional.

**RPM de 64 bits do Linux**
+ [RSQL versão 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.rhel.x86_64.rpm)
+ [RSQL versão 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.rhel.x86_64.rpm)
+ [RSQL versão 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.rpm)
+ [RSQL versão 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.rpm)
+ [RSQL versão 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.rpm)
+ [RSQL versão 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5-1.x86_64.rpm)
+ [RSQL versão 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4-1.x86_64.rpm)
+ [RSQL versão 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3-1.x86_64.rpm)
+ [RSQL versão 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1-1.x86_64.rpm)

**Mac OS 64 bits DMG/PKG**
+ [RSQL versão 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.universal.pkg)
+ [RSQL versão 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.universal.pkg)
+ [RSQL versão 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.dmg)
+ [RSQL versão 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.dmg)
+ [RSQL versão 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.dmg)
+ [RSQL versão 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.dmg)
+ [RSQL versão 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.dmg)
+ [RSQL versão 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.dmg)
+ [RSQL versão 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.dmg)

**MSI de 64 bits do Windows**
+ [RSQL versão 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.x86_64.msi)
+ [RSQL versão 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.x86_64.msi)
+ [RSQL versão 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.msi)
+ [RSQL versão 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.msi)
+ [RSQL versão 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.msi)
+ [RSQL versão 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.msi)
+ [RSQL versão 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.msi)
+ [RSQL versão 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.msi)
+ [RSQL versão 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.msi)

# Conectar-se a um cluster com o Amazon Redshift RSQL
<a name="rsql-query-tool-starting-tool-connection"></a>

Com o Amazon Redshift, você pode se conectar e interagir com um cluster usando o RSQL. Essa é uma ferramenta de linha de comandos que oferece uma forma segura para consultar dados, criar objetos de banco de dados e gerenciar clusters do Amazon Redshift. As seções a seguir orientam você pelas etapas para estabelecer uma conexão com seu cluster usando o RSQL com e sem um nome de fonte de dados (DSN).

## Conectar-se sem um DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-less-example"></a>

1. No console do Amazon Redshift, escolha o cluster ao qual você deseja se conectar e anote o endpoint, o banco de dados e a porta.

1. No prompt de comando, especifique as informações de conexão usando os parâmetros de linha de comando.

   ```
   rsql -h <endpoint> -U <username> -d <databasename> -p <port>
   ```

    Aqui, o seguinte se aplica: 
   +  *<endpoint>* é o **Endpoint** que você registrou na etapa anterior.
   +  *<username>* é o nome do usuário com as permissões para a conexão com o cluster.
   +  *<databasename>* é o **Nome do banco de dados** que você registrou na etapa anterior.
   +  *<port>* é a **porta** que você registrou na etapa anterior. *<port>* é um parâmetro opcional.

   Veja a seguir um exemplo.

   ```
   rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
   ```

1.  No prompt da senha, digite a senha do usuário *<username>*.

   Uma resposta de conexão bem-sucedida tem a aparência a seguir.

   ```
   % rsql -h testcluster.example.com -d dev -U user1 -p 5349
   Password for user user1:
   DSN-less Connected
   DBMS Name: Amazon Redshift
   Driver Name: Amazon Redshift ODBC Driver
   Driver Version: 1.4.27.1000
   Rsql Version: 1.0.1
   Redshift Version: 1.0.29306
   Type "help" for help.
   
   (testcluster) user1@dev=#
   ```

O comando para conectar tem os mesmos parâmetros no Linux, Mac OS e Windows.

## Conectar-se com um DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-example"></a>

É possível conectar o RSQL ao Amazon Redshift usando um DSN para simplificar a organização das propriedades de conexão. Este tópico inclui instruções para instalação do driver ODBC e descrições das propriedades do DSN.

### Usar uma conexão DSN com uma senha
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

Veja a seguir um exemplo de uma configuração de conexão DSN que usa uma senha. O padrão `<path to driver>` para Mac OSX é `/opt/amazon/redshift/lib/libamazonredshiftodbc.dylib` e para Linux é `/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so`.

```
[testuser]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<database port>
Database=<dbname>
UID=<username>
PWD=<password>
sslmode=prefer
```

A saída a seguir é resultado de uma conexão bem-sucedida.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

### Usar o DSN de autenticação única
<a name="rsql-query-tool-starting-tool-connection-dsn"></a>

Você pode configurar um DSN para autenticação única. Veja a seguir um exemplo de configuração de conexão DSN que usa autenticação única do Okta.

```
[testokta]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-US
iam=1
plugin_name=<plugin name>
uid=<okta username>
pwd=<okta password>
idp_host=<idp endpoint>
app_id=<app id>
app_name=<app name>
preferred_role=<role arn>
```

Exemplo de saída de uma conexão bem-sucedida.

```
% rsql -D testokta 
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

Veja a seguir o exemplo de uma configuração de conexão DSN que usa autenticação única do Azure.

```
[testazure]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<cluster port>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-us
iam=1
plugin_name=<plugin name>
uid=<azure username>
pwd=<azure password>
idp_tenant=<Azure idp tenant uuid>
client_id=<Azure idp client uuid>
client_secret=<Azure idp client secret>
```

### Usar uma conexão DSN com um perfil do IAM
<a name="rsql-query-tool-starting-tool-connection-dsn-iam"></a>

Você pode se conectar ao Amazon Redshift usando seu perfil do IAM configurado. O perfil do IAM deve ter privilégios para chamar `GetClusterCredentials`. O exemplo a seguir mostra as propriedades DSN a serem usadas. Os parâmetros `ClusterID` e `Region` são obrigatórios somente se o `Host` não for um endpoint fornecido pela Amazon, como `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testiam]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Profile=default
```

O valor da chave `Profile` é o perfil nomeado que você escolhe a partir de suas credenciais AWS da CLI. Esse exemplo mostra as credenciais do perfil chamado `default`.

```
$ cat .aws/credentials
[default]
aws_access_key_id = ASIAIOSFODNN7EXAMPLE 
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

Veja a seguir a resposta da conexão.

```
$ rsql -D testiam
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Usar uma conexão DSN com um perfil da instância
<a name="rsql-query-tool-starting-tool-connection-dsn-instance"></a>

Você pode se conectar ao Amazon Redshift usando seu perfil de instância do Amazon EC2. O perfil da instância deve ter privilégios para chamar `GetClusterCredentials`. Veja o exemplo abaixo para saber quais propriedades DSN serão usadas. Os parâmetros `ClusterID` e `Region` são obrigatórios somente se o `Host` não for um endpoint fornecido pela Amazon, como `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testinstanceprofile]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Instanceprofile=1
```

Veja a seguir a resposta da conexão.

```
$ rsql -D testinstanceprofile
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Uso de uma conexão DSN com a cadeia de fornecedores de credenciais padrão
<a name="rsql-query-tool-starting-tool-connection-dsn-provider-chain"></a>

Para se conectar usando a cadeia de provedores de credenciais padrão, especifique apenas a propriedade do IAM, e o Amazon Redshift RSQL tentará adquirir credenciais na ordem descrita em [Trabalho com credenciais da AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) no SDK da AWS para Java. Pelo menos um dos provedores da cadeia deve ter a permissão `GetClusterCredentials`. Isso é útil para se conectar a partir de contêineres ECS, por exemplo.

```
[iamcredentials]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
```

# Metacomandos do Amazon Redshift RSQL
<a name="rsql-query-tool-commands"></a>

Os metacomandos do Amazon Redshift RSQL retornam registros informativos sobre bancos de dados ou sobre objetos específicos do banco de dados. Os resultados podem incluir várias colunas e metadados. Outros comandos executam ações específicas. Esses comandos são precedidos por uma barra invertida.

## \$1d[S\$1]
<a name="rsql-query-tool-describe-d"></a>

 Lista tabelas criadas pelo usuário local, visualizações regulares, visualizações de vinculação tardia e visões materializadas.`\dS ` também lista tabelas e visualizações, como `\d`, mas os objetos do sistema são incluídos nos registros retornados. O `+` resulta na coluna de metadados adicionais `description` para todos os objetos listados. A seguir, veja exemplos de registros retornados como resultado do comando. 

```
List of relations
 schema |   name    | type  |  owner  
--------+-----------+-------+---------
 public | category  | table | awsuser
 public | date      | table | awsuser
 public | event     | table | awsuser
 public | listing   | table | awsuser
 public | sales     | table | awsuser
 public | users     | table | awsuser
 public | venue     | table | awsuser
(7 rows)
```

## \$1d[S\$1] NAME
<a name="rsql-query-tool-describe-s-plus-named"></a>

Descreve uma tabela, uma visualização ou um índice. Inclui os nomes e tipos de colunas. Fornece também o diststyle, a configuração de backup, a data de criação (tabelas criadas após outubro de 2018) e restrições. Por exemplo, `\dS+ sample` retorna propriedades do objeto. Anexar `S+` resulta em colunas adicionais incluídas nos registros retornados.

```
Table "public.sample"
 Column |            Type             |   Collation    | Nullable | Default Value | Encoding  | DistKey | SortKey
--------+-----------------------------+----------------+----------+---------------+-----------+---------+---------
 col1   | smallint                    |                | NO       |               | none      | t       | 1
 col2   | character(100)              | case_sensitive | YES      |               | none      | f       | 2
 col3   | character varying(100)      | case_sensitive | YES      |               | text32k   | f       | 3
 col4   | timestamp without time zone |                | YES      |               | runlength | f       | 0
 col5   | super                       |                | YES      |               | zstd      | f       | 0
 col6   | bigint                      |                | YES      |               | az64      | f       | 0

Diststyle: KEY
Backup: YES
Created: 2021-07-20 19:47:27.997045
Unique Constraints:
    "sample_pkey" PRIMARY KEY (col1)
    "sample_col2_key" UNIQUE (col2)
Foreign-key constraints:
    "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)
```

O estilo de distribuição, ou *Diststyle*, da tabela pode ser KEY, AUTO, EVEN ou ALL.

*Backup* indica se o backup da tabela é feito quando se obtém um snapshot. Os valores válidos são `YES` ou `NO`.

*Created* (Criado) é o carimbo de data/hora para quando a tabela é criada. A data de criação não está disponível para tabelas do Amazon Redshift criadas antes de novembro de 2018. As tabelas criadas antes desta data exibem n/a (não disponível). 

*Unique Constraints* (Restrições exclusivas) lista restrições de chave exclusivas e primárias na tabela.

*Foreign-key constraints* (Restrições de chave estrangeira) lista restrições de chave estrangeira na tabela.

## \$1dC[\$1] [PATTERN]
<a name="rsql-query-tool-describe-dc"></a>

Lista conversões. Inclui o tipo de origem, o tipo de destino e se a conversão está implícita.

Veja a seguir um subconjunto de resultados de `\dC+`.

```
List of casts
         source type         |         target type         |      function       |   implicit?   | description 
-----------------------------+-----------------------------+---------------------+---------------+-------------
 "char"                      | character                   | bpchar              | in assignment | 
 "char"                      | character varying           | text                | in assignment | 
 "char"                      | integer                     | int4                | no            | 
 "char"                      | text                        | text                | yes           | 
 "path"                      | point                       | point               | no            | 
 "path"                      | polygon                     | polygon             | in assignment | 
 abstime                     | date                        | date                | in assignment | 
 abstime                     | integer                     | (binary coercible)  | no            | 
 abstime                     | time without time zone      | time                | in assignment | 
 abstime                     | timestamp with time zone    | timestamptz         | yes           | 
 abstime                     | timestamp without time zone | timestamp           | yes           | 
 bigint                      | bit                         | bit                 | no            | 
 bigint                      | boolean                     | bool                | yes           | 
 bigint                      | character                   | bpchar              | in assignment | 
 bigint                      | character varying           | text                | in assignment | 
 bigint                      | double precision            | float8              | yes           | 
 bigint                      | integer                     | int4                | in assignment | 
 bigint                      | numeric                     | numeric             | yes           | 
 bigint                      | oid                         | oid                 | yes           | 
 bigint                      | real                        | float4              | yes           | 
 bigint                      | regclass                    | oid                 | yes           | 
 bigint                      | regoper                     | oid                 | yes           | 
 bigint                      | regoperator                 | oid                 | yes           | 
 bigint                      | regproc                     | oid                 | yes           | 
 bigint                      | regprocedure                | oid                 | yes           | 
 bigint                      | regtype                     | oid                 | yes           | 
 bigint                      | smallint                    | int2                | in assignment | 
 bigint                      | super                       | int8_partiql        | in assignment |
```

## \$1dd[S] [PATTERN]
<a name="rsql-query-tool-describe-dds"></a>

Mostra descrições de objetos que não são exibidas em outro lugar.

## \$1de
<a name="rsql-query-tool-describe-de"></a>

Lista tabelas externas. Isso inclui tabelas no AWS Glue Data Catalog e no Hive Metastore e tabelas federadas de unidade de compartilhamento de dados do Amazon RDS/Aurora MySQL, Amazon RDS/Aurora PostgreSQL e Amazon Redshift.

## \$1de NAME
<a name="rsql-query-tool-describe-de-name"></a>

Descreve uma tabela externa.

A consulta de exemplo a seguir mostra uma tabela externa do AWS Glue.

```
# \de spectrum.lineitem
                            Glue External table "spectrum.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_shipdate      | date          | date          | 11       | 0             |
 l_commitdate    | date          | date          | 12       | 0             |
 l_receiptdate   | date          | date          | 13       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 14       | 0             |
 l_shipmode      | char(10)      | char(10)      | 15       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 16       | 0             |

Location: s3://redshiftbucket/kfhose2019/12/31
Input_format: org.apache.hadoop.mapred.TextInputFormat
Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Serde_parameters: {"field.delim":"|","serialization.format":"|"}
Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}
```

Uma tabela Hive Metastore.

```
# \de emr.lineitem
                     Hive Metastore External Table "emr.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_commitdate    | date          | date          | 11       | 0             |
 l_receiptdate   | date          | date          | 12       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 13       | 0             |
 l_shipmode      | char(10)      | char(10)      | 14       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 15       | 0             |
 l_shipdate      | date          | date          | 16       | 1             |

Location: s3://redshiftbucket/cetas
Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Serde_parameters: {"serialization.format":"1"}
Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}
```

Tabela externa do PostgreSQL.

```
# \de pgrsql.alltypes
                                Postgres Federated Table "pgrsql.alltypes"
 Column |        External Type        |        Redshift Type        | Position | Partition Key | Nullable
--------+-----------------------------+-----------------------------+----------+---------------+----------
 col1   | bigint                      | bigint                      | 1        | 0             |
 col2   | bigint                      | bigint                      | 2        | 0             |
 col5   | boolean                     | boolean                     | 3        | 0             |
 col6   | box                         | varchar(65535)              | 4        | 0             |
 col7   | bytea                       | varchar(65535)              | 5        | 0             |
 col8   | character(10)               | character(10)               | 6        | 0             |
 col9   | character varying(10)       | character varying(10)       | 7        | 0             |
 col10  | cidr                        | varchar(65535)              | 8        | 0             |
 col11  | circle                      | varchar(65535)              | 9        | 0             |
 col12  | date                        | date                        | 10       | 0             |
 col13  | double precision            | double precision            | 11       | 0             |
 col14  | inet                        | varchar(65535)              | 12       | 0             |
 col15  | integer                     | integer                     | 13       | 0             |
 col16  | interval                    | varchar(65535)              | 14       | 0             |
 col17  | json                        | varchar(65535)              | 15       | 0             |
 col18  | jsonb                       | varchar(65535)              | 16       | 0             |
 col19  | line                        | varchar(65535)              | 17       | 0             |
 col20  | lseg                        | varchar(65535)              | 18       | 0             |
 col21  | macaddr                     | varchar(65535)              | 19       | 0             |
 col22  | macaddr8                    | varchar(65535)              | 20       | 0             |
 col23  | money                       | varchar(65535)              | 21       | 0             |
 col24  | numeric                     | numeric(38,20)              | 22       | 0             |
 col25  | path                        | varchar(65535)              | 23       | 0             |
 col26  | pg_lsn                      | varchar(65535)              | 24       | 0             |
 col28  | point                       | varchar(65535)              | 25       | 0             |
 col29  | polygon                     | varchar(65535)              | 26       | 0             |
 col30  | real                        | real                        | 27       | 0             |
 col31  | smallint                    | smallint                    | 28       | 0             |
 col32  | smallint                    | smallint                    | 29       | 0             |
 col33  | integer                     | integer                     | 30       | 0             |
 col34  | text                        | varchar(65535)              | 31       | 0             |
 col35  | time without time zone      | varchar(65535)              | 32       | 0             |
 col36  | time with time zone         | varchar(65535)              | 33       | 0             |
 col37  | timestamp without time zone | timestamp without time zone | 34       | 0             |
 col38  | timestamp with time zone    | timestamp with time zone    | 35       | 0             |
 col39  | tsquery                     | varchar(65535)              | 36       | 0             |
 col40  | tsvector                    | varchar(65535)              | 37       | 0             |
 col41  | txid_snapshot               | varchar(65535)              | 38       | 0             |
 col42  | uuid                        | varchar(65535)              | 39       | 0             |
 col43  | xml                         | varchar(65535)              | 40       | 0             |
```

## \$1df[anptw][S\$1] [PATTERN]
<a name="rsql-query-tool-df"></a>

 Lista funções de vários tipos. O comando `\df`, por exemplo, retorna uma lista de funções. Os resultados incluem propriedades como nome, tipo de dados retornado, privilégios de acesso e outros metadados. Os tipos de função podem incluir acionadores, procedimentos armazenados, funções da janela e outros tipos. Quando você acrescenta `S+` ao comando, por exemplo `\dfantS+`, colunas de metadados adicionais são incluídas, como `owner`, `security` e `access privileges`. 

## \$1dL[S\$1] [PATTERN]
<a name="rsql-query-tool-describe-dl"></a>

 Lista dados sobre linguagens processuais associadas ao banco de dados. As informações incluem o nome, como plpgsql, e outros metadados, que incluem confiabilidade, privilégios de acesso e descrição. A chamada de amostra é, por exemplo, `\dLS+`, que lista linguagens e suas propriedades. Quando você acrescenta `S+` ao comando, colunas de metadados adicionais são incluídas, como `call handler` e `access privileges`. 

Exemplos de resultados:

```
List of languages
   name    | trusted | internal language |      call handler       |                         validator                          | access privileges |          description           
-----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+--------------------------------
 c         | f       | t                 | -                       | fmgr_c_validator(oid)                                      |                   | Dynamically-loaded C functions
 exfunc    | f       | f                 | exfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 internal  | f       | t                 | -                       | fmgr_internal_validator(oid)                               |                   | Built-in functions
 mlfunc    | f       | f                 | mlfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 plpgsql   | t       | f                 | plpgsql_call_handler()  | plpgsql_validator(oid)                                     |                   | 
 plpythonu | f       | f                 | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb     | 
 sql       | t       | t                 | -                       | fmgr_sql_validator(oid)                                    | =U/rdsdb          | SQL-language functions
```

## \$1dm[S\$1] [PATTERN]
<a name="rsql-query-tool-describe-dm"></a>

 Lista visões materializadas. Por exemplo, `\dmS+` lista visões materializadas e suas propriedades. Quando você acrescenta `S+` ao comando, colunas de metadados adicionais são incluídas. 

## \$1dn[S\$1] [PATTERN]
<a name="rsql-query-tool-describe-dn"></a>

 Lista os esquemas. Quando você acrescenta `S+` ao comando, por exemplo `\dnS+`, colunas de metadados adicionais são incluídas, como `description` e `access privileges`. 

## \$1dp [PATTERN]
<a name="rsql-query-tool-describe-dp"></a>

 Lista os privilégios de acesso à tabela, visualização e sequência. 

## \$1dt[S\$1] [PATTERN]
<a name="rsql-query-tool-describe-dt"></a>

 Lista tabelas. Quando você acrescenta `S+` ao comando, por exemplo `\dtS+`, colunas de metadados adicionais são incluídas, como `description`, neste caso. 

## \$1du
<a name="rsql-query-tool-describe-du"></a>

 Lista os usuários do banco de dados. Inclui o nome e suas funções, como superusuário, e atributos. 

## \$1dv[S\$1] [PATTERN]
<a name="rsql-query-tool-describe-dv"></a>

 Lista as visualizações. Inclui esquema, tipo e proprietário dos dados. Quando você acrescenta `S+` ao comando, por exemplo `\dvS+`, colunas de metadados adicionais são incluídas. 

## \$1H
<a name="rsql-query-tool-describe-h"></a>

 Ativa a saída HTML. Isso é útil para retornar rapidamente resultados formatados. Por exemplo, `select * from sales; \H` retorna resultados da tabela de vendas, em HTML. Para voltar aos resultados tabulares, use `\q` ou quiet. 

## \$1i
<a name="rsql-query-tool-describe-i"></a>

 Executa comandos de um arquivo. Por exemplo, supondo que você tenha rsql\$1steps.sql em seu diretório de trabalho, o seguinte executa os comandos no arquivo: `\i rsql_steps.sql`. 

## \$1l[\$1] [PATTERN]
<a name="rsql-query-tool-describe-l"></a>

 Lista bancos de dados. Inclui proprietário, codificação e outras informações. 

## \$1q
<a name="rsql-query-tool-describe-q"></a>

 O encerramento, ou comando `\q`, faz logoff das sessões do banco de dados e fecha o RSQL. 

## \$1sv[\$1] VIEWNAME
<a name="rsql-query-tool-describe-sv-name"></a>

 Exibe a definição de uma visualização. 

## \$1timing
<a name="rsql-query-tool-describe-timing"></a>

 Mostra o tempo de execução, de uma consulta, por exemplo. 

## \$1z [PATTERN]
<a name="rsql-query-tool-describe-z"></a>

 A mesma saída que \$1dp. 

## \$1?
<a name="rsql-query-tool-help"></a>

 Exibe informações de ajuda. O parâmetro opcional especifica o item a ser explicado. 

## \$1EXIT
<a name="rsql-query-tool-flow-control-exit"></a>

 Faz logoff de todas as sessões de banco de dados e fecha o Amazon Redshift RSQL. Além disso, é possível especificar um código de saída opcional. Por exemplo, `\EXIT 15` fechará o terminal RSQL do Amazon Redshift e retornará o código de saída 15.

O exemplo a seguir mostra a saída de uma conexão e saída do RSQL.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.34.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306 
Type "help" for help.

(testcluster) user1@dev=# \exit 15

% echo $?
15
```

## \$1EXPORT
<a name="rsql-query-tool-export"></a>

 Especifica o nome de um arquivo de exportação que o RSQL usa para armazenar informações de banco de dados retornadas por uma instrução SQL SELECT subsequente.

export\$101.sql

```
\export report file='E:\\accounts.out'
\rset rformat off
\rset width 1500
\rset heading "General Title"
\rset titledashes on
select * from td_dwh.accounts;
\export reset
```

Resultado no console

```
Rformat is off.
Target width is 1500.
Heading is set to: General Title
Titledashes is on.
(exported 40 rows)
```

## \$1LOGON
<a name="rsql-query-tool-flow-control-logon"></a>

 Conecta-se a um banco de dados. É possível especificar parâmetros de conexão usando a sintaxe posicional ou como uma cadeia de conexão.

A sintaxe de comando é a seguinte: `\logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}`

`DBNAME` é o nome do banco de dados ao qual se conectar. `USERNAME` é nome de usuário ao qual se conectar. O `HOST` padrão é `localhost`. O `PORT` padrão é `5439`.

Quando um nome de host é especificado em um comando `\LOGON`, ele se torna o nome de host padrão para outros comandos `\LOGON`. Para alterar o nome do host padrão, especifique um novo `HOST` em outro comando `\LOGON`.

A seguir, veja um exemplo de saída do comando `\LOGON` para `user1`.

```
(testcluster) user1@redshiftdb=# \logon dev
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user1".
(testcluster) user1@dev=#
```

Exemplo de saída para *user2*.

```
(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com
Password for user user2: 
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439".
(testcluster2) user2@dev=#
```

## \$1REMARK
<a name="rsql-query-tool-flow-control-remark"></a>

 Uma extensão do comando `\echo`. `\REMARK` imprime a string especificada no fluxo de saída. `\REMARK ` estende `\echo` adicionando a capacidade de dividir a saída em linhas separadas.

O exemplo a seguir mostra a saída do comando.

```
(testcluster) user1@dev=# \remark 'hello//world'
hello
world
```

## \$1RSET
<a name="rsql-query-tool-rset"></a>

O comando `\rset` define parâmetros e variáveis de comando. O `\rset` tem um modo interativo e um modo em lote. Ele não é compatível com opções como opções bash, por exemplo, *-x*, nem com argumentos, por exemplo *--<arg>*.

Ele define variáveis, como as seguintes:
+ ERRORLEVEL
+ HEADING e RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ WIDTH

O exemplo a seguir especifica um cabeçalho.

```
\rset heading "Winter Sales Report"
```

Você pode encontrar mais exemplos de como usar `\rset`, nos tópicos sobre [Variáveis do Amazon Redshift RSQL](rsql-query-tool-variables.md). 

## \$1RUN
<a name="rsql-query-tool-flow-control-run"></a>

 Executa o script Amazon Redshift RSQL contido no arquivo especificado. `\RUN` estende o comando `\i` adicionando uma opção para ignorar linhas de cabeçalho de um arquivo.

Se o nome do arquivo contiver uma vírgula, ponto e vírgula ou espaço, coloque-o entre aspas simples. Além disso, se o nome do arquivo for procedido de texto, coloque-o entre aspas. Em UNIX, os nomes dos arquivos diferenciam letras maiúsculas de minúsculas. No Windows, os nomes de arquivos não diferenciam maiúsculas de minúsculas.

O exemplo a seguir mostra a saída do comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as lineitem_cnt from lineitem;
select count(*) as customer_cnt from customer;
select count(*) as orders_cnt from orders;



(testcluster) user1@dev=# \run file=test.sql
 lineitem_cnt
--------------
      4307207
(1 row)

 customer_cnt
--------------
     37796166
(1 row)

 orders_cnt
------------
          0
(1 row)


(testcluster) user1@dev=# \run file=test.sql skip=2
2 records skipped in RUN file.
 orders_cnt
------------
          0
(1 row)
```

## \$1OS
<a name="rsql-query-tool-flow-control-os"></a>

 Um alias para o `\!` comando. `\OS` executa o comando do sistema operacional que é passado como um parâmetro. O controle retorna ao Amazon Redshift RSQL após a execução do comando. Por exemplo, você pode executar este comando para imprimir a data e hora atual do sistema e retornar ao terminal RSQL: `\os date`.

```
(testcluster) user1@dev=# \os date
Tue Sep 7 20:47:54 UTC 2021
```

## \$1GOTO
<a name="rsql-query-tool-flow-control-goto"></a>

 Um novo comando para o Amazon Redshift RSQL. `\GOTO` ignora todos os comandos intervenientes e retoma o processamento no `\LABEL` especificado. O `\LABEL` deve ser uma referência de encaminhamento. Não é possível pular para um `\LABEL` que preceda lexicamente o `\GOTO`.

Veja a seguir um exemplo de saída.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as cnt from lineitem \gset
select :cnt as cnt;
\if :cnt > 100
    \goto LABELB
\endif

\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'


(testcluster) user1@dev=# \i test.sql
   cnt
---------
 4307207
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1LABEL
<a name="rsql-query-tool-flow-control-label"></a>

 Um novo comando para o Amazon Redshift RSQL. `\LABEL` estabelece um ponto de entrada para executar o programa, como o destino para um comando `\GOTO`.

O exemplo a seguir exibe a saída do comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) from lineitem limit 5;
\goto LABELB
\remark "this step was skipped by goto label";
\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'



(testcluster) user1@dev=# \i testgoto.sql
  count
 4307193
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1IF (\$1ELSEIF, \$1ELSE, \$1ENDIF)
<a name="rsql-query-tool-flow-control-if"></a>

 `\IF` e comandos relacionados executam condicionalmente partes do script de entrada. Uma extensão do comando PSQL `\if` (`\elif`, `\else`, `\endif`). `\IF` e `\ELSEIF` oferecem suporte a expressões boolianas, inclusive condições `AND`, `OR` e `NOT`. 

O exemplo a seguir exibe a saída dos comandos.

```
(testcluster) user1@dev=# \! cat test.sql
SELECT query FROM stv_inflight LIMIT 1 \gset
select :query as query;
\if :query > 1000000
    \remark 'Query id is greater than 1000000'
\elseif :query = 1000000
    \remark 'Query id is equal than 1000000'
\else
    \remark 'Query id is less than 1000000'
\endif


(testcluster) user1@dev=# \i test.sql 
 query
--------
 994803
(1 row)
 
Query id is less than 1000000
```

Use `ERRORCODE` em sua lógica de ramificação.

```
\if :'ERRORCODE' = '00000'
    \remark 'The statement was executed without error'
\else
    \remark :LAST_ERROR_MESSAGE
\endif
```

Use `\GOTO` dentro de um bloco `\IF` para controlar como o código será executado.

# Variáveis do Amazon Redshift RSQL
<a name="rsql-query-tool-variables"></a>

 Algumas palavras-chave funcionam como variáveis no RSQL. Você pode definir cada uma delas para um valor específico ou redefinir o valor. A maioria está definida com `\rset`, que tem um modo interativo e um modo em lote. Os comandos podem ser definidos em minúsculas ou maiúsculas.

## ACTIVITYCOUNT
<a name="rsql-query-tool-activitycount"></a>

 Indica o número de linhas afetadas pela última solicitação enviada. Para uma solicitação de retorno de dados, esse é o número de linhas retornadas ao RSQL do banco de dados. O valor é 0 ou um inteiro positivo. O valor máximo é 18.446.744.073.709.551.615. 

 A variável especialmente tratada `ACTIVITYCOUNT` é semelhante à variável `ROW_COUNT`. Porém, `ROW_COUNT` não informa à aplicação cliente a quantidade de linhas afetadas na conclusão do comando para `SELECT`, `COPY` ou `UNLOAD`. Mas `ACTIVITYCOUNT` o faz. 

activitycount\$101.sql:

```
select viewname, schemaname
from pg_views
where schemaname = 'not_existing_schema';
\if :ACTIVITYCOUNT = 0
\remark 'views do not exist'
\endif
```

Resultado no console:

```
viewname | schemaname
----------+------------
(0 rows)

views do not exist
```

## ERRORLEVEL
<a name="rsql-query-tool-describe-rset-errorlevel"></a>

Atribui aos erros níveis de gravidade. Use os níveis de gravidade para determinar um curso de ação. Se o comando `ERRORLEVEL` não foi usado, seu valor é `ON` por padrão.

errorlevel\$101.sql:

```
\rset errorlevel 42P01 severity 0

select * from tbl;

select 1 as col;

\echo exit
\quit
```

Resultado no console:

```
Errorlevel is on.
rsql: ERROR: relation "tbl" does not exist
(1 row)

col
1

exit
```

## HEADING e RTITLE
<a name="rsql-query-tool-describe-rset-heading-rtitle"></a>

Permite que os usuários especifiquem um cabeçalho que aparece no início de um relatório. O cabeçalho especificado pelo comando `RSET RTITLE` inclui automaticamente a data atual do sistema do computador cliente.

Conteúdo de rset\$1heading\$1rtitle\$102.rsql:

```
\remark Starting...
\rset rtitle "Marketing Department||Confidential//Third Quarter//Chicago"
\rset width 70
\rset rformat on
select * from rsql_test.tbl_currency order by id limit 2;
\exit
\remark Finishing...
```

Resultado no console:

```
Starting...
Rtitle is set to: &DATE||Marketing Department||Confidential//Third Quarter//Chicago (Changes will take effect after RFORMAT is
switched ON)
Target width is 70.
Rformat is on.
09/11/20       Marketing       Department Confidential
                  Third Quarter
                     Chicago
id  | bankid  | name |      start_date
100 |       1 | USD | 2020-09-11 10:51:39.106905
110 |       1 | EUR | 2020-09-11 10:51:39.106905
(2 rows)

Press any key to continue . . .
```

## MAXERROR
<a name="rsql-query-tool-describe-rset-maxerror"></a>

designa um nível máximo de gravidade de erro além do qual o RSQL termina o processamento do trabalho. Os códigos de retorno são valores inteiros que o RSQL retorna ao sistema operacional cliente após a conclusão de cada trabalho ou tarefa. O valor do código de retorno indica o status de conclusão do trabalho ou tarefa. Se um script contiver uma instrução que produza um nível de gravidade de erro maior que o valor `maxerror` designado, o RSQL sai imediatamente. Portanto, para que o RSQL saia em um nível de gravidade de erro 8, use `RSET MAXERROR 7`.

Conteúdo de maxerror\$101.sql:

```
\rset maxerror 0
                        
select 1 as col;

\quit
```

Resultado no console:

```
Maxerror is default.
(1 row)

col
1
```

## RFORMAT
<a name="rsql-query-tool-describe-rset-heading-rformat"></a>

Permite que os usuários especifiquem se as configurações serão aplicadas para os comandos de formatação.

Conteúdo rset\$1rformat.rsql:

```
\remark Starting...
\pset border 2
\pset format wrapped
\pset expanded on
\pset title 'Great Title'
select * from rsql_test.tbl_long where id = 500;
\rset rformat
select * from rsql_test.tbl_long where id = 500;
\rset rformat off
select * from rsql_test.tbl_long where id = 500;
\rset rformat on
select * from rsql_test.tbl_long where id = 500;
\exit
\remark Finishing...
```

Resultado no console:

```
Starting...
Border style is 2. (Changes will take effect after RFORMAT is switched ON)
Output format is wrapped. (Changes will take effect after RFORMAT is switched ON)
Expanded display is on. (Changes will take effect after RFORMAT is switched ON)
Title is "Great Title". (Changes will take effect after RFORMAT is switched ON)
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular
format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+

Rformat is off.
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+
Press any key to continue . . .
```

## ROW\$1COUNT
<a name="rsql-query-tool-describe-rset-row_count"></a>

Obtém o número de registros afetados pela consulta anterior. Geralmente é usado para conferir um resultado, como no seguinte fragmento de código:

```
SET result = ROW_COUNT;

IF result = 0
...
```

## TITLEDASHES
<a name="rsql-query-tool-describe-rset-heading-titledashes"></a>

Esse controle permite que os usuários especifiquem se uma linha de caracteres de traço deve ser impressa acima dos dados de colunas retornados para instruções SQL.

Exemplo:

```
\rset titledashes on
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
\rset titledashes off
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
```

Resultado no console:

```
dept_no      emp_no          salary
----------- ----------- --------------------
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00

dept_no     emp_no         salary
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00
```

## WIDTH
<a name="rsql-query-tool-describe-rset-heading-width"></a>

Define o formato de saída como empacotado e especifica a largura de destino para cada linha em um relatório. Sem um parâmetro, ele retorna as configurações atuais para o formato e a largura do destino.

Conteúdo rset\$1width\$101.rsql:

```
\echo Starting...
\rset width
\rset width 50
\rset width
\quit
\echo Finishing...
```

Resultado no console:

```
Starting...
Target width is 75.
Target width is 50.
Target width is 50.
Press any key to continue . . .
```

Exemplo com parâmetro:

```
\echo Starting...
\rset rformat on
\pset format wrapped
select * from rsql_test.tbl_long where id = 500;
\rset width 50
select * from rsql_test.tbl_long where id = 500;
\quit
\echo Finishing...
```

Resultado no console:

```
Starting...
Rformat is on.
Output format is wrapped.
id  |                                          long_string
500 | In general, the higher the number the more borders and lines the ta.
    |.bles will have, but details depend on the particular format.
(1 row)

Target width is 50.
id  |                                          long_string
500 | In general, the higher the number the more.
    |. borders and lines the tables will have, b.
    |.ut details depend on the particular format.
    |..
(1 row)
Press any key to continue . . .
```

# Códigos de erro Amazon Redshift RSQL
<a name="rsql-query-tool-error-codes"></a>

Mensagens de sucesso, avisos e exceções:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Exceções de dados:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Violações de restrição de integridade:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

# Variáveis de ambiente do Amazon Redshift RSQL
<a name="rsql-query-tool-environment-variables"></a>

 O Amazon Redshift RSQL pode usar variáveis de ambiente para selecionar valores de parâmetros padrão. 

## RSPASSWORD
<a name="rsql-query-tool-rspassword"></a>

**Importante**  
Não recomendamos usar essa variável de ambiente por motivos de segurança, pois alguns sistemas operacionais permitem que usuários não administrativos vejam variáveis de ambiente de processo.

 Define a senha do Amazon Redshift RSQL para usar na conexão com o Amazon Redshift. Essa variável de ambiente requer o Amazon Redshift RSQL 1.0.4 ou posterior. 

 O RSQL prioriza o RSPASSWORD caso esteja definido. Se o RSPASSWORD não estiver definido e você estiver se conectando usando um DSN, o RSQL usará a senha dos parâmetros do arquivo DSN. Por fim, se o RSPASSWORD não estiver definido e você não estiver usando um DSN, o RSQL exibirá uma solicitação de senha depois de tentar se conectar. 

Veja a seguir um exemplo de como definir um RSPASSWORD:

```
export RSPASSWORD=TestPassw0rd
```

# Usar um perfil de autenticação para se conectar ao Amazon Redshift
<a name="connecting-with-authentication-profiles"></a>

Se você tiver muitas conexões com o Amazon Redshift, poderá ser difícil gerenciar as configurações para todas elas. Muitas vezes, cada conexão JDBC ou ODBC usa opções de configuração específicas. Com um perfil de autenticação, você pode armazenar opções de conexão juntas. Dessa forma, seus usuários podem escolher um perfil para se conectar e evitar o gerenciamento de configurações para opções individuais. Os perfis podem ser aplicados a vários cenários e tipos de usuário.

Depois de criar um perfil de autenticação, os usuários podem adicionar o perfil pronto para uso a uma cadeia de conexão. Com isso, eles podem se conectar ao Amazon Redshift com as configurações corretas para cada função e caso de uso.

Para obter informações de API do Amazon Redshift, consulte [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile). 

# Criar um perfil de autenticação
<a name="connecting-with-authentication-profiles-creating"></a>

Com o AWS CLI, você cria um perfil de autenticação com o comando `create-authentication-profile`. Isso pressupõe que você tenha um cluster do Amazon Redshift existente e um banco de dados existente. Suas credenciais devem ter permissão para se conectar ao banco de dados do Amazon Redshift e direitos para buscar o perfil de autenticação. Forneça as opções de configuração como uma string JSON ou referencie um arquivo que contenha sua string JSON. 

```
create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>
```

 O exemplo a seguir cria um perfil chamado `ExampleProfileName`. Aqui, você pode adicionar chaves e valores que definem o nome do cluster e outras configurações de opção, como uma string JSON. 

```
create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
}
```

 Esse comando cria o perfil com as configurações JSON especificadas. Retorna-se o seguinte resultado, indicando que o perfil foi criado. 

 `{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ` 

## Limitações e cotas para criar um perfil de autenticação
<a name="connecting-with-authentication-profiles-limitations"></a>

Cada cliente tem uma cota de dez (10) perfis de autenticação.

Podem ocorrer alguns erros com perfis de autenticação. Por exemplo, se você criar um novo perfil com um nome existente ou se exceder sua cota de perfil. Para obter mais informações, consulte [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile). 

Não é possível armazenar determinadas chaves e valores de opção para cadeias de conexão JDBC, ODBC e Python no repositório de perfis de autenticação: 
+ `AccessKeyID`
+ `access_key_id`
+ `SecretAccessKey`
+ `secret_access_key_id`
+ `PWD`
+ `Password`
+ `password`

Não é possível armazenar a chave ou o valor `AuthProfile` no repositório de perfis, para cadeias de conexão JDBC ou ODBC. Para conexões Python, não é possível armazenar `auth_profile`. 

Os perfis de autenticação são armazenados no Amazon DynamoDB e gerenciados pela AWS.

# Conectar-se a um perfil de autenticação
<a name="connecting-with-authentication-profiles-using"></a>

Depois de criar um perfil de autenticação, é possível incluir o nome do perfil como uma opção de conexão para o JDBC versão 2.0 `AuthProfile`. Usar essa opção de conexão recupera as configurações armazenadas.

```
jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>
```

Este é um exemplo de string URL do JDBC.

```
jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

Especifique `AccessKeyID` e `SecretAccessKey` na URL do JDBC, juntamente com o nome do perfil de autenticação.

Também é possível separar as opções de configuração com delimitadores de ponto e vírgula, como no exemplo a seguir, que inclui opções para registro em log.

```
jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

**nota**  
 Não acrescente informações confidenciais ao perfil de autenticação. Por exemplo, não armazene um valor `AccessKeyID` ou `SecretAccessKey` em um perfil de autenticação. O repositório de perfis de autenticação tem regras para proibir o armazenamento de chaves secretas. Você receberá um erro, caso tente armazenar uma chave e um valor associados a informações confidenciais. 

# Obter perfis de autenticação
<a name="connecting-with-authentication-profiles-getting"></a>

Para listar perfis de autenticação existentes, chame o comando a seguir.

```
describe-authentication-profiles --authentication-profile-name <value: String>
```

O exemplo a seguir mostra dois perfis recuperados. Se você não especificar um nome de perfil, todos os perfis serão retornados.

`{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] } `

# Solução de problemas de conexão no Amazon Redshift
<a name="troubleshooting-connections"></a>

 Se você está com problemas na conexão de uma ferramenta do cliente SQL com o seu cluster, existem várias coisas que pode verificar para reduzir o número de possibilidades para o motivo do problema. Se você estiver usando o SSL ou certificados de servidor, remova essa complexidade antes de tentar solucionar o problema de conexão. Você poderá adicioná-los de volta quando tiver encontrado uma solução. Para obter mais informações, consulte [Configurar as opções de segurança para conexões](connecting-ssl-support.md). 

Para ter informações sobre mudanças de comportamento na funcionalidade do Amazon Redshift que podem afetar sua aplicação, consulte [Mudanças de comportamento no Amazon Redshift](behavior-changes.md).

**Importante**  
O Amazon Redshift mudou a maneira como os certificados SSL são gerenciados. Se você tiver problemas para se conectar usando o SSL, talvez seja necessário atualizar os certificados CA raiz confiáveis. Para obter mais informações, consulte [Transição para certificados ACM das conexões SSL](connecting-transitioning-to-acm-certs.md).

 A seção a seguir apresenta algumas mensagens de erro de exemplo e possíveis soluções para os problemas de conexão. Como diferentes ferramentas do cliente SQL geram diferentes mensagens de erro, essa não é uma lista completa, mas deve ser um bom ponto de partida para a solução de problemas. 

## Conectar-se de fora do Amazon EC2 e confrontar-se com um problema de tempo limite do firewall
<a name="connecting-firewall-guidance"></a>



 A conexão do cliente com o banco de dados parece estar travada ou ter expirado por exceder o tempo limite ao executar consultas longas, como um comando de COPY. Nesse caso, você pode observar que o console do Amazon Redshift exibe que a consulta foi concluída, mas a própria ferramenta do cliente ainda parece estar executando a consulta. Os resultados da consulta podem estar ausentes ou incompletos, dependendo de quando a conexão foi interrompida. 

### Soluções possíveis:
<a name="connecting-firewall-guidance.Solutions"></a>

Esse problema ocorre quando você se conecta ao Amazon Redshift de uma máquina que não seja uma instância do Amazon EC2. Nesse caso, as conexões são encerradas por um componente intermediário de rede, como um firewall, após um período de inatividade. Esse é um comportamento típico que ocorre ao fazer logon em uma rede virtual privada (VPN) ou na rede local. 

Para evitar essas limitações de tempo, recomendamos as seguintes alterações:
+ Aumente os valores do sistema no cliente que controlam os tempos limite de TCP/IP. Faça essas alterações no computador que está sendo usado para se conectar ao cluster. O período limite deve ser ajustado para o cliente e a rede. Para obter mais informações, consulte [Alteração das configurações de tempo limite de TCP/IP](#connecting-firewall-guidance.change-tcpip-settings).
+ Opcionalmente, defina o comportamento de manutenção de atividade no nível do DSN. Para obter mais informações, consulte [Alteração das configurações de tempo limite do DSN](#connecting-firewall-guidance.change-dsn-settings).

### Alteração das configurações de tempo limite de TCP/IP
<a name="connecting-firewall-guidance.change-tcpip-settings"></a>

Para alterar as configurações de tempo limite de TCP/IP, configure essas definições de acordo com o sistema operacional usado para a conexão com o cluster. 
+ Linux - Se o seu cliente estiver executando no Linux, execute o seguinte comando como usuário root para alterar as configurações de tempo limite da sessão atual: 

  ```
  /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
  ```

  Para manter as configurações, crie ou altere o arquivo `/etc/sysctl.conf` com os seguintes valores e, em seguida, reinicialize o sistema. 

  ```
  net.ipv4.tcp_keepalive_time=200
  net.ipv4.tcp_keepalive_intvl=200
  net.ipv4.tcp_keepalive_probes=5
  ```
+ Windows - Se o seu cliente for executado no Windows, edite os valores para as seguintes configurações de registro em HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Services\$1Tcpip\$1Parameters\$1: 
  + KeepAliveTime: 30000
  + KeepAliveInterval: 1000
  + TcpMaxDataRetransmissions: 10

  Essas configurações usam o tipo de dados DWORD. Se elas não existem no caminho do registro, você pode criar as configurações e especificar esses valores recomendados. Para obter mais informações sobre como editar o registro do Windows, consulte a documentação do Windows. 

  Após configurar esses valores, reinicie seu computador para que as alterações sejam implementadas. 

 
+ Mac - Se o seu cliente estiver sendo executado em um Mac, execute os seguintes comandos para alterar as configurações de tempo limite da sessão atual: 

  ```
  sudo sysctl net.inet.tcp.keepintvl=200000
  sudo sysctl net.inet.tcp.keepidle=200000
  sudo sysctl net.inet.tcp.keepinit=200000
  sudo sysctl net.inet.tcp.always_keepalive=1
  ```

  Para manter as configurações, crie ou altere o arquivo `/etc/sysctl.conf` com os seguintes valores: 

  ```
  net.inet.tcp.keepidle=200000
  net.inet.tcp.keepintvl=200000
  net.inet.tcp.keepinit=200000
  net.inet.tcp.always_keepalive=1
  ```

  Reinicie seu computador e, em seguida, execute os seguintes comandos para verificar se os valores estão definidos. 

  ```
  sysctl net.inet.tcp.keepidle
  sysctl net.inet.tcp.keepintvl
  sysctl net.inet.tcp.keepinit
  sysctl net.inet.tcp.always_keepalive
  ```

### Alteração das configurações de tempo limite do DSN
<a name="connecting-firewall-guidance.change-dsn-settings"></a>

Você pode definir o comportamento de manutenção de atividade no nível do DSN, se desejar. Para isso, adicione ou modifique os seguintes parâmetros no arquivo odbc.ini: 

**KeepAlivesCount**  
O número de pacotes de keepalive de TCP que podem ser perdidos antes que a conexão seja considerada interrompida.

**KeepAlivesIdle**  
O número de segundos de inatividade antes que o driver envie um pacote de manutenções de atividade de TCP.

**KeepAlivesInterval**  
O número de segundos entre cada retransmissão de keepalive de TCP.

Se esses parâmetros não existem, ou se estão com o valor 0, o sistema usa os parâmetros de manutenção de atividade especificados para TCP/IP a fim de determinar o comportamento de manutenção de atividade do DSN. No Windows, os parâmetros de TCP/IP podem ser encontrados no registro em `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\`. No Linux e no macOS, os parâmetros de TCP/IP podem ser encontrados no arquivo sysctl.conf. 

## A conexão é recusada ou falha
<a name="connecting-refusal-failure-issues"></a>

Quando sua conexão for recusada ou falhar, você poderá receber um erro semelhante a um dos seguintes:
+ "Falha ao estabelecer uma conexão com *<endpoint>*."
+ “Não foi possível conectar-se ao servidor: a conexão expirou por exceder o tempo limite. O servidor está sendo executado no host *'<endpoint>'* e aceitando as conexões TCP/IP na porta *'<port>'*?"
+ "A conexão foi recusada. Certifique-se de que o nome do host e da porta estão corretos e o postmaster está aceitando conexões de TCP/IP.”

### Soluções possíveis:
<a name="connecting-refusal-failure-issues.Solutions"></a>

Geralmente, quando você recebe uma mensagem de erro indicando que não foi possível estabelecer uma conexão, o problema é relacionado à permissão de acesso ao cluster ou ao tráfego de rede que está chegando ao cluster. 

Para se conectar ao cluster de uma ferramenta de cliente fora da rede em que o cluster está, adicione uma regra de entrada ao grupo de segurança do cluster. A configuração da regra depende da criação do cluster do Amazon Redshift em uma nuvem privada virtual (VPC):
+ Se você criou o cluster do Amazon Redshift em uma nuvem privada virtual (VPC) com base no Amazon VPC, adicione uma regra de entrada ao grupo de segurança da VPC no endereço CIDR/IP no Amazon VPC. Para obter mais informações sobre a configuração de grupos de segurança da VPC para o cluster e opções acessíveis ao público geral, consulte [Recursos do Redshift em uma VPC](managing-clusters-vpc.md).
+  Se você criou seu cluster do Amazon Redshift fora de um VPC, adicione o endereço CIDR/endereço IP ao grupo de segurança do cluster no Amazon Redshift. Para obter mais informações sobre a configuração de grupos de segurança de clusters, consulte [Grupos de segurança do Amazon Redshift](security-network-isolation.md#working-with-security-groups).

Se você tentar se conectar ao cluster de uma ferramenta cliente que executa uma instância do Amazon EC2, deverá também adicionar uma regra de entrada. Nesse caso, adicione uma regra ao grupo de segurança do cluster. A regra deve especificar o grupo de segurança do Amazon EC2 associado à instância do Amazon EC2 da ferramenta cliente.

 Em alguns casos, pode haver uma camada entre o cliente e o servidor, como um firewall. Nesses casos, verifique se o firewall aceita conexões de entrada pela porta que foi configurada para o cluster. 

## O cliente e o driver são incompatíveis
<a name="connecting-architecture-mismatch"></a>

 Se o cliente e o driver forem incompatíveis, você poderá receber o seguinte erro: “O DSN especificado contém uma incompatibilidade de arquitetura entre o driver e a aplicação”. 

### Soluções possíveis:
<a name="connecting-architecture-mismatch.Solutions"></a>

 Quando você recebe uma mensagem de erro de incompatibilidade de arquiteturas ao tentar estabelecer uma conexão, isso significa que a ferramenta do cliente e o driver são incompatíveis. Isso ocorre porque as arquiteturas de sistema não correspondem. Por exemplo, isso pode ocorrer se você tiver uma ferramenta do cliente de 32 bits mas instalou uma versão do driver para 64 bits. Em algumas ocasiões, as ferramentas do cliente de 64 bits podem usar drivers de 32 bits, mas não é possível usar aplicativos de 32 bits com drivers de 64 bits. Certifique-se de que o driver e a ferramenta do cliente estão usando a mesma versão de arquitetura de sistema. 

## As consultas parecem travar e, às vezes, não se comunicam com o cluster
<a name="connecting-drop-issues"></a>

Você está tendo um problema com a conclusão das consultas, onde as consultas parecem estar em execução mas travam na ferramenta do cliente SQL. Às vezes, as consultas não aparecem no cluster, como nas tabelas do sistema ou no console do Amazon Redshift. 

### Soluções possíveis:
<a name="connecting-drop-issues.Solutions"></a>

 Esse problema pode ocorrer devido à perda de pacotes. Nesse caso, há uma diferença no tamanho da unidade de transmissão máxima (MTU) no caminho da rede entre dois hosts de IP (Internet Protocol). O tamanho de MTU determina o tamanho máximo, em bytes, de um pacote que pode ser transferido em um quadro Ethernet através de uma conexão de rede. Na AWS, alguns tipos de instância do Amazon EC2 oferecem suporte a um MTU de 1500 (frames Ethernet v2) e outros tipos de instância oferecem suporte a um MTU de 9001 (frames jumbo TCP/IP). 

 Para evitar problemas que podem ocorrer com as diferenças de tamanho de MTU, recomendamos a execução de uma das ações a seguir: 
+ Se o seu cluster usa a plataforma EC2-VPC, configure o grupo de segurança Amazon VPC com uma regra de entrada personalizada de protocolo de mensagem de controle da Internet (ICMP) que retorna `Destination Unreachable`. Assim, a mensagem instrui o host de origem a usar o menor tamanho de MTU no caminho de rede. Para obter mais detalhes sobre essa abordagem, consulte [Configuração de grupos de segurança para permitir o "destino inacessível" do ICMP](#configure-custom-icmp). 
+ Se o cluster usa a plataforma EC2-Classic, ou se você não pode permitir a regra de entrada do ICMP, desabilite os quadros jumbo de TCP/IP para que os quadros de Ethernet v2 sejam usados. Para obter mais detalhes sobre essa abordagem, consulte [Configuração da MTU de uma instância](#set-mtu).

### Configuração de grupos de segurança para permitir o "destino inacessível" do ICMP
<a name="configure-custom-icmp"></a>

 Quando há alguma diferença no tamanho de MTU da rede entre dois hosts, em primeiro lugar certifique-se de que suas configurações de rede não estão obstruindo a descoberta de MTU do caminho (PMTUD). A PMTUD permite que o host de recepção responda ao host de origem com a seguinte mensagem de ICMP: `Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4)`. Essa mensagem instrui o host de origem a usar o menor tamanho de MTU no caminho de rede para enviar novamente a solicitação. Sem essa negociação, a perda de pacotes pode ocorrer porque a solicitação é muito grande para o host aceitar. Para obter mais informações sobre a mensagem do ICMP, acesse [RFC792](http://tools.ietf.org/html/rfc792) no website *Internet Engineering Task Force (IETF)*. 

 Se você não configurar explicitamente esta regra de entrada ICMP para seu grupo de segurança do Amazon VPC, PMTUD será bloqueado. Na AWS, grupos de segurança são firewalls virtuais que especificam regras para o tráfego de entrada e saída de uma instância. Para obter informações sobre o grupo de segurança de cluster do Amazon Redshift, consulte [Grupos de segurança do Amazon Redshift](security-network-isolation.md#working-with-security-groups). Para clusters que usam a plataforma EC2-VPC, o Amazon Redshift usa grupos de segurança da VPC para permitir ou negar o tráfego para o cluster. Por padrão, os grupos de segurança são bloqueados e negam todo o tráfego de entrada. Consulte informações sobre como definir regras de entrada e saída para instâncias EC2-Classic ou EC2-VPC em [Differences between instances in EC2-Classic and a VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-classic-platform.html#ec2_classic_platform) no *Guia do usuário do Amazon EC2*.

 Para obter mais informações sobre como adicionar regras aos grupos de segurança da VPC, consulte [Grupos de segurança da VPC](managing-vpc-security-groups.md). Consulte mais informações sobre as configurações específicas de PMTUD exigidas nessa regra em [Path MTU Discovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery) no *Guia do usuário do Amazon EC2*. 

### Configuração da MTU de uma instância
<a name="set-mtu"></a>

Em alguns casos, o cluster pode usar a plataforma EC2-Classic ou você não pode permitir a regra ICMP personalizada para tráfego de entrada. Nesses casos, é recomendado que você ajuste o MTU para 1500 na interface de rede (NIC) das instâncias do EC2 a partir das quais você se conecta ao cluster do Amazon Redshift. Esse ajuste desabilita os quadros enormes de TCP/IP para garantir que as conexões usem consistentemente o mesmo tamanho de pacote. No entanto, essa opção reduz totalmente o throughput máximo da rede para a instância, não apenas para conexões com o Amazon Redshift. Para ter mais informações, consulte os procedimentos a seguir. <a name="set-mtu-win-os"></a>

**Para definir a MTU em um sistema operacional Microsoft Windows**

Se o cliente é executado em um sistema operacional Microsoft Windows, você pode revisar e definir o valor da MTU para o adaptador de Ethernet usando o comando `netsh`. 

1. Execute o comando a seguir para determinar o valor atual da MTU: 

   ```
   netsh interface ipv4 show subinterfaces
   ```

1.  Revise o valor `MTU` para o adaptador `Ethernet` na saída. 

1. Se o valor não for `1500`, execute o seguinte comando para defini-lo: 

   ```
   netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent
   ```

   Após configurar esse valor, reinicie seu computador para que as alterações sejam implementadas.<a name="set-mtu-linux-os"></a>

**Para definir a MTU em um sistema operacional Linux**

 Se o cliente é executado em um sistema operacional Linux, você pode revisar e definir o valor da MTU usando o comando `ip`. 

1. Execute o comando a seguir para determinar o valor atual da MTU: 

   ```
   $ ip link show eth0
   ```

1. Revise o valor da `mtu` na saída. 

1. Se o valor não for `1500`, execute o seguinte comando para defini-lo: 

   ```
   $ sudo ip link set dev eth0 mtu 1500
   ```<a name="set-mtu-mac-os"></a>

**Para definir a MTU em um sistema operacional Mac**
+ Siga as instruções no site de suporte do macOS sobre `How to change the MTU for troubleshooting purposes`. Para obter mais informações, pesquise o [site de suporte](https://support.apple.com). 

## Como configurar o parâmetro JDBC para o tamanho da busca
<a name="jdbc_fetch_size"></a>

Por padrão, o driver JDBC do Redshift usa um buffer em anel para gerenciar a memória com eficiência e evitar erros de falta de memória. O parâmetro de tamanho da busca só é aplicável quando o buffer em anel está explicitamente desabilitado. Para acessar mais informações, consulte [link](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-enablefetchringbuffer-option). Nessa configuração, você deve definir o tamanho da busca para controlar quantas linhas são recuperadas em cada lote.

Use o parâmetro de tamanho da busca quando:
+ Você precisa de controle refinado sobre lotes baseados em linhas.
+ Trabalhar com aplicações legadas que exigem um comportamento tradicional de tamanho da busca

Por padrão, quando o buffer em anel está desabilitado, o driver JDBC coleta todos os resultados de uma consulta de uma só vez. As consultas que exibem grandes conjuntos de resultados podem consumir memória excessiva. Para recuperar conjuntos de resultados em lote em vez de todos de uma vez, defina o parâmetro de tamanho da busca JDBC em sua aplicação.

**nota**  
O tamanho de busca não é compatível com ODBC.

Para obter uma melhor performance, defina o tamanho de busca como o maior valor que não resulte em erros de falta de memória. Um valor menor de tamanho de busca resulta em mais viagens do servidor, o que prolonga os tempos de execução. O servidor reserva recursos, incluindo a vaga de consulta WLM e memória associada, até que o cliente recupere todo o conjunto de resultados ou até que a consulta seja cancelada. Quando você ajusta o tamanho de busca adequadamente, esses recursos são liberados mais rapidamente, disponibilizando-os para outras consultas.

**nota**  
Se você precisar extrair grandes conjuntos de dados, recomendamos o uso de uma instrução [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) para transferir os dados ao Amazon S3. Quando você usa UNLOAD, os nós de computação funcionam em paralelo para acelerar a transferência de dados.

Para obter mais informações sobre a configuração do parâmetro JDBC para o tamanho de busca, acesse [Obtenção de resultados com base em um cursor](https://jdbc.postgresql.org/documentation/query/#getting-results-based-on-a-cursor) na documentação do PostgreSQL.

# Usar a API de dados Amazon Redshift
<a name="data-api"></a>

A API de dados do Amazon Redshift simplifica o acesso ao data warehouse do Amazon Redshift, eliminando a necessidade de gerenciar drivers de banco de dados, conexões, configurações de rede, buffer de dados, credenciais e muito mais. É possível executar instruções SQL usando as operações da API de dados com o AWS SDK. Consulte mais informações sobre as operações da API de dados na [Referência da API de dados do Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

A API de dados não requer uma conexão persistente com o banco de dados. Em vez disso, ela oferece um endpoint HTTP seguro e uma integração com SDKs da AWS. Você pode usar o endpoint para executar instruções SQL sem gerenciar conexões. Chamadas para a API de dados são assíncronas. A API de dados pode usar as credenciais armazenadas no AWS Secrets Manager ou credenciais temporárias do banco de dados. Você não precisa passar senhas nas chamadas de API com nenhum dos métodos de autorização. Para obter informações sobre o AWS Secrets Manager, consulte [O que é AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) no *Manual do usuário do AWS Secrets Manager*. Também é possível usar o Centro de Identidade do AWS IAM para autorização.

Com a API de dados, você pode acessar programaticamente os dados do Amazon Redshift com aplicações baseadas em serviços da web, incluindo o AWS Lambda, cadernos do Amazon SageMaker AI e o AWS Cloud9. Para obter mais informações sobre essas aplicações, consulte [AWS Lambda](https://aws.amazon.com/lambda/), [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/) e [AWS Cloud9](https://aws.amazon.com/cloud9/). 

Para saber mais sobre a API de dados, consulte [Get started with the Amazon Redshift Data API](https://aws.amazon.com/blogs/big-data/get-started-with-the-amazon-redshift-data-api/) no *Blog de big data da AWS*.

## Trabalhar com a API de dados do Amazon Redshift
<a name="data-api-workflow"></a>

Antes de usar a API de dados do Amazon Redshift, revise as seguintes etapas: 

1. Determine se você, como autor da chamada da API de dados, está autorizado. Para obter mais informações sobre a autorização da , consulte [Autorizar acesso à API de dados do Amazon Redshift](data-api-access.md).

1. Determine se você planeja chamar a API de dados com credenciais de autenticação do Secrets Manager, credenciais temporárias ou usar o Centro de Identidade do AWS IAM. Para obter mais informações, consulte [Escolher credenciais de autenticação de banco de dados ao chamar a API de dados do Amazon Redshift](#data-api-calling-considerations-authentication).

1. Configure um segredo se você usar o Secrets Manager para credenciais de autenticação. Para obter mais informações, consulte [Armazenar credenciais de banco de dados no AWS Secrets Manager](data-api-secrets.md).

1. Revise as considerações e limitações ao chamar a API de dados. Para obter mais informações, consulte [Considerações ao chamar a API de dados do Amazon Redshift](#data-api-calling-considerations).

1. Ligue para a API de dados a partir da AWS Command Line Interface(AWS CLI), a partir de seu próprio código ou usando o editor de consulta no console do Amazon Redshift. Para obter exemplos de chamadas a partir da AWS CLI, consulte[Chamar a API de dados](data-api-calling.md).

## Considerações ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations"></a>

Considere o seguinte ao chamar a API de dados:
+ A API de dados do Amazon Redshift pode acessar bancos de dados em clusters provisionados do Amazon Redshift e grupos de trabalho do Redshift sem servidor. Para obter uma lista de Regiões da AWS onde a API de dados do Redshift está disponível, consulte os endpoints listados para a [API de dados do Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) na *Referência geral da Amazon Web Services*. 
+ A duração máxima de uma consulta é de 24 horas. 
+ O número máximo de consultas ativas (`STARTED` e `SUBMITTED`) por cluster do Amazon Redshift é 500. 
+ O tamanho máximo do resultado da consulta é 500 MB (após a compactação gzip). Se uma chamada retornar mais de 500 MB de dados de resposta, a chamada será encerrada. 
+ O tempo máximo de retenção para resultados da consulta é de 24 horas. 
+ O tamanho máximo da instrução de consulta é de 100 KB. 
+ A API de dados está disponível para consultar clusters de nó único e de vários nós dos seguintes tipos de nó:
  + dc2.large
  + dc2.8xlarge
  + ra3.large
  + ra3.xlplus
  + ra3.4xlarge
  + ra3.16xlarge
+ O cluster deve estar em uma Virtual Private Cloud (VPC) baseada no serviço Amazon VPC. 
+ Por padrão, os usuários com o mesmo perfil do IAM que o executor de uma operação de API `ExecuteStatement` ou `BatchExecuteStatement` podem agir em relação à mesma instrução com as operações de API `CancelStatement`, `DescribeStatement`, `GetStatementResult`, `GetStatementResultV2` e `ListStatements`. Para agir na mesma instrução SQL de outro usuário, o usuário deve ser capaz de assumir o perfil do IAM do usuário que executou a instrução SQL. Para obter mais informações sobre como assumir uma função, consulte [Autorizar acesso à API de dados do Amazon Redshift](data-api-access.md). 
+ As instruções SQL no parâmetro `Sqls` da operação da API `BatchExecuteStatement` são executadas como uma única transação. Eles são executados em série na ordem da matriz. As instruções SQL subsequentes não são iniciadas enquanto a instrução anterior na matriz não for concluída. Se alguma instrução SQL falhar, como ela é executada como uma transação, todo o trabalho será revertido.
+ O tempo máximo de retenção de um token de cliente usado na operação de API `ExecuteStatement` ou `BatchExecuteStatement` é de 8 horas.
+ Se os clusters provisionados pelo Amazon Redshift e o grupo de trabalho Redshift sem servidor forem criptografados usando uma chave gerenciada pelo cliente, o Redshift criará uma concessão que permite que a API de dados do Redshift use a chave em suas operações. Para obter mais informações, consulte [Usar o AWS KMS com a API de dados do Amazon Redshift](data-api-kms.md). 
+ Cada API na API do Redshift Data tem uma cota de transações por segundo antes do controle de utilização das solicitações. Para a cota, consulte [Cotas da API de dados do Amazon Redshift](amazon-redshift-limits.md#data-api-quotas-account). Se a taxa de solicitação exceder a cota, um `ThrottlingException` com o código de status HTTP: 400 será retornado. Para responder ao controle de utilização, use uma estratégia de repetição conforme descrito em [Comportamento de nova tentativa](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html) no *Guia de referência de SDKs e ferramentas da AWS*. Essa estratégia é implementada automaticamente para erros no controle de utilização em alguns SDKs da AWS.
**nota**  
Por padrão, no AWS Step Functions, as novas tentativas não permanecem habilitadas. Se você precisar chamar uma API do Redshift Data em uma máquina de estado Step Functions, inclua o parâmetro de idempotência `ClientToken` na chamada de API do Redshift Data. O valor de `ClientToken` precisa persistir entre as novas tentativas. No trecho de exemplo a seguir de uma solicitação para a API `ExecuteStatement`, a expressão `States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)` usa uma função intrínseca para extrair a parte UUID de `$$.Execution.Id`, que é exclusiva de cada execução da máquina de estado. Para obter mais informações, consulte [Intrinsic functions](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html) no *Guia de desenvolvedor do AWS Step Functions*.  

  ```
  {
    "Database": "dev",
    "Sql": "select 1;",
    "ClusterIdentifier": "MyCluster",
    "ClientToken.$": "States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)"
  }
  ```

## Escolher credenciais de autenticação de banco de dados ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations-authentication"></a>

Quando você chama a API de dados, você usa um dos métodos de autenticação a seguir para algumas operações de API. Cada método requer uma combinação diferente de parâmetros. 

**Centro de Identidade do AWS IAM**  
A API de dados pode ser acessada com um usuário de autenticação única registrado no Centro de Identidade do AWS IAM. Para ter informações sobre as etapas para configurar o Centro de Identidade do IAM, consulte [Usar a API de dados com propagação de identidade confiável](data-api-trusted-identity-propagation.md).

**AWS Secrets Manager**  
Com esse método, forneça o `secret-arn` de um segredo armazenado no AWS Secrets Manager que tenha `username` e `password`. O segredo especificado contém credenciais para se conectar ao `database` que você especificar. Quando está se conectando a um cluster, você também fornece o nome do banco de dados. Se você fornecer um identificador do cluster (`dbClusterIdentifier`), ele deverá corresponder ao identificar de cluster armazenado no segredo. Ao se conectar a um grupo de trabalho com a tecnologia sem servidor, você também fornece o nome do banco de dados. Para obter mais informações, consulte [Armazenar credenciais de banco de dados no AWS Secrets Manager](data-api-secrets.md).   
Com esse método, também é possível fornecer um valor `region` que especifica a Região da AWS onde os dados estão localizados. 

**Credenciais temporárias**  
Com esse método, escolha uma das seguintes opções:  
+ Ao se conectar a um grupo de trabalho com tecnologia sem servidor, especifique o nome do grupo de trabalho e o nome do banco de dados. O nome de usuário do banco de dados é derivado da identidade do IAM. Por exemplo, `arn:iam::123456789012:user:foo` tem o nome de usuário de banco de dados `IAM:foo`. Além disso, é necessário ter uma permissão para chamar a operação `redshift-serverless:GetCredentials`.
+ Ao se conectar a um cluster como uma identidade do IAM, especifique o identificador do cluster e o nome do banco de dados. O nome de usuário do banco de dados é derivado da identidade do IAM. Por exemplo, `arn:iam::123456789012:user:foo` tem o nome de usuário de banco de dados `IAM:foo`. Além disso, é necessário ter uma permissão para chamar a operação `redshift:GetClusterCredentialsWithIAM`.
+ Ao se conectar a um cluster como um usuário do banco de dados, especifique o identificador do cluster, o nome do banco de dados e o nome de usuário do banco de dados. Além disso, é necessário ter uma permissão para chamar a operação `redshift:GetClusterCredentials`. Para obter informações sobre como ingressar em grupos de banco de dados ao se conectar com esse método, consulte [Unir grupos de banco de dados ao se conectar a um cluster](data-api-dbgroups.md).
Com esse método, também é possível fornecer um valor `region` que especifica a Região da AWS onde os dados estão localizados. 

## Mapear tipos de dados JDBC ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations-jdbc"></a>

 A tabela a seguir mapeia tipos de dados Java Database Connectivity (JDBC) para os tipos de dados especificados nas chamadas da API Data.


****  

|  Tipo de dados JDBC  |  Tipo de dados da API de dados  | 
| --- | --- | 
|  `INTEGER, SMALLINT, BIGINT`  |  `LONG`  | 
|  `FLOAT, REAL, DOUBLE`  |  `DOUBLE`  | 
|  `DECIMAL`  |  `STRING`  | 
|  `BOOLEAN, BIT`  |  `BOOLEAN`  | 
|  `BLOB, BINARY, LONGVARBINARY`  |  `BLOB`  | 
|  `VARBINARY`  |  `STRING`  | 
|  `CLOB`  |  `STRING`  | 
|  Outros tipos (incluindo tipos relacionados a data e hora)  |  `STRING`  | 

Os valores de string são passados ao banco de dados do Amazon Redshift e convertidos implicitamente em um tipo de dados de banco de dados.

**nota**  
Atualmente, a API de dados não oferece suporte a arrays de identificadores exclusivos universais (UUIDs).

## Executar instruções SQL com parâmetros ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations-parameters"></a>

Você pode controlar o texto SQL submetido ao mecanismo de banco de dados chamando a operação API de dados usando parâmetros para partes da instrução SQL. Parâmetros nomeados fornecem uma maneira flexível de transmitir parâmetros sem codificá-los no texto SQL. Eles ajudam você a reutilizar o texto SQL e evitar problemas de injeção SQL.

O exemplo a seguir mostra os parâmetros nomeados de um campo `parameters` de um comando `execute-statement` da AWS CLI.

```
--parameters "[{\"name\": \"id\", \"value\": \"1\"},{\"name\": \"address\", \"value\": \"Seattle\"}]"
```

Considere o seguinte ao usar parâmetros nomeados:
+ Parâmetros nomeados só podem ser usados para substituir valores em instruções SQL.
  + Você pode substituir os valores em uma instrução INSERT, como `INSERT INTO mytable VALUES(:val1)`.

    Os parâmetros nomeados podem estar em qualquer ordem e os parâmetros podem ser usados mais de uma vez no texto SQL. Na opção de parâmetros mostrada em um exemplo anterior, os valores `1` e `Seattle` são inseridos nas colunas da tabela `id` e `address`. No texto SQL, você especifica os parâmetros nomeados da seguinte forma:

    ```
    --sql "insert into mytable values (:id, :address)"
    ```
  + Você pode substituir os valores em uma cláusula de condições, como `WHERE attr >= :val1`, `WHERE attr BETWEEN :val1 AND :val2` e `HAVING COUNT(attr) > :val`.
  + Você não pode substituir nomes de colunas em uma instrução SQL, como `SELECT column-name`, `ORDER BY column-name` ou `GROUP BY column-name`.

    Por exemplo, a instrução SELECT a seguir falha com sintaxe inválida.

    ```
    --sql "SELECT :colname, FROM event" --parameters "[{\"name\": \"colname\", \"value\": \"eventname\"}]"
    ```

    Se você descrever (operação `describe-statement`) a instrução com o erro de sintaxe, a `QueryString` retornada não substituirá o nome da coluna pelo parâmetro (`"QueryString": "SELECT :colname, FROM event"`) e um erro será relatado (ERRO: erro de sintaxe em ou próximo a \$1"FROM\$1"\$1n Posição: 12).
  + Não é possível substituir nomes de colunas em uma função agregada, como `COUNT(column-name)`, `AVG(column-name)` ou `SUM(column-name)`.
  + Não é possível substituir nomes de colunas em uma cláusula JOIN.
+ Quando o SQL é executado, os dados são implicitamente convertidos em um tipo de dados. Para obter mais informações sobre a conversão do tipo de dados do, consulte [Tipos de dados](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 
+ Não é possível definir um valor como NULL. A API de dados a interpreta como a string literal `NULL`. O exemplo a seguir substitui `id` com a string literal `null`. Não o valor NULL SQL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"null\"}]"
  ```
+ Não é possível definir um valor de comprimento zero. Falha na instrução SQL da API de dados. O exemplo a seguir tenta definir `id` com um valor de comprimento zero e resulta em uma falha da instrução SQL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"\"}]"
  ```
+ Você não pode definir um nome de tabela na instrução SQL com um parâmetro. A API de dados segue a regra do JDBC `PreparedStatement`. 
+ A saída da operação `describe-statement` retorna os parâmetros de consulta de uma instrução SQL.
+ Somente a operação `execute-statement` suporta instruções SQL com parâmetros.

## Executar instruções SQL com um token de idempotência ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations-idempotency"></a>

Quando você faz uma solicitação de API de mutação, a solicitação normalmente retorna um resultado antes da conclusão dos fluxos de trabalho assíncronos da operação. As operações também podem expirar ou encontrar outros problemas no servidor antes de serem concluídas, mesmo que a solicitação já tenha retornado um resultado. Isso pode dificultar na hora de determinar se a solicitação foi bem-sucedida ou não, e pode levar a várias novas tentativas para garantir que a operação seja concluída com êxito. No entanto, se a solicitação original e as tentativas subsequentes forem bem-sucedidas, a operação será concluída várias vezes. Isso significa que você pode atualizar mais recursos do que pretendia.

A *idempotência* garante que uma solicitação de API seja concluída no máximo uma vez. Com uma solicitação idempotente, se a solicitação original for concluída com êxito, todas as novas tentativas subsequentes serão concluídas com êxito sem realizar nenhuma ação. As operações `ExecuteStatement` e `BatchExecuteStatement` da API de dados têm um parâmetro idempotente `ClientToken` opcional. O `ClientToken` expira após 8 horas.

**Importante**  
Se você chamar as operações `ExecuteStatement` e `BatchExecuteStatement` usando um AWS SDK, um token de cliente será gerado automaticamente para ser usado em uma nova tentativa. Nesse caso, não recomendamos usar o parâmetro `client-token` com as operações `ExecuteStatement` e `BatchExecuteStatement`. Veja o log do CloudTrail para ver o `ClientToken`. Para obter um exemplo de log do CloudTrail, consulte [Exemplos de API de dados do Amazon Redshift](logging-with-cloudtrail.md#data-api-cloudtrail).

O comando `execute-statement` da AWS CLI a seguir ilustra o parâmetro `client-token` opcional para idempotência.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

A tabela a seguir mostra algumas respostas comuns que você pode obter para solicitações de API idempotentes e fornece recomendações para novas tentativas.


| Resposta | Recomendação | Comentários | 
| --- | --- | --- | 
|  200 (OK)  |  Não repetir  |  A solicitação original foi concluída com êxito. Qualquer repetição subsequente é retornada com êxito.  | 
|  Códigos de resposta da série 400   |  Não repetir  |  Há um dos seguintes problemas com a solicitação:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/data-api.html) Se a solicitação envolver um recurso em processo de mudança de estado, a repetição da solicitação poderá ser bem-sucedida.  | 
|  Códigos de resposta da série 500   |  Tentar novamente  |  O erro é causado por um problema no servidor da AWS e geralmente é transitório. Repita a solicitação com uma estratégia de recuo apropriada.  | 

Para obter informações sobre os códigos de resposta do Amazon Redshift, consulte [Erros comuns](https://docs.aws.amazon.com/redshift/latest/APIReference/CommonErrors.html) na *Referência de API do Amazon Redshift*.

## Executar instruções SQL com reutilização de sessão ao chamar a API de dados do Amazon Redshift
<a name="data-api-calling-considerations-session-reuse"></a>

Quando você faz uma solicitação de API para executar uma instrução SQL, a sessão em que o SQL é executado geralmente é encerrada quando o SQL é concluído. Para manter a sessão ativa durante determinado número de segundos, as operações `ExecuteStatement` e `BatchExecuteStatement` da API de dados têm um parâmetro `SessionKeepAliveSeconds` opcional. Um campo de resposta `SessionId` contém a identidade da sessão, que pode ser usada nas operações `BatchExecuteStatement` e `ExecuteStatement` subsequentes. Nas chamadas subsequentes, você pode especificar outra `SessionKeepAliveSeconds` para alterar o tempo limite de inatividade. Se `SessionKeepAliveSeconds` não for alterada, a configuração inicial de tempo limite de inatividade permanecerá. Considere o seguinte ao usar a reutilização de sessão:
+ O valor máximo de `SessionKeepAliveSeconds` é 24 horas.
+ A sessão pode durar no máximo 24 horas. Após 24 horas, a sessão é encerrada à força e as consultas em andamento são encerradas.
+ O número máximo de sessões por cluster do Amazon Redshift ou grupo de trabalho do Redshift sem servidor é 500.
+ Você só pode executar uma consulta por vez em uma sessão. É necessário esperar a conclusão da consulta para executar a próxima consulta na mesma sessão. Ou seja, não é possível executar consultas paralelamente em uma sessão fornecida.
+ A API de dados não pode colocar consultas em fila para determinada sessão.

Para recuperar o `SessionId` que é usado por chamadas às operações `ExecuteStatement` e `BatchExecuteStatement`, chame as operações `DescribeStatement` e `ListStatements`.

O exemplo a seguir demonstra o uso dos parâmetros `SessionId` e `SessionKeepAliveSeconds` para manter uma sessão ativa e reutilizada. Primeiro, chame o comando `execute-statement` da AWS CLI com o parâmetro opcional `session-keep-alive-seconds` definido como `2`.

```
aws redshift-data execute-statement 
    --session-keep-alive-seconds 2 
    --sql "select 1" 
    --database dev 
    --workgroup-name mywg
```

A resposta contém o identificador da sessão.

```
{
    "WorkgroupName": "mywg",
    "CreatedAt": 1703022996.436,
    "Database": "dev",
    "DbUser": "awsuser",
    "Id": "07c5ffea-76d6-4786-b62c-4fe3ef529680",
    "SessionId": "5a254dc6-4fc2-4203-87a8-551155432ee4"
}
```

Em seguida, chame o comando `execute-statement` da AWS CLI com o `SessionId` apresentado na primeira chamada. E, opcionalmente, especifique o parâmetro `session-keep-alive-seconds` definido como `10` para alterar o valor do tempo limite de inatividade.

```
aws redshift-data execute-statement 
    --sql "select 1" 
    --session-id 5a254dc6-4fc2-4203-87a8-551155432ee4
    --session-keep-alive-seconds 10
```

## Buscar os resultados de instruções SQL
<a name="data-api-calling-considerations-result-format"></a>

Você usa diferentes operações da API de dados para buscar resultados SQL, dependendo do formato do resultado. Ao chamar as operações `ExecuteStatement` e `BatchExecuteStatement`, você pode especificar se os resultados serão formatados como JSON ou CSV. Se você não especificar, o padrão será JSON. Para obter resultados JSON, use a operação `GetStatementResult`. Para obter resultados CSV, use a operação `GetStatementResultV2`.

Os resultados gerados no formato JSON são registros que incluem metadados sobre cada coluna. Cada registro está no formato JSON. Por exemplo, a resposta de `GetStatementResult` é semelhante a esta:

```
{
   "ColumnMetadata": [ 
      { 
         "isCaseSensitive": false,
         "isCurrency": false,
         "isSigned": true,
         "label": "?column?",
         "name": "?column?",
         "nullable": 1,
         "precision": 10,
         "scale": 0,
         "schemaName": "",
         "tableName": "",
         "typeName": "int4",
         "length": 0
      }
   ],
   "NextToken": "<token>",
   "Records": [
        [
            {
                "longValue": 1
            }
        ]
    ],
   "TotalNumRows": <number>
}
```

Os resultados gerados no formato CSV são registros que incluem metadados sobre cada coluna. Os resultados são gerados em blocos de 1 MB, em que cada bloco pode armazenar qualquer número de linhas no formato CSV. Cada solicitação gera até 15 MB de resultados. Se os resultados tiverem mais de 15 MB, um token de próxima página será exibido para continuar a recuperar os resultados. Por exemplo, a resposta de `GetStatementResultV2` é semelhante a esta:

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        }
    ],
    "NextToken": "<token>",
    "Records": [
        [
            {
                "CSVRecords":"1,2,3\r\n4,5,6\r\n7,8,9\rn, .... 1MB" // First 1MB Chunk
            },
            {
                "CSVRecords":"1025,1026,1027\r\n1028,1029,1030\r\n....2MB" // Second 1MB chunk
            }
            ...
        ]
    ],
    "ResultFormat" : "CSV",
    "TotalNumRows": <number>
}
```

# Autorizar acesso à API de dados do Amazon Redshift
<a name="data-api-access"></a>

Para acessar a API de dados, um usuário deve ser autorizado. Você pode autorizar um usuário a acessar a API de dados adicionando uma política gerenciada, que é uma política do AWS Identity and Access Management (IAM) predefinida para esse usuário. Como prática recomendada, anexe políticas de permissões a um perfil do IAM e, depois, atribua-as a usuários e grupos, conforme necessário. Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Para ver as permissões permitidas e negadas pelas políticas gerenciadas, consulte o console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

# Configurar permissões do IAM
<a name="data-api-iam"></a>

O Amazon Redshift fornece a política gerenciada `AmazonRedshiftDataFullAccess`. Esta política fornece acesso total às operações da API de dados do Amazon Redshift. Esta política também permite acesso com escopo específico ao Amazon Redshift, ao AWS Secrets Manager e às operações de API do IAM necessárias para autenticar e acessar um cluster do Amazon Redshift ou um grupo de trabalho do Redshift sem servidor. 

Você também pode criar sua própria política do IAM que permite acesso a recursos específicos. Para criar sua política, use a política `AmazonRedshiftDataFullAccess` como seu modelo inicial. Depois de criar sua política, adicione-a a cada usuário que requer acesso à API de dados.

Considere os seguintes requisitos da política do IAM associada ao usuário:
+ Se você usar o AWS Secrets Manager para autenticar, confirme se a política permite o uso da ação `secretsmanager:GetSecretValue` para recuperar o segredo marcado com a chave `RedshiftDataFullAccess`.
+ Se você usar credenciais temporárias a fim de autenticar em um cluster, confirme se a política permitirá o uso da ação `redshift:GetClusterCredentials` para o nome do usuário do banco de dados `redshift_data_api_user` a qualquer banco de dados no cluster. Esse nome de usuário já deve ter sido criado no banco de dados.
+ Se você usar credenciais temporárias para autenticar em um grupo de trabalho com a tecnologia sem servidor, confirme se a política permite o uso da ação `redshift-serverless:GetCredentials` para recuperar o grupo de trabalho marcado com a chave `RedshiftDataFullAccess`. O usuário do banco de dados é mapeado 1:1 para a identidade de origem do AWS Identity and Access Management (IAM). Por exemplo, o usuário usuário\$1amostra é mapeado para o usuário do banco de dados `IAM:sample_user` e o perfil do IAM perfil\$1amostra é mapeado para `IAMR:sample_role`. Para obter mais informações sobre as identidades do IAM, consulte [Identidades do IAM (usuários, grupos de usuários e perfis)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no Guia do usuário do IAM.
+ A ação `redshift-data:GetStatementResult` do IAM permite acesso às operações de API `GetStatementResult` e `GetStatementResultV2`.

Os links a seguir fornecem informações adicionais sobre o AWS Identity and Access Management no *Manual do usuário do IAM*.
+ Para obter informações sobre como criar funções de IAM, consulte [Criar funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 
+ Para obter informações sobre como criar uma política do IAM, consulte [Criar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).
+ Para obter informações sobre como adicionar uma política do IAM a um usuário, consulte [Adicionando e removendo permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

## Executar uma consulta em um cluster pertencente a outra conta
<a name="data-api-run-query-on-others-cluster"></a>

Para executar uma consulta em um cluster que pertence a outra conta, a conta proprietária deve fornecer uma função do IAM que a API de dados pode assumir na conta de chamada. Por exemplo, suponha que a Conta B possui um cluster que a Conta A precisa acessar. A conta B pode anexar a política `AmazonRedshiftDataFullAccess` gerenciada pela AWS ao perfil do IAM da conta B. Em seguida, a Conta B confia na Conta A utilizando uma política fidedigna como a seguinte: :``

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/someRoleA"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Finalmente, a função do IAM da conta A precisa ser capaz de assumir a função do IAM da conta B.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/someRoleB"
    }
}
```

------

## Especificar um perfil do IAM que restrinja recursos aos grupos de trabalho do Redshift sem servidor e aos clusters do Amazon Redshift em uma Conta da AWS
<a name="data-api-restrict-to-account"></a>

É possível especificar ARNs de recursos em sua política baseada em identidade para controlar o acesso aos grupos de trabalho do Redshift sem servidor e clusters do Amazon Redshift em uma Conta da AWS. Este exemplo mostra como você pode criar uma política que permita acesso à API de dados somente ao grupo de trabalho e aos clusters na Conta da AWS especificada.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "redshift-data:*",
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:workgroup/*",
                "arn:aws:redshift:us-east-1:111122223333:cluster:*"
            ]
        }
    ]
}
```

------

## Configurar uma política do IAM que permita que somente o proprietário da instrução tenha acesso às informações da instrução SQL
<a name="data-api-restrict-to-statement-owner"></a>

Por padrão, a API de dados do Amazon Redshift trata o perfil do IAM usado ao chamar `ExecuteStatement` e `BatchExecuteStatement` como proprietário da instrução SQL. Qualquer pessoa autorizada a assumir o perfil pode acessar informações da instrução SQL, bem como os respectivos resultados. Para restringir o acesso às informações da instrução SQL a uma sessão do perfil do IAM com um proprietário específico, adicione uma condição `redshift-data:statement-owner-iam-userid: "${aws:userid}"`. A política do IAM a seguir restringe o acesso.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:statement-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

É possível usar a condição `statement-owner-iam-userid` com `CancelStatement`, `DescribeStatement`, `GetStatementResult` e `ListStatements`. Para obter mais informações, consulte [Actions defined by Amazon Redshift Data API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

## Configurar uma política do IAM que permita que somente o proprietário da sessão tenha acesso aos resultados SQL
<a name="data-api-restrict-session-owner"></a>

Por padrão, a API de dados do Amazon Redshift trata o perfil do IAM usado ao chamar `ExecuteStatement` e `BatchExecuteStatement` como o proprietário da instrução SQL que executa a instrução SQL. Qualquer pessoa autorizada a assumir o perfil pode enviar consultas à sessão do banco de dados. Para restringir o acesso a uma sessão do perfil do IAM com um proprietário específico, adicione a condição ` redshift-data:session-owner-iam-userid: "${aws:userid}"`. A política do IAM a seguir restringe o acesso.

A política do IAM a seguir permite que somente o proprietário da sessão obtenha os resultados da instrução. A condição `session-owner-iam-userid` é usada para permitir o acesso a recursos somente ao `userid` especificado.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ 
                "redshift-data:ExecuteStatement",
                "redshift-data:BatchExecuteStatement"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:session-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

É possível usar a condição `session-owner-iam-userid` com `ExecuteStatement` e `BatchExecuteStatement`. Para obter mais informações, consulte [Actions defined by Amazon Redshift Data API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

# Armazenar credenciais de banco de dados no AWS Secrets Manager
<a name="data-api-secrets"></a>

Ao chamar a API de dados, você pode passar credenciais para o cluster ou um grupo de trabalho com a tecnologia sem servidor usando um segredo no AWS Secrets Manager. Para passar credenciais dessa maneira, especifique o nome do segredo ou o nome de recurso da Amazon (ARN) do segredo. 

Para armazenar credenciais com o Secrets Manager, você precisa da permissão de política gerenciada `SecretManagerReadWrite`. Para obter mais informações sobre as permissões mínimas, consulte [Criar e gerenciar segredos com o AWSSecrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) no *Manual do usuário do AWS Secrets Manager*. 

**Para armazenar suas credenciais em um segredo para um cluster do Amazon Redshift**

1. Use o console do AWS Secrets Manager a fim de criar um segredo que contenha credenciais para o cluster:
   + Quando você escolher **Armazenar um novo segredo**, escolha **Credenciais do cluster Redshift**. 
   + Armazene seus valores para **Nome de usuário** (usuário do banco de dados), **Senha** e**Cluster de banco de dados** (identificador de cluster) em seu segredo. 
   + Etiquete o segredo com a chave `RedshiftDataFullAccess`. A política `AmazonRedshiftDataFullAccess` gerenciada pela AWS permite apenas a ação `secretsmanager:GetSecretValue` para segredos marcados com a chave `RedshiftDataFullAccess`. 

   Para obter instruções, consulte [Criar um segredo básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) no *Manual do usuário do AWS Secrets Manager*.

1. Use o console do AWS Secrets Manager para visualizar os detalhes do segredo criado ou execute o comando `aws secretsmanager describe-secret` da AWS CLI.

   Anote o nome e o ARN do segredo. Você pode usá-los em chamadas para a API de dados.

**Para armazenar suas credenciais em um segredo para um grupo de trabalho com a tecnologia sem servidor**

1. Use os comandos da AWS CLI do AWS Secrets Manager para armazenar um segredo que contenha as credenciais para o grupo de trabalho com a tecnologia sem servidor:
   + Crie o segredo em um arquivo, por exemplo, um arquivo JSON denominado `mycreds.json`. Forneça os valores para **User name** (Nome de usuário) (usuário do banco de dados) e **Password** (Senha) no arquivo.

     ```
     {
           "username": "myusername",
           "password": "mypassword"
     }
     ```
   + Armazene seus valores no segredo e marque-o com a chave `RedshiftDataFullAccess`.

     ```
     aws secretsmanager create-secret --name MyRedshiftSecret  --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
     ```

     A seguir, é mostrada a saída.

     ```
     {
         "ARN": "arn:aws:secretsmanager:region:accountId:secret:MyRedshiftSecret-mvLHxf",
         "Name": "MyRedshiftSecret",
         "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE"
     }
     ```

   Para obter mais informações, consulte [Criar um segredo básico com a AWS CLI](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html#proc-create-api) no *Guia do usuário do AWS Secrets Manager*.

1. Use o console do AWS Secrets Manager para visualizar os detalhes do segredo criado ou execute o comando `aws secretsmanager describe-secret` da AWS CLI.

   Anote o nome e o ARN do segredo. Você pode usá-los em chamadas para a API de dados.

# Criar um endpoint da Amazon VPC (AWS PrivateLink) para a API de dados
<a name="data-api-vpc-endpoint"></a>

O Amazon Virtual Private Cloud (Amazon VPC) permite que você inicie recursos da AWS, como clusters e aplicações do Amazon Redshift, em uma nuvem privada virtual (VPC). O AWS PrivateLink fornece conectividade privada entre nuvens privadas virtuais (VPCs) e serviços da AWS com segurança na rede Amazon. Usando AWS PrivateLink, você pode criar endpoints da VPC, que você pode usar para se conectar a serviços em diferentes contas e VPCs com base no Amazon VPC. Para obter mais informações sobre AWS PrivateLink, consulte [Serviços de endpoint da VPC (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) no *Manual do usuário do Amazon Virtual Private Cloud*.

Você pode chamar a API de dados com endpoints da Amazon VPC. O uso de um endpoint da Amazon VPC mantém o tráfego entre aplicações em sua Amazon VPC e a API de dados na AWS sem usar endereços IP públicos. Os endpoints do Amazon VPC podem ajudá-lo a atender aos requisitos normativos e de compatibilidade relacionados à limitação da conectividade pública com a Internet. Por exemplo, ao usar um endpoint da Amazon VPC, você pode manter o tráfego entre uma aplicação em execução em uma instância do Amazon EC2 e a API de dados nas VPCs que API contêm.

Depois de criar o Amazon VPC endpoint, você pode começar a usá-lo sem fazer alterações no código ou na configuração de sua aplicação.

**Como criar um Amazon VPC endpoint para a API de dados**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Escolha **Endpoints** e **Create Endpoint (Criar endpoint)**.

1. Na página **Criar endpoint**, para a **Categoria de serviço**, escolha **Serviços da AWS**. Para o **Nome do serviço**, escolha **redshift-data** (`com.amazonaws.region.redshift-data`).

1. Em **VPC**, escolha a VPC na qual criar o endpoint.

   Escolha a VPC que contém a aplicação que faz chamadas da API de dados.

1. Em **Sub-redes**, escolha a sub-rede de cada zona de disponibilidade (AZ) usada pelo serviço da AWS que está executando a aplicação.

   Para criar um endpoint do Amazon VPC, especifique o intervalo de endereços IP privados no qual o endpoint está acessível. Para fazer isso, escolha a sub-rede de cada zona de disponibilidade. Isso restringe o VPC endpoint ao intervalo de endereços IP privados específico para cada zona de disponibilidade e também cria um Amazon VPC endpoint em cada zona de disponibilidade.

1. Em **Enable DNS Name (Habilitar nome DNS)**, selecione **Enable for this endpoint (Habilitar para este endpoint)**.

   O DNS privado resolve o nome de host DNS da API de dados padrão (`https://redshift-data.region.amazonaws.com`) para os endereços IP privados associados ao nome de host DNS específico a seu Amazon VPC endpoint. Como resultado, é possível acessar o endpoint da VPC endpoint da API de dados usando a AWS CLI ou os SDKs da AWS sem fazer alterações no código ou na configuração para atualizar o URL do endpoint da API de dados.

1. Em **Security group (Grupo de segurança)**, escolha um grupo de segurança para associar ao Amazon VPC endpoint.

   Escolha o grupo de segurança que permite o acesso ao serviço da AWS que está executando sua aplicação. Por exemplo, se uma instância do Amazon EC2 estiver executando sua aplicação, escolha o grupo de segurança que permite o acesso à instância do Amazon EC2. O grupo de segurança permite que você controle o tráfego para o Amazon VPC endpoint nos recursos em sua VPC.

1. Escolha **Create endpoint (Criar endpoint)**.

Depois que o endpoint for criado, escolha o link no Console de gerenciamento da AWS para visualizar os detalhes do endpoint.

A guia **Details (Detalhes)** do endpoint mostra os nomes de host de DNS que foram gerados durante a criação do Amazon VPC endpoint.

Você pode usar o endpoint padrão (`redshift-data.region.amazonaws.com`) ou um dos endpoints específicos da VPC para chamar a API de dados dentro da Amazon VPC. O endpoint padrão da API de dados roteia automaticamente para o Amazon VPC endpoint. Esse roteamento ocorre porque o nome de host DNS privado foi habilitado quando o Amazon VPC endpoint foi criado.

Quando você usa um Amazon VPC endpoint em uma chamada da API de dados, todo tráfego entre sua aplicação e a API de dados permanece nas Amazon VPCs que o contêm. Você pode usar um Amazon VPC endpoint para qualquer tipo de chamada da API de dados. Para obter informações sobre como chamar a API de dados, consulte [Considerações ao chamar a API de dados do Amazon Redshift](data-api.md#data-api-calling-considerations).

# Unir grupos de banco de dados ao se conectar a um cluster
<a name="data-api-dbgroups"></a>

Grupos de banco de dados são coleções de usuários do banco de dados. Os privilégios do banco de dados podem ser concedidos a grupos. Um administrador pode configurar um perfil do IAM de forma que esses grupos de banco de dados sejam levados em consideração quando o SQL for executado com a API de dados. Para obter informações sobre grupos de banco de dados, consulte [Grupos](https://docs.aws.amazon.com/redshift/latest/dg/r_Groups.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

É possível configurar o perfil do IAM de um chamador da API de dados para que o usuário do banco de dados especificado na chamada se junte a grupos de banco de dados quando a API de dados se conectar a um cluster. Esse recurso só é compatível com a conexão com clusters provisionados. Não é compatível com a conexão com grupos de trabalho do Redshift sem servidor. O perfil do IAM do chamador da API de dados também deve permitir a ação `redshift:JoinGroup`.

Configure isso adicionando tags aos perfis do IAM. O administrador do perfil do IAM do chamador adiciona tags com a chave `RedshiftDbGroups` e um valor de chave de uma lista de grupos de banco de dados. O valor é uma lista de nomes separados por dois-pontos (:) de grupos de banco de dados com uma extensão total de até 256 caracteres. Os grupos do banco de dados devem ser definidos previamente no banco de dados conectado. Se algum grupo especificado não for encontrado no banco de dados, ele será ignorado. Por exemplo, para grupos de banco de dados `accounting` e `retail`, o valor da chave é `accounting:retail`. O par chave-valor da tag `{"Key":"RedshiftDbGroups","Value":"accounting:retail"}` é usado pela API de dados para determinar quais grupos de banco de dados estão associados ao usuário do banco de dados fornecido na chamada para a API de dados.

**Como unir grupos de banco de dados**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console, escolha **Roles (Funções)** e, em seguida, escolha o nome da função que deseja editar.

1. Escolha a guia **Tags** e **Gerenciar tags**.

1. Escolha **Adicionar tag** e adicione a chave **RedshiftDbGroups** e um valor que é uma lista de *database-groups-colon-separated*.

1. Escolha **Salvar alterações**.

   Agora, quando uma entidade principal do IAM (com esse perfil do IAM anexado) chama a API de dados, o usuário do banco de dados especificado se junta aos grupos de banco de dados especificados no perfil do IAM.

Para obter mais informações sobre como anexar uma etiqueta a uma entidade principal, inclusive funções do IAM e usuários do IAM, consulte [Recursos de etiquetas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*. 

# Usar a API de dados com propagação de identidade confiável
<a name="data-api-trusted-identity-propagation"></a>

Como administrador de contas do Amazon Redshift, você pode integrar o cluster ou o grupo de trabalho do Amazon Redshift ao Centro de Identidade do AWS IAM, o que ajuda a gerenciar o acesso do quadro de funcionários ao Amazon Redshift com autenticação única. Para obter mais informações, consulte [Configuração da integração do Centro de Identidade do AWS IAM com o Amazon Redshift](redshift-iam-access-control-idp-connect-console.md). A API de dados do Amazon Redshift comporta a propagação de identidades de usuário do Centro de Identidade do IAM para um cluster ou um grupo de trabalho do Amazon Redshift e para outros serviços, como o AWS Lake Formation, ao longo da cadeia. É possível configurar e consultar usando a API de dados seguindo as etapas em [Access AWS services programmatically using trusted identity propagation](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/).

Ao chamar a API de dados usando uma identidade de usuário do Centro de Identidade do IAM por meio de uma sessão de perfil do IAM com identidade aprimorada, você só pode acessar a declaração e o respectivo resultado usando o mesmo usuário do Centro de Identidade do IAM. Por exemplo, o comando AWS CLI a seguir chama a operação `execute-statement` para executar um comando SQL com propagação de identidade confiável.

```
aws redshift-data execute-statement 
--sql "select current_user;" 
--cluster-id mycluster
--database dev
```

O comando AWS CLI a seguir chama a operação `batch-execute-statement` para executar dois comandos SQL.

```
aws redshift-data batch-execute-statement 
--sqls  "select current_user;"  "select current_date;"
--cluster-id mycluster
--database dev
```

Para acessar declarações com `cancel-statement`, `describe-statement`, `get-statement-result` e `get-statement-result-v2` enviadas por sessões de perfil do IAM com identidade aprimorada, o usuário do Centro de Identidade do IAM e o perfil do IAM devem corresponder às credenciais usadas para executar `execute-statment` ou `batch-execute-statement`. Por exemplo, o comando AWS CLI a seguir exibe os resultados de uma declaração SQL.

```
aws redshift-data get-statement-result 
--id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

Para listar declarações, um parâmetro `cluster-identifier` ou `workgroup-name` deve ser fornecido para garantir que o usuário do Centro de Identidade do IAM tenha acesso somente às aplicações do Centro de Identidade do IAM do Amazon Redshift às quais ele está atribuído. Por exemplo, o comando AWS CLI a seguir lista as declarações para um cluster específico.

```
aws redshift-data list-statements
--cluster-identifier mycluster
```

Também é possível invocar as operações da API de dados que acessam objetos de banco de dados em um cluster ou um grupo de trabalho usando propagação de identidade confiável. Isso inclui as operações `list-databases`, `list-schemas`, `list-tables` e `describe-table`.

As chamadas de API feitas pelo usuário do Centro de Identidade do IAM podem ser rastreadas no AWS CloudTrail. Uma seção `onBehalfOf` do evento do CloudTrail mostra o ID de usuário do Centro de Identidade do IAM e o ARN do armazenamento de identidades. O exemplo a seguir mostra um trecho de um evento do CloudTrail que exibe a seção `onBehalfOf` com o ID de usuário `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` do Centro de Identidade do IAM e o ARN `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2` do armazenamento de identidades.

```
{
            "eventVersion":"1.10",
            "userIdentity":{
            "type":"AssumedRole",
            ...
            },
            "onBehalfOf":{
            "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2"
            }
            },
            "eventTime":"2025-01-13T04:46:27Z",
            "eventSource":"redshift-data.amazonaws.com",
            "eventName":"ExecuteStatement",
            "awsRegion":"us-east-1"
            }
```

É possível executar o comando SQL a seguir para conferir a consulta enviada pelo usuário do Centro de Identidade do IAM. Neste exemplo, o e-mail registrado no Centro de Identidade é `username@example.com`.

```
SELECT
    h.query_id,
    h.database_name,
    h.status,
    h.query_text,
    u.usename,
    h.start_time,
    h.end_time
FROM
    sys_query_history h
LEFT JOIN
    pg_user u
ON
    h.user_id = u.usesysid
where u.usename='awsidc:username@example.com'    
ORDER BY
    h.start_time DESC;
```

# Chamar a API de dados
<a name="data-api-calling"></a>

Você pode chamar a API de dados ou a AWS CLI para executar instruções SQL no cluster ou no grupo de trabalho com a tecnologia sem servidor. As principais operações para executar instruções SQL são [https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html) e [https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html) na *Referência da API de dados do Amazon Redshift*. A API de dados oferece suporte a linguagens de programação aceitas pelos AWS SDKs. Para obter mais informações, consulte [Ferramentas para construir na AWS](https://aws.amazon.com/tools/).

Para ver exemplos de código de chamada da API Data, consulte [Conceitos básicos da API Data do Redshift](https://github.com/aws-samples/getting-started-with-amazon-redshift-data-api#getting-started-with-redshift-data-api) no *GitHub*. Esse repositório tem exemplos de uso do AWS Lambda para acessar dados do Amazon Redshift pelo Amazon EC2, do AWS Glue Data Catalog e do Amazon SageMaker Runtime. Entre os exemplos de linguagens de programação estão: Python, Go, Java e Javascript.

Você pode chamar a API de dados usando a AWS CLI.

Os exemplos a seguir usam a AWS CLI para chamar a API de dados. Para executar os exemplos, edite os valores de parâmetro para corresponder ao seu ambiente. Em muitos dos exemplos, um `cluster-identifier` é fornecido para ser executado em um cluster. Ao executar em um grupo de trabalho com a tecnologia sem servidor, você fornece um `workgroup-name`. Estes exemplos demonstram algumas das operações da API de dados. Para obter mais informações, consulte a *Referência de comandos da AWS CLI*. 

Os comandos nos exemplos a seguir foram divididos e formatados para facilitar a leitura. Nem todos os parâmetros e respostas são mostrados em todos os exemplos. Para obter a definição de API da sintaxe completa da solicitação, parâmetros da solicitação, sintaxe da resposta e elementos da resposta, consulte a [Referência de API de dados do Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

# Passar instruções SQL para um data warehouse do Amazon Redshift
<a name="pass-sql-statements"></a>

Os exemplos nesta página mostram maneiras diferentes de passar uma instrução SQL para o data warehouse.

## Executar uma instrução SQL
<a name="data-api-calling-cli-execute-statement"></a>

Para executar uma instrução SQL, use o comando `aws redshift-data execute-statement` da AWS CLI.

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação AWS Secrets Manager.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sql "select * from stl_query limit 1"
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um grupo de trabalho com a tecnologia sem servidor e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data execute-statement 
    --database dev 
    --workgroup-name myworkgroup 
    --sql "select 1;"
```

Este é um exemplo da resposta.

```
{
 "CreatedAt": "2022-02-11T06:25:28.748000+00:00",
 "Database": "dev",
 "DbUser": "IAMR:RoleName",
 "Id": "89dd91f5-2d43-43d3-8461-f33aa093c41e",
 "WorkgroupName": "myworkgroup"
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação AWS Secrets Manager e um token de idempotência.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

## Executar uma instrução SQL com parâmetros
<a name="data-api-calling-cli-execute-statement-parameters"></a>

Para executar uma instrução SQL, use o comando `aws redshift-data execute-statement` da AWS CLI.

 O comando a seguir da AWS CLI executa uma instrução SQL em um cluster e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação AWS Secrets Manager. O texto SQL tem o parâmetro nomeado `distance`. Nesse caso, a distância usada no predicado é `5`. Em uma instrução SELECT, os parâmetros nomeados para nomes de colunas só podem ser usados no predicado. Valores para parâmetros nomeados para a instrução SQL são especificados na opção `parameters`.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "SELECT ratecode FROM demo_table WHERE trip_distance > :distance"  
    --parameters "[{\"name\": \"distance\", \"value\": \"5\"}]"
    --database dev
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

O exemplo a seguir usa a tabela `EVENT` do banco de dados de amostra. Para obter mais informações, consulte [Tabela EVENT](https://docs.aws.amazon.com/redshift/latest/dg/r_eventtable.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Se você ainda não tem a tabela `EVENT` em seu banco de dados, você pode criar uma usando a API de dados da seguinte maneira:

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser
--sql "create table event( eventid integer not null distkey, 
                           venueid smallint not null, 
                           catid smallint not null, 
                           dateid smallint not null sortkey, 
                           eventname varchar(200), 
                           starttime timestamp)"
```

O comando a seguir insere uma linha na tabela `EVENT`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:eventid, :venueid::smallint, :catid, :dateid, :eventname, :starttime)" 
--parameters "[{\"name\": \"eventid\", \"value\": \"1\"}, {\"name\": \"venueid\", \"value\": \"1\"}, 
               {\"name\": \"catid\", \"value\": \"1\"}, 
               {\"name\": \"dateid\", \"value\": \"1\"}, 
               {\"name\": \"eventname\", \"value\": \"event 1\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}]"
```

O comando a seguir insere uma segunda linha na tabela `EVENT`. Este exemplo demonstra o seguinte: 
+ O parâmetro chamado `id` é usado quatro vezes no texto SQL.
+ Conversão de tipo implícita é aplicada automaticamente ao inserir o parâmetro `starttime`.
+ A coluna `venueid` é o tipo de conversão para o tipo de dados SMALLINT.
+ As strings de caracteres que representam o tipo de dados DATE são implicitamente convertidas no tipo de dados TIMESTAMP.
+ Os comentários podem ser usados dentro do texto SQL.

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:id, :id::smallint, :id, :id, :eventname, :starttime) /*this is comment, and it won't apply parameterization for :id, :eventname or :starttime here*/" 
--parameters "[{\"name\": \"eventname\", \"value\": \"event 2\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}, 
               {\"name\": \"id\", \"value\": \"2\"}]"
```

O seguinte mostra as duas linhas inseridas:

```
 eventid | venueid | catid | dateid | eventname |      starttime
---------+---------+-------+--------+-----------+---------------------
       1 |       1 |     1 |      1 | event 1   | 2022-02-22 00:00:00
       2 |       2 |     2 |      2 | event 2   | 2022-02-22 00:00:00
```

O comando a seguir usa um parâmetro nomeado em uma cláusula WHERE para recuperar a linha em que `eventid` é `1`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "select * from event where eventid=:id"
--parameters "[{\"name\": \"id\", \"value\": \"1\"}]"
```

Execute o seguinte comando para obter os resultados SQL da instrução SQL anterior:

```
aws redshift-data get-statement-result --id 7529ad05-b905-4d71-9ec6-8b333836eb5a        
```

Fornece os seguintes resultados:

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "stringValue": "event 1"
            },
            {
                "stringValue": "2022-02-22 00:00:00.0"
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "eventid",
            "length": 0,
            "name": "eventid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "venueid",
            "length": 0,
            "name": "venueid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "catid",
            "length": 0,
            "name": "catid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "dateid",
            "length": 0,
            "name": "dateid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "eventname",
            "length": 0,
            "name": "eventname",
            "nullable": 1,
            "precision": 200,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "varchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 1,
            "precision": 29,
            "scale": 6,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "timestamp"
        }
    ],
    "TotalNumRows": 1
}
```

## Executar várias instruções SQL
<a name="data-api-calling-cli-batch-execute-statement"></a>

Para executar várias instruções SQL com um comando, use o comando `aws redshift-data batch-execute-statement` da AWS CLI.

O comando a seguir da AWS CLI executa três instruções SQL em um cluster e retorna um identificador para obter os resultados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data batch-execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sqls "set timezone to BST" "select * from mytable" "select * from another_table"
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

# Listar metadados sobre instruções SQL
<a name="data-api-calling-cli-list-statements"></a>

Para listar metadados sobre instruções SQL, use o comando `aws redshift-data list-statements` da AWS CLI. A autorização para executar esse comando é baseada nas permissões do IAM do autor da chamada.

O seguinte comando da AWS CLI lista as instruções SQL que foram executadas.

```
aws redshift-data list-statements 
    --status ALL
```

Este é um exemplo da resposta.

```
{
    "Statements": [
        {
            "CreatedAt": 1598306924.632,
            "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306926.667
        },
        {
            "CreatedAt": 1598311717.437,
            "Id": "e0ebd578-58b3-46cc-8e52-8163fd7e01aa",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FAILED",
            "UpdatedAt": 1598311719.008
        },
        {
            "CreatedAt": 1598313683.65,
            "Id": "c361d4f7-8c53-4343-8c45-6b2b1166330c",
            "QueryString": "select * from stl_query limit 1",
            "Status": "ABORTED",
            "UpdatedAt": 1598313685.495
        },
        {
            "CreatedAt": 1598306653.333,
            "Id": "a512b7bd-98c7-45d5-985b-a715f3cfde7f",
            "QueryString": "select 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306653.992
        }
    ]
}
```

# Descrever metadados sobre uma instrução SQL
<a name="data-api-calling-cli-describe-statement"></a>

Para obter descrições de metadados para uma instrução SQL, use o comando `aws redshift-data describe-statement` da AWS CLI. A autorização para executar esse comando é baseada nas permissões do IAM do autor da chamada. 

O comando da AWS CLI a seguir descreve uma instrução SQL. 

```
aws redshift-data describe-statement 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

Este é um exemplo da resposta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Duration": 1095981511,
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
    "QueryString": "select * from stl_query limit 1",
    "RedshiftPid": 20859,
    "RedshiftQueryId": 48879,
    "ResultRows": 1,
    "ResultSize": 4489,
    "Status": "FINISHED",
    "UpdatedAt": 1598306926.667
}
```

Veja a seguir um exemplo de uma resposta `describe-statement` após a execução de um `batch-execute-statement` com várias instruções SQL.

```
{
    "ClusterIdentifier": "mayo",
    "CreatedAt": 1623979777.126,
    "Duration": 6591877,
    "HasResultSet": true,
    "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652",
    "RedshiftPid": 31459,
    "RedshiftQueryId": 0,
    "ResultRows": 2,
    "ResultSize": 22,
    "Status": "FINISHED",
    "SubStatements": [
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3396637,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:1",
            "QueryString": "select 1;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979777.903
        },
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3195240,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2",
            "QueryString": "select 2;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979778.076
        }
    ],
    "UpdatedAt": 1623979778.183
}
```

# Buscar os resultados de uma instrução SQL
<a name="data-api-calling-cli-get-statement-result"></a>

Para obter o resultado de uma instrução SQL executada, use o comando `redshift-data get-statement-result` ou `redshift-data get-statement-result-v2` da AWS CLI. Os resultados de `get-statement-result` estão no formato JSON. Os resultados de `get-statement-result-v2` estão no formato CSV. Você pode fornecer um `Id` que você recebe em resposta a `execute-statement` ou `batch-execute-statement`. O valor `Id` para uma instrução SQL executada pelo `batch-execute-statement` pode ser recuperado no resultado de `describe-statement` e recebe o sufixo de dois pontos e número de sequência, como `b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2`. Se você executar várias instruções SQL com `batch-execute-statement`, cada instrução SQL tem um `Id` como mostrado na `describe-statement`. A autorização para executar esse comando é baseada nas permissões do IAM do autor da chamada. 

A instrução a seguir gera o resultado de uma instrução SQL executada por `execute-statement` que permite que o `ResultFormat` tenha `JSON` como padrão. Para obter os resultados, chame a operação `get-statement-result`.

```
aws redshift-data get-statement-result 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

A instrução a seguir retorna o resultado da segunda instrução SQL executada pelo `batch-execute-statement`.

```
aws redshift-data get-statement-result 
    --id b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2
```

Veja a seguir um exemplo de resposta a uma chamada para `get-statement-result`, em que o resultado SQL é gerado no formato JSON na chave `Records` da resposta.

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "userid",
            "length": 0,
            "name": "userid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "query",
            "length": 0,
            "name": "query",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "label",
            "length": 0,
            "name": "label",
            "nullable": 0,
            "precision": 320,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "xid",
            "length": 0,
            "name": "xid",
            "nullable": 0,
            "precision": 19,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int8"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "pid",
            "length": 0,
            "name": "pid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "database",
            "length": 0,
            "name": "database",
            "nullable": 0,
            "precision": 32,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "querytxt",
            "length": 0,
            "name": "querytxt",
            "nullable": 0,
            "precision": 4000,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "endtime",
            "length": 0,
            "name": "endtime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "type": 93,
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "aborted",
            "length": 0,
            "name": "aborted",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "insert_pristine",
            "length": 0,
            "name": "insert_pristine",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "concurrency_scaling_status",
            "length": 0,
            "name": "concurrency_scaling_status",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        }
    ],
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 3
            },
            {
                "stringValue": "health"
            },
            {
                "longValue": 1023
            },
            {
                "longValue": 15279
            },
            {
                "stringValue": "dev"
            },
            {
                "stringValue": "select system_status from stv_gui_status;"
            },
            {
                "stringValue": "2020-08-21 17:33:51.88712"
            },
            {
                "stringValue": "2020-08-21 17:33:52.974306"
            },
            {
                "longValue": 0
            },
            {
                "longValue": 0
            },
            {
                "longValue": 6
            }
        ]
    ],
    "TotalNumRows": 1
}
```

O exemplo a seguir mostra uma instrução SQL executada por `execute-statement` para gerar resultados como JSON. A tabela `testingtable` tem três colunas inteiras (col1, col2, col3), e há três linhas com valores (1, 2, 3), (4, 5, 6) e (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format JSON
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

Veja a seguir um exemplo de resposta a uma chamada para `get-statement-result`, em que o resultado SQL é gerado no formato JSON na chave `Records` da resposta.

```
aws redshift-data get-statement-result
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 2
            },
            {
                "longValue": 3
            }
        ],
        [
            {
                "longValue": 4
            },
            {
                "longValue": 5
            },
            {
                "longValue": 6
            }
        ],
        [
            {
                "longValue": 7
            },
            {
                "longValue": 8
            },
            {
                "longValue": 9
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3
}
```

O exemplo a seguir mostra uma instrução SQL executada por `execute-statement` para gerar resultados como CSV. A tabela `testingtable` tem três colunas inteiras (col1, col2, col3), e há três linhas com valores (1, 2, 3), (4, 5, 6) e (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format CSV
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

Veja a seguir um exemplo de resposta a uma chamada para `get-statement-result-v2`, em que o resultado SQL é gerado no formato CSV na chave `Records` da resposta. As linhas são separadas por retorno de carro e nova linha (\$1r\$1n). A primeira linha gerada em `Records` são os títulos das colunas. Os resultados gerados no formato CSV são retornados em 1 MB, em que cada bloco pode armazenar qualquer número de linhas de até 1 MB. 

```
aws redshift-data get-statement-result-v2
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        {
            "CSVRecords": "col1,col2,col3\r\n1,2,3\r\n4,5,6\r\n7,8,9\r\n"
        }
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3,
    "ResultFormat": "csv"
}
```

# Descrever uma tabela
<a name="data-api-calling-cli-describe-table"></a>

Para obter metadados que descrevem uma tabela, use o comando `aws redshift-data describe-table` da AWS CLI.

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster e retorna metadados que descrevem uma tabela. Este exemplo usa o método de autenticação AWS Secrets Manager.

```
aws redshift-data describe-table  
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn
```

Este é um exemplo da resposta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }     
    ]
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster que descreve uma tabela. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data describe-table 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features
```

Este é um exemplo da resposta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_supported",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_verified_by",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "comments",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }
    ]
}
```

# Relacionar bancos de dados em um cluster
<a name="data-api-calling-cli-list-databases"></a>

Para listar os bancos de dados em um cluster, use o comando `aws redshift-data list-databases` da AWS CLI.

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar bancos de dados. Este exemplo usa o método de autenticação AWS Secrets Manager.

```
aws redshift-data list-databases  

    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

Este é um exemplo da resposta.

```
{
    "Databases": [
        "dev"
    ]
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar bancos de dados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data list-databases  
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev
```

Este é um exemplo da resposta.

```
{
    "Databases": [
        "dev"
    ]
}
```

# Relacionar esquemas em um banco de dados
<a name="data-api-calling-cli-list-schemas"></a>

Para listar os esquemas em um banco de dados, use o comando `aws redshift-data list-schemas` da AWS CLI.

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar esquemas em um banco de dados. Este exemplo usa o método de autenticação AWS Secrets Manager.

```
aws redshift-data list-schemas 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

Este é um exemplo da resposta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar esquemas em um banco de dados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data list-schemas 
    --db-user mysuser 
    --cluster-identifier mycluster-test 
    --database dev
```

Este é um exemplo da resposta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

# Relacionar tabelas em um banco de dados
<a name="data-api-calling-cli-list-tables"></a>

Para listar as tabelas em um banco de dados, use o comando `aws redshift-data list-tables` da AWS CLI.

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar tabelas em um banco de dados. Este exemplo usa o método de autenticação AWS Secrets Manager.

```
aws redshift-data list-tables 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema
```

Este é um exemplo da resposta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
}
```

O comando a seguir da AWS CLI executa uma instrução SQL em um cluster para listar tabelas em um banco de dados. Este exemplo usa o método de autenticação de credenciais temporárias.

```
aws redshift-data list-tables  

     --db-user myuser 
     --cluster-identifier mycluster-test 
     --database dev 
     --schema information_schema
```

Este é um exemplo da resposta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
    ]
}
```

# Solução de problemas da API de dados do Amazon Redshift
<a name="data-api-troubleshooting"></a>

Use as seções a seguir, intituladas com mensagens de erro comuns, para ajudar na solução de problemas com a Data API. 

**Topics**
+ [O pacote para consulta é muito grande](#data-api-troubleshooting-packet-too-large)
+ [A resposta do banco de dados excedeu o limite de tamanho](#data-api-troubleshooting-response-size-too-large)

## O pacote para consulta é muito grande
<a name="data-api-troubleshooting-packet-too-large"></a>

Se você vir um erro indicando que o pacote de uma consulta é muito grande, geralmente o conjunto de resultados retornado para uma linha é muito grande. O limite de tamanho da API de dados é de 64 KB por linha no conjunto de resultados obtido pelo banco de dados.

Para resolver esse problema, verifique se cada linha em um conjunto de resultados tem até 64 KB.

## A resposta do banco de dados excedeu o limite de tamanho
<a name="data-api-troubleshooting-response-size-too-large"></a>

Se você vir um erro indicando que a resposta do banco de dados excedeu o limite de tamanho, geralmente o tamanho do conjunto de resultados retornado pelo banco de dados era muito grande. O limite da API de dados é de 500 MB no conjunto de resultados retornado pelo banco de dados.

Para resolver esse problema, certifique-se de que as chamadas para a API de dados retornem 500 MB de dados ou menos. Se você precisar retornar mais de 500 MB, poderá executar várias chamadas de instrução com a cláusula `LIMIT` em sua consulta.

# Programar operações da API de dados do Amazon Redshift com o Amazon EventBridge
<a name="data-api-calling-event-bridge"></a>

Você pode criar regras que estabeleçam correspondência com eventos selecionados e os encaminhem aos destinos para ação. Você também pode usar as regras para executar uma ação em uma programação predeterminada. Para saber mais, consulte o [Guia do Usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 

Para programar operações de API de dados com o EventBridge, a função do IAM associada deve confiar na entidade principal para o CloudWatch Events (events.amazonaws.com). Essa função deve ter o equivalente à política gerenciada `AmazonEventBridgeFullAccess` anexada. Também deve ter política de permissões `AmazonRedshiftDataFullAccess` que são gerenciadas pela API de dados. Você pode criar uma função do IAM com essas permissões no console do IAM. Ao criar uma função no console do IAM, selecione a entidade confiável do para CloudWatch Events do serviço da AWS. Especifique o perfil do IAM no valor `RoleArn` JSON no destino do EventBridge. Para obter mais informações sobre como criar uma função do IAM, consulte [Criando uma função para um serviço da AWS (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) no *Guia do usuário do IAM*.

O `name` da regra que você cria no Amazon EventBridge deve corresponder ao `StatementName` nos `RedshiftDataParameters`.

Os exemplos a seguir mostram variações da criação de regras do EventBridge com uma ou várias instruções SQL e com um cluster do Amazon Redshift ou um grupo de trabalho do Amazon Redshift sem servidor como data warehouse.

## Chamadas com cluster e uma única instrução SQL
<a name="data-api-calling-event-bridge-sql-cluster"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar uma instrução SQL em um cluster do Amazon Redshift.

```
aws events put-rule 
--name test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

```
aws events put-targets 
--cli-input-json file://data.json
```

O arquivo data.json de entrada é o seguinte. A chave JSON `Sql` indica que há uma única instrução SQL. O valor JSON `Arn` contém um identificador de cluster. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data",
    "EventBusName": "default",
    "Targets": [
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator",
            "RedshiftDataParameters": {
                "Database": "dev",
                "DbUser": "root",
                "Sql": "select 1;",
                "StatementName": "test-redshift-cluster-data",
                "WithEvent": true
            }
        }
    ]
}
```

## Chamadas com grupo de trabalho e uma única instrução SQL
<a name="data-api-calling-event-bridge-sql-workgroup"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar uma instrução SQL em um grupo de trabalho do Amazon Redshift sem servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

```
aws events put-targets 
--cli-input-json file://data.json
```

O arquivo data.json de entrada é o seguinte. A chave JSON `Sql` indica que há uma única instrução SQL. O valor JSON `Arn` contém um nome de grupo de trabalho. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sql": "select 1;",
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Chamadas com cluster e várias instruções SQL
<a name="data-api-calling-event-bridge-sqls-cluster"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar várias instruções SQL em um cluster do Amazon Redshift.

```
aws events put-rule 
--name  test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

```
aws events put-targets 
--cli-input-json file://data.json
```

O arquivo data.json de entrada é o seguinte. A chave JSON `Sqls` indica que há várias instruções SQL. O valor JSON `Arn` contém um identificador de cluster. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-cluster-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Chamadas com grupo de trabalho e várias instruções SQL
<a name="data-api-calling-event-bridge-sqls-workgroup"></a>

O exemplo a seguir usa a AWS CLI para criar uma regra do EventBridge que é usada para executar várias instruções SQL em um grupo de trabalho do Amazon Redshift sem servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

Em seguida, um destino EventBridge é criado para ser executado na programação especificada na regra. 

```
aws events put-targets 
--cli-input-json file://data.json
```

O arquivo data.json de entrada é o seguinte. A chave JSON `Sqls` indica que há várias instruções SQL. O valor JSON `Arn` contém um nome de grupo de trabalho. O valor `RoleArn` JSON contém o perfil do IAM usado para executar o SQL conforme descrito anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

# Monitorar a API de dados
<a name="data-api-monitoring"></a>

O monitoramento é uma parte importante da manutenção da confiabilidade, disponibilidade e performance da API de dados e de suas outras soluções da AWS. A AWS fornece as seguintes ferramentas de monitoramento para observar a API de dados, relatar quando algo está errado e realizar ações automáticas quando apropriado: 
+ O Amazon EventBridge pode ser usado para automatizar seus serviços da AWS e responder automaticamente a eventos do sistema, como problemas de disponibilidade de aplicações ou alterações de recursos. Os eventos dos serviços da AWS são entregues ao EventBridge quase em tempo real. Você pode escrever regras simples para determinar quais eventos são do seu interesse, e as ações automatizadas a serem tomadas quando um evento corresponder à regra. Para saber mais, consulte o [Guia do Usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 
+ O AWS CloudTrail captura chamadas de API e eventos relacionados feitos por ou em nome de sua conta da AWS e entrega os arquivos de log a um bucket do Amazon S3 que você especificar. Você pode identificar quais usuários e contas chamaram AWS, o endereço IP de origem de onde as chamadas foram feitas e quando elas ocorreram. Para saber mais sobre como o Amazon Redshift é integrado ao AWS CloudTrail, consulte [“Logging with CloudTrail”](https://docs.aws.amazon.com/redshift/latest/mgmt/logging-with-cloudtrail.html) (Registro em log com o CloudTrail). Para obter mais informações sobre o CloudTrail, consulte o [ Guia do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). 

**Topics**
+ [Monitorar eventos para a API de dados do Amazon Redshift no Amazon EventBridge](data-api-monitoring-events.md)

# Monitorar eventos para a API de dados do Amazon Redshift no Amazon EventBridge
<a name="data-api-monitoring-events"></a>

Você pode monitorar eventos de API de dados no EventBridge, que fornece um fluxo de dados em tempo real de suas próprias aplicações, aplicações de software como serviço (SaaS) e serviços da AWS. O EventBridge encaminha esses dados para destinos como AWS Lambda e o Amazon SNS. Esses eventos são iguais aos que aparecem no CloudWatch Events, que oferece um fluxo quase em tempo real de eventos do sistema que descrevem as mudanças nos recursos da AWS. Os eventos são enviados para a conta que contém o banco de dados do Amazon Redshift. Por exemplo, se você assumir uma função em outra conta, os eventos serão enviados para essa conta. Para obter mais informações, consulte [Eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) no *Guia do usuário do Amazon EventBridge*. 

Os eventos da API Data são enviados quando a operação da API `ExecuteStatement` ou `BatchExecuteStatement` define a opção `WithEvent` como `true`. O campo `state` do evento contém um dos seguintes valores: 
+ ABORTED: a execução da consulta foi interrompida pelo usuário. 
+ FAILED — Falha na execução da consulta. 
+ FINISHED — A consulta terminou de ser executada. 

A entrega dos eventos é garantida. Para obter mais informações, consulte [Eventos de produtos da AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) no *Guia do usuário do Amazon EventBridge*. 

## Exemplo de evento concluído da API de dados
<a name="data-api-monitoring-events-finished"></a>

Os exemplos a seguir mostram um evento para API Data quando a operação da API `ExecuteStatement` termina. Neste exemplo, uma instrução chamada `test.testtable` terminou de ser executada.

```
{
    "version": "0",
    "id": "18e7079c-dd4b-dd64-caf9-e2a31640dab0",
    "detail-type": "Redshift Data Statement Status Change",
    "source": "aws.redshift-data",
    "account": "123456789012",
    "time": "2020-10-01T21:14:26Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster-1"
    ],
    "detail": {
        "principal": "arn:aws:iam::123456789012:user/myuser",
        "statementName": "test.testtable",
        "statementId": "dd2e1ec9-2ee3-49a0-819f-905fa7d75a4a",
        "redshiftQueryId": -1,
        "state": "FINISHED",
        "rows": 1,
        "expireAt": 1601673265
    }
}
```

# Usar o AWS KMS com a API de dados do Amazon Redshift
<a name="data-api-kms"></a>

Quando você criptografa o cluster do Amazon Redshift ou grupo de trabalho do Redshift sem servidor com uma chave gerenciada pelo cliente, a API de dados do Amazon Redshift usa essa mesma chave gerenciada pelo cliente para armazenar e criptografar suas consultas e resultados.

A API de dados criptografa seus dados por padrão para proteger informações sensíveis, como texto e resultados da consulta. Ela usa chaves de criptografia do AWS KMS de propriedade da AWS para essa proteção.

A criptografia de dados em repouso padrão reduz os custos operacionais e a complexidade envolvidos na proteção de dados sensíveis. Essa abordagem ajuda a criar aplicações seguras que atendam aos rigorosos requisitos regulatórios e de conformidade de criptografia.

## Usar concessões no AWS KMS
<a name="data-api-kms-grants"></a>

A API de dados requer uma concessão para usar a chave gerenciada pelo cliente.

Quando você chama `ExecuteStatement` ou `BatchExecuteStatement` em um cluster criptografado com uma chave gerenciada pelo cliente, o Amazon Redshift cria uma concessão em seu nome enviando uma solicitação [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) ao AWS KMS. O AWS KMS usa concessões para dar acesso à API de dados a uma chave do KMS em sua conta.

A API de dados exige concessões para usar sua chave gerenciada pelo cliente para as seguintes operações:
+ Enviar solicitações [https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) ao AWS KMS para criptografar os metadados da consulta com sua chave gerenciada pelo cliente.
+ Enviar solicitações [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) ao AWS KMS para gerar chaves de dados criptografadas pela chave gerenciada pelo cliente.
+ Enviar solicitações [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) ao AWS KMS para descriptografar as chaves de dados criptografadas para que elas possam ser usadas para criptografar seus dados.

É possível revogar o acesso à concessão, ou remover o acesso do Amazon Redshift à chave gerenciada pelo cliente a qualquer momento. Se você fizer isso, a API de dados não poderá mais acessar dados criptografados pela chave gerenciada pelo cliente, o que afetará as operações que dependem desses dados. Por exemplo, se você tentar recuperar os resultados da consulta ou acompanhar o status da consulta depois de revogar a concessão, a API de dados exibirá uma `AccessDeniedException`.

## Políticas de chave para a chave gerenciada pelo cliente
<a name="data-api-kms-policy"></a>

As políticas de chaves controlam o acesso à chave gerenciada pelo seu cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para saber mais, consulte [Chaves mestras do cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) no *AWS Key Management Service Guia do desenvolvedor*.

Para usar suas chaves gerenciadas pelo cliente com a API de dados, primeiro permita o acesso ao Amazon Redshift. As seguintes operações de API deverão ser permitidas na política de chave:
+ `kms:CreateGrant`: adiciona uma concessão a uma chave gerenciada pelo cliente. Concede controle de acesso a uma chave do AWS KMS especificada, que permite o acesso às operações de concessão exigidas pelo Amazon Redshift. Para obter mais informações, consulte [Usar concessõesAWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations).

Veja a seguir um exemplo de política de chave.

```
"Statement":[
   {
      "Sid":"Allow access to principals authorized to use Amazon Redshift",
      "Effect":"Allow",
      "Principal":{
         "AWS":"*"
      },
      "Action":[
         "kms:DescribeKey",
         "kms:CreateGrant"
      ],
      "Resource":"*",
      "Condition":{
         "StringEquals":{
            "kms:ViaService":"redshift.amazonaws.com",
            "kms:CallerAccount":"111122223333"
         }
      }
   },
   {
      "Sid":"AllowKeyAdministratorsAccess",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"
      },
      "Action":"kms:*",
      "Resource":"*"
   },
   {
      "Sid":"AllowKeyUseForExampleRole",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole"
      },
      "Action":[
         "kms:Encrypt",
         "kms:Decrypt",
         "kms:ReEncrypt*",
         "kms:GenerateDataKey*",
         "kms:DescribeKey"
      ],
      "Resource":"*"
   }
]
```

## Contexto de criptografia da API de dados
<a name="data-api-kms-encryption"></a>

Um contexto de criptografia é um conjunto opcional de pares de chave-valor que pode conter mais informações contextuais sobre os dados. O AWS KMS usa o contexto de criptografia como dados autenticados adicionais para comportar criptografia autenticada. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto da criptografia aos dados criptografados. Para descriptografar os dados, você inclui o mesmo contexto de criptografia na solicitação. 

A API de dados usa os mesmos três pares de chave-valor de contexto de criptografia em todas as operações criptográficas do AWS KMS para clusters provisionados:
+ `aws:redshift:arn`: o nome do recurso da Amazon (ARN) do cluster.
+ `aws:redshift:createtime`: o carimbo de data/hora em que você solicitou a criação do cluster.
+ `serviceName` – `RedshiftDataAPI`

```
"EncryptionContextSubset": {
    "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster",
    "aws:redshift:createtime": "20250815T0000Z",
    "serviceName": "RedshiftDataAPI",
}
```

A API de dados usa dois pares de chave-valor de contexto de criptografia em todas as operações criptográficas do AWS KMS para grupos de trabalho sem servidor:
+ `aws:redshift-serverless:arn`: o nome do recurso da Amazon (ARN) do namespace.
+ `serviceName`: RedshiftDataAPI

```
"EncryptionContextSubset": {
    "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012",
    "serviceName": "RedshiftDataAPI"
}
```

Para acessar mais informações sobre criptografia, consulte [Introdução aos detalhes criptográficos do AWS KMS](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html). Para acessar mais informações sobre a integração do Amazon Redshift e do AWS KMS, consulte [Como o Amazon Redshift usa o AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-redshift.html). 

# Usar o Amazon SageMaker Unified Studio para consultar seus bancos de dados no Amazon Redshift e no SageMaker Lakehouse
<a name="sagemaker-unified-studio"></a>

O Estúdio Unificado Amazon SageMaker fornece um ambiente de desenvolvimento fora do console e oferece suporte à análise SQL em dados no SageMaker Lakehouse, no Amazon Redshift e no Amazon Athena para análises SQL. Navegue até o Estúdio Unificado Amazon SageMaker usando a URL do seu administrador e use seu SSO ou suas credenciais da AWS para fazer login. Para obter mais informações sobre como configurar seu primeiro projeto, consulte [Introdução](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started.html) no *Guia do usuário do Estúdio Unificado Amazon SageMaker*.

No Estúdio Unificado Amazon SageMaker, você pode realizar [análises SQL](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/sql-query.html) executando o Amazon Redshift e o Amazon Athena com o [editor de consultas.](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/query-editor-navigate.html) Use o editor de consultas para escrever e executar consultas, visualizar resultados e compartilhar seu trabalho com sua equipe. Execute consultas em seus data warehouses do Redshift nas suas Contas da AWS (na mesma conta e em outras Contas da AWS), crie consultas SQL para o Redshift e o Athena usando a mesma interface e agende as consultas SQL usando o Amazon Managed Workflows para Apache Airflow. Você também pode usar o SQL generativo do Amazon Q para gerar SQL a partir de linguagem natural.