Ir para o conteúdo

Detalhes da Conexão do Amazon Dynamo DB

Introdução

Versão do conector

Esta documentação é baseada na versão 21.0.8257 do conector.

Começando

Suporte à versão do Amazon DynamoDB

O conector usa a versão atual da API REST do Amazon DynamoDB, versão 2012-08-10, para habilitar o acesso de leitura/gravação às instâncias do DynamoDB.

Estabelecendo uma Conexão

Conectando-se ao DynamoDB

Especifique o seguinte para se conectar aos dados:

  • Domain: Defina isso se quiser usar um nome de domínio associado à AWS.
  • AWSRegion: Defina como a região onde seus dados do Amazon DynamoDB estão hospedados.

Autenticação no DynamoDB

Obtendo a Chave de Acesso

Para obter as credenciais de um usuário do IAM, siga as etapas abaixo:

  1. Faça login no console do IAM.
  2. No painel de navegação, selecione Usuários.
  3. Para criar ou gerenciar as chaves de acesso para um usuário, selecione o usuário e, em seguida, selecione a aba Credenciais de segurança.

Para obter as credenciais para sua conta raiz da AWS, siga as etapas abaixo:

  1. Faça login no console de gerenciamento da AWS com as credenciais de sua conta root.
  2. Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
  3. Clique em Continuar para credenciais de segurança e expanda a seção Chaves de acesso para gerenciar ou criar chaves de acesso de conta raiz.
Autenticação com Credenciais Raiz

Para autenticar usando credenciais raiz da conta, defina o seguinte:

  • AuthScheme: Defina para AwsRootKeys.
  • AWSAccessKey: A chave de acesso associada à conta root da AWS.
  • AWSSecretKey: A chave secreta associada à conta raiz da AWS.

Observação: O uso desse esquema de autenticação é desencorajado pela Amazon para testes simples. As credenciais raiz da conta têm todas as permissões do usuário, tornando esse o método de autenticação menos seguro.

Autenticação com Credenciais Temporárias

Para autenticar usando credenciais temporárias, especifique o seguinte:

  • AuthScheme: Defina para TemporaryCredentials.
  • AWSAccessKey: A chave de acesso do usuário do IAM para o qual assumir a papel.
  • AWSSecretKey: A chave secreta do usuário do IAM para o qual assumir a papel.
  • AWSSessionToken: Seu token de sessão da AWS. Isso será fornecido junto com suas credenciais temporárias. Veja este link para mais informações.

O conector agora pode solicitar recursos usando as mesmas permissões fornecidas por credenciais de longo prazo (como credenciais de usuário do IAM) durante a vida útil das credenciais temporárias.

Se você também estiver usando uma papel do IAM para autenticação, deverá especificar adicionalmente o seguinte:

  • AWSRoleARN: Especifique o Role ARN para a papel com a qual você gostaria de se autenticar. Isso fará com que o conector tente recuperar credenciais para a papel especificada.
  • AWSExternalId: Somente se necessário quando você assume uma papel em outra conta.
Autenticação de uma Instância do EC2

Se você estiver usando o conector de uma instância EC2 e tiver uma função IAM atribuída à instância, poderá usar a função IAM para autenticar. Para fazer isso, defina as seguintes propriedades para autenticar:

  • AuthScheme: Defina para AwsEC2Roles.

Não especifica AWSAccessKey e AWSSecretKey porque o conector obterá automaticamente suas credenciais de função IAM e autenticará com elas.

Se você também estiver usando uma papel do IAM para autenticação, deverá especificar adicionalmente o seguinte:

  • AWSRoleARN: Especifique o Role ARN para a papel com a qual você gostaria de se autenticar. Isso fará com que o conector tente recuperar credenciais para a papel especificada.
  • AWSExternalId: Somente se necessário quando você assume uma papel em outra conta.

Suporte IMDSv2

O conector Amazon DynamoDB agora oferece suporte a IMDSv2. Ao contrário do IMDSv1, a nova versão requer um token de autenticação. Endpoints e resposta são os mesmos em ambas as versões. No IMDSv2, o conector Amazon DynamoDB primeiro tenta recuperar o token de metadados IMDSv2 e, em seguida, usa-o para chamar endpoints de metadados da AWS. Se não for possível recuperar o token, o conector será revertido para IMDSv1.

Autenticação Como uma Função da AWS

Em muitas situações, pode ser preferível usar uma papel do IAM para autenticação em vez das credenciais de segurança diretas de um usuário raiz da AWS.

Para autenticar como uma papel da AWS, defina o seguinte:

  • AuthScheme: Defina para AwsIAMRoles.
  • AWSRoleARN: Especifique o Role ARN para a papel com a qual você gostaria de se autenticar. Isso fará com que o conector tente recuperar credenciais para a papel especificada.
  • AWSExternalId: Somente se necessário quando você assume uma papel em outra conta.
  • AWSAccessKey: A chave de acesso do usuário do IAM para o qual assumir a papel.
  • AWSSecretKey: A chave secreta do usuário do IAM para o qual assumir a papel.

Observação: As funções não podem ser usadas ao especificar o AWSAccessKey e AWSSecretKey de um usuário raiz da AWS.

Autenticação com ADFS

Colocou o AuthScheme para ADFS. As seguintes propriedades de conexão precisam ser definidas:

  • User: Defina isso para o usuário ADFS.
  • Password: Defina como senha do ADFS para o usuário.
  • SSOLoginURL: Defina isso para a URL de login usada pelo provedor SSO.

Abaixo está um exemplo de string de conexão:

AuthScheme=ADFS; AWSRegion=Ireland; User=user@cdata.com; Password=CH8WerW121235647iCa6; SSOLoginURL='https://adfs.domain.com'; AWSRoleArn=arn:aws:iam:1234:role/ADFS_SSO; AWSPrincipalArn=arn:aws:iam:1234:saml-provider/ADFSProvider; S3StagingDirectory=s3://athena/staging;
ADFS Integrado

O fluxo integrado do ADFS indica que você está se conectando com o currently logged in Windows user credentials. Para usar o fluxo integrado do ADFS, simplesmente não especifique o User e Password, mas siga as mesmas etapas no guia ADFS acima.

Autenticação com Okta

Colocou o AuthScheme para Okta. As seguintes propriedades de conexão são usadas para se conectar ao Okta:

  • User: Defina isso para o usuário Okta.
  • Password: Defina como senha Okta para o usuário.
  • SSOLoginURL: Defina isso para a URL de login usada pelo provedor SSO.

A seguir SSOProperties são necessários para autenticar no Okta:

  • APIToken (opcional): defina como o API Token que o cliente criou a partir da organização Okta. Ele deve ser usado ao autenticar um usuário por meio de um aplicativo ou proxy confiável que substitui o contexto de solicitação do cliente OKTA.
  • MFAType (opcional): Defina isso apenas caso você tenha configurado o fluxo de MFA. Atualmente suportamos apenas os seguintes tipos: OktaVerify, E-mail e SMS.
  • MFAPassCode (opcional): Defina isso apenas caso você tenha configurado o fluxo de MFA. Se estiver definido como vazio/inválido, o driver emitirá inicialmente um desafio de MFA que acionará a plataforma para enviar a você uma senha de uso único em seu dispositivo ou e-mail, com base no tipo de MFA configurado. Você precisa reemitir outra conexão em que o valor da senha única recuperada é passado para a propriedade de conexão MFAPassCode.

Veja a seguir um exemplo de string de conexão:

AuthScheme=Okta; AWSRegion=Ireland; User=user@cdata.com; Password=CH8WerW121235647iCa6; SSOLoginURL='https://cdata-us.okta.com/home/amazon_aws/0oa35m8arsAL5f5NrE6NdA356/272'; SSOProperties='ApiToken=01230GGG2ceAnm_tPAf4MhiMELXZ0L0N1pAYrO1VR-hGQSf;'; AWSRoleArn=arn:aws:iam:1234:role/Okta_SSO; AWSPrincipalARN=arn:aws:iam:1234:saml-provider/OktaProvider; S3StagingDirectory=s3://athena/staging;
Autenticação com PingFederate

Colocou o AuthScheme para PingFederate. As seguintes propriedades de conexão precisam ser definidas:

  • User: Defina isso para o usuário PingFederate.
  • Password: Defina como senha PingFederate para o usuário.
  • SSOLoginURL: Defina isso para a URL de login usada pelo provedor SSO.
  • SSOExchangeUrl: O URI 'Partner Service Identifier' configurado em sua instância do servidor PingFederate em: SP Connections > SP Connection > WS-Trust > Protocol Settings. Isso deve identificar exclusivamente uma conexão PingFederate SP, portanto, é uma boa ideia defini-la como 'AWS SSO ACS URL'. Você pode encontrá-lo em AWS SSO > Configurações > Clique em 'Exibir detalhes' ao lado do campo Autenticação.

A seguir SSOProperties são necessários para autenticar no PingFederate:

  • AuthScheme (opcional): o esquema de autorização a ser usado para o endpoint IdP. Os valores permitidos para este IdP são Nenhum ou Básico.

Além disso, você pode usar o seguinte SSOProperties para configurar autenticação SSL mútua para SSOLoginURL, o endpoint WS-Trust STS:

  • SSLClientCert
  • SSLClientCertType
  • SSLClientCertSubject
  • SSLClientCertPassword

Abaixo está um exemplo de string de conexão:

authScheme=pingfederate;SSOLoginURL=https://mycustomserver.com:9033/idp/sts.wst;SSOExchangeUrl=https://us-east-1.signin.aws.amazon.com/platform/saml/acs/764ef411-xxxxxx;user=admin;password=PassValue;AWSPrincipalARN=arn:aws:iam:215338515180:saml-provider/pingFederate;AWSRoleArn=arn:aws:iam:215338515180:role/SSOTest2;
Autenticação com MFA

Para usuários e funções que exigem autenticação multifator, especifique o seguinte para autenticar:

  • AuthScheme: Defina para AwsMFA.
  • CredentialsLocation: O local do arquivo de configurações onde as credenciais MFA são salvas. Consulte a página Local do arquivo de credenciais em Propriedades de configurações avançadas para obter mais informações.
  • MFASerialNumber: O número de série do dispositivo MFA, se estiver sendo usado.
  • MFAToken: O token temporário disponível no seu dispositivo MFA.

Se você estiver se conectando à AWS (em vez de já estar conectado, como em uma instância do EC2), deverá especificar adicionalmente o seguinte:

  • AWSAccessKey: A chave de acesso do usuário IAM para quem o MFA será emitido.
  • AWSSecretKey: A chave secreta do usuário do IAM para quem o MFA será emitido.

Se você também estiver usando uma papel do IAM para autenticação, deverá especificar adicionalmente o seguinte:

  • AWSRoleARN: Especifique o Role ARN para a papel com a qual você gostaria de se autenticar. Isso fará com que o conector tente recuperar credenciais para a papel especificada usando MFA.
  • AWSExternalId: Somente se necessário quando você assume uma papel em outra conta.

Isso fará com que o conector envie as credenciais MFA em uma solicitação para recuperar credenciais de autenticação temporárias.

Observe que a duração das credenciais temporárias pode ser controlada por meio do TemporaryTokenDuration propriedade (padrão 3600 segundos).

Autenticação com um Arquivo de Credencial

Você pode usar um arquivo de credenciais para autenticar. Quaisquer configurações relacionadas à autenticação AccessKey/SecretKey, credenciais temporárias, autenticação de papel ou MFA serão usadas. Para fazer isso, defina as seguintes propriedades para autenticar:

  • AuthScheme: Defina para AwsCredentialsFile.
  • AWSCredentialsFile: Defina isso para o local do seu arquivo de credenciais.
  • AWSCredentialsFileProfile: Opcionalmente, defina isso com o nome do perfil que você gostaria de usar no arquivo de credenciais especificado. Se não for especificado, será usado o perfil com o nome padrão.

Veja este link Para maiores informações.

Autenticação com Credenciais do AWS Cognito

Se você deseja usar o conector com um usuário registrado em um grupo de usuários no AWS Cognito, defina as seguintes propriedades para autenticação:

  • AuthScheme: Defina como AwsCognitoSrp (recomendado). Você também pode usar AwsCognitoBasic.
  • AWSCognitoRegion: Defina isso para a região do User Pool.
  • AWSUserPoolId: Defina isso para o ID do grupo de usuários.
  • AWSUserPoolClientAppId: Defina isso para o ID do aplicativo do cliente do grupo de usuários.
  • AWSUserPoolClientAppSecret: Defina isso como o Segredo do cliente do pool de usuários.
  • AWSIdentityPoolId: Defina isso para o ID do pool de identidades do pool de identidades que está vinculado ao pool de usuários.
  • User: Defina para o nome de usuário do usuário registrado no User Pool.
  • Password: Configure com a senha do usuário cadastrado no User Pool.

Acesso a Dados de Ajuste Fino

Inferindo o Tipo de Dados

Você pode usar as seguintes propriedades para configurar a detecção automática de tipo de dados, que é habilitada por padrão.

  • TypeDetectionScheme: Você pode usar esta propriedade para ativar ou desativar a detecção automática de tipo com base no valor especificado em RowScanDepth.
  • RowScanDepth: Esta propriedade determina o número de linhas que serão verificadas para determinar os tipos de dados da coluna.
  • IgnoreTypes: Os tipos de dados que devem ser ignorados e resolvidos para tipos de dados varchar. Por padrão, os tipos Date, Time e Datetime são ignorados. Isso ocorre porque o Amazon DynamoDB não oferece suporte a eles como tipos. Qualquer filtragem dessas colunas pode ser feita apenas como seu tipo de dados varchar original.

Acesso a Dados de Ajuste Fino

Você pode usar as seguintes propriedades para obter maior controle sobre os recursos da API do Amazon DynamoDB e as estratégias que o conector usa para exibi-los:

  • GenerateSchemaFiles: Esta propriedade permite que você persista os metadados da tabela em arquivos de esquema estáticos fáceis de personalizar, para alterar os tipos de dados da coluna, por exemplo. Você pode definir esta propriedade como "OnStart" para gerar arquivos de esquema para todas as tabelas em seu banco de dados na conexão. Ou você pode gerar esquemas enquanto executa consultas SELECT em tabelas. Os esquemas resultantes são baseados nas propriedades de conexão que você usa para configurar Automatic Schema Discovery.

  • UseSimpleNames: Amazon DynamoDB oferece suporte a nomes de atributos com caracteres especiais que muitas ferramentas orientadas a banco de dados não oferecem suporte.

    Além disso, os nomes das tabelas do Amazon DynamoDB podem incluir pontos e traços -- o conector interpreta os pontos nos nomes das tabelas como separadores hierárquicos que permitem detalhar os campos aninhados, semelhante ao XPath.

    Você pode usar esta propriedade para substituir qualquer caractere não alfanumérico por um sublinhado.

  • SeparatorCharacter: Você pode usar esta propriedade para acessar mais facilmente os campos aninhados ao Consultar documentos e listas; especifique o separador de hierarquia com esta propriedade. Por padrão, esse caractere é o '.' (ponto) caractere.

Desempenho

Definindo um Intervalo de Repetição

Você pode definir as seguintes propriedades para repetir as consultas em vez de gerar um erro temporário, como "taxa máxima de transferência excedida":

  • RetryWaitTime: O número mínimo de milissegundos que o conector aguardará para tentar novamente uma solicitação.
  • MaximumRequestRetries: O número máximo de vezes para repetir uma solicitação.

O conector Jitterbit para Amazon DynamoDB também possui duas APIs separadas que podem ser usadas dependendo da consultar, PartiQL e Scan. A API utilizada depende da consultar executada.

PartiQL

O PartiQL é usado em qualquer consultar de solicitação de inserção/atualização/exclusão, bem como em qualquer seleção que contenha um filtro. Isso ocorre porque a API PartiQL contém recursos de filtragem mais avançados do que o endpoint Scan mais antigo. Em geral, espera-se que as consultas em que uma parte significativa do resultado é filtrada sejam executadas mais rapidamente do que uma consultar com muito pouco filtrado.

Usando a Paginação de Forma Eficaz

Você pode usar o Pagesize propriedade para otimizar o uso de sua taxa de transferência provisionada, com base no tamanho de seus itens e no tamanho de página de 1 MB do Amazon DynamoDB. Configure esta propriedade para o número de itens a serem retornados.

Geralmente, um tamanho de página menor reduz os picos na taxa de transferência que causam throttling. Um tamanho de página menor também insere pausas entre as solicitações. Esse intervalo equilibra a distribuição de solicitações e permite que mais solicitações sejam bem-sucedidas, evitando throttling.

Digitalizações

Uma varredura ocorrerá durante uma consultar SELECT que não contém nenhum filtro. Neste caso, todos os resultados devem ser recuperados, portanto não há vantagem em utilizar a API do PartiQL. A execução de uma varredura recuperará todos os resultados, mas a API contém um recurso importante que oferece melhor desempenho do que uma consultar PartiQL não filtrada: vários encadeamentos.

O ThreadCount a propriedade de conexão pode ser definida para influenciar quantos threads serão usados ao executar uma solicitação de verificação. Usar mais threads fará com que mais memória seja ocupada, mas resultará em resultados mais rápidos por thread. O padrão é 4. Isso funciona melhor em tabelas em que uma taxa de transferência alta ou variável é provisionada.

Nos casos em que o throughput máximo de uma tabela seria excedido em um único encadeamento, não há benefício em usar um Scan sobre a API PartiQL de encadeamento único. O Amazon DynamoDB simplesmente limitará todos os encadeamentos até que a taxa de transferência máxima não seja mais excedida.

Requisitos Mínimos de IAM

Recomendamos o uso de funções predefinidas para serviços em vez de criar políticas de IAM personalizadas. As funções predefinidas para o Amazon DynamoDB são

  • AmazonDynamoDBReadOnlyAccess - concede acesso somente leitura aos recursos do DynamoDB por meio do Management Console da AWS.
  • AmazonDynamoDBFullAccess - concede acesso total aos recursos do DynamoDB por meio do Management Console da AWS.

Se você deseja criar políticas personalizadas, use as funções descritas na tabela abaixo. Observe que as políticas específicas exigidas pelo driver Amazon DynamoDB estão sujeitas a alterações em versões futuras. O Amazon DynamoDB requer no mínimo as seguintes permissões:

Função IAM Descrição
dynamodb:ListaTabelas Em outras palavras, a ação dynamodb:ListTables precisa de um * Resource, e as outras ações podem receber permissão para todas as tabelas arn:aws:dynamodb:us-east-1:987654321098:table/* ou para uma lista de tabelas específicas:
dynamodb:DescribeTable Necessário para obter metadados sobre a tabela selecionada. Usado durante a recuperação de metadados da tabela para determinar dinamicamente a lista das colunas. Esta ação oferece suporte a permissões em nível de recurso, para que você possa especificar as tabelas das quais deseja obter os metadados. Por exemplo, para a tabela Clientes e Pedidos na região Norte da Virgínia us-east-1, para a conta 987654321098:
dynamodb:Verificar Necessário para obter um ou mais itens acessando todos os itens da tabela. Usado para a maioria das consultas SELECT, por exemplo, SELECT * FROM [Clientes]. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar as tabelas das quais deseja obter dados, semelhante a dynamodb:DescribeTable.
dynamodb:PartiQLSelecionar Necessário para obter itens específicos de uma tabela ao usar consultas SELECT e filtrar pela coluna de chave primária, por exemplo, SELECT * FROM [Customers] ONDE id=1234. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar as tabelas das quais deseja obter dados, semelhante a dynamodb:DescribeTable.
dynamodb:PartiQLInsert Necessário para inserir dados em uma tabela. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar as tabelas nas quais deseja inserir dados, semelhante a dynamodb:DescribeTable.
dynamodb:PartiQLUpdate Necessário para modificar dados em uma tabela. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar as tabelas nas quais deseja modificar os dados, semelhante a dynamodb:DescribeTable.
dynamodb:PartiQLDelete Necessário para excluir dados de uma tabela. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar as tabelas das quais deseja excluir dados, semelhante a dynamodb:DescribeTable.
dynamodb:CriarTabela Necessário para criar uma tabela. Esta ação oferece suporte a permissões em nível de recurso, portanto, você pode especificar os nomes de tabela que pode criar.

Anotações Importantes

Procedimentos Armazenados

  • Os recursos de procedimentos armazenados descritos nesta documentação não são suportados no momento.
  • Como os procedimentos armazenados não são suportados atualmente, qualquer recurso dependente de procedimentos armazenados também não é suportado atualmente.

Arquivos de Configuração e Seus Caminhos

  • Todas as referências para adicionar arquivos de configuração e seus caminhos referem-se a arquivos e locais no Harmony Agente onde o conector está instalado. Esses caminhos devem ser ajustados conforme apropriado, dependendo do agente e do sistema operacional. Se vários agentes forem usados em um grupo de agentes, arquivos idênticos serão necessários em cada agente.

Banco de Dados NoSQL

O Amazon DynamoDB é um banco de dados sem esquema que oferece alto desempenho, disponibilidade e escalabilidade. Esses recursos não são necessariamente incompatíveis com uma linguagem de consultar compatível com padrões como o SQL-92. Nesta seção, mostraremos vários esquemas que o conector oferece para preencher a lacuna com o SQL relacional e um banco de dados de documentos.

O conector modela as tabelas Amazon DynamoDB sem esquema em tabelas relacionais e converte consultas SQL em consultas Amazon DynamoDB para obter os dados solicitados. O conector oferece duas maneiras, Automatic Schema Discovery e Definições de esquema personalizado, para modelar tabelas do Amazon DynamoDB como tabelas relacionais.

A Descoberta Automática de Esquema localiza automaticamente os tipos de dados em uma tabela do Amazon DynamoDB verificando um número configurado de linhas da tabela. Você pode usar RowScanDepth, FlattenArrays, e FlattenObjects para controlar a representação relacional das tabelas no Amazon DynamoDB.

Opcionalmente, você pode usar Definições de esquema personalizado para projetar a estrutura relacional escolhida sobre uma tabela do Amazon DynamoDB. Isso permite que você defina os nomes das colunas escolhidas, seus tipos de dados e a localização de seus valores na tabela do Amazon DynamoDB.

Descoberta Automática de Esquema

O conector infere automaticamente um esquema relacional inspecionando uma série de documentos do Amazon DynamoDB em uma coleção. Você pode usar o RowScanDepth propriedade para definir a quantidade de documentos que o conector digitalizará para isso. As colunas identificadas durante o processo de descoberta dependem do FlattenArrays e FlattenObjects propriedades.

Objetos Achatados

Se FlattenObjects for definido, todos os objetos aninhados serão nivelados em uma série de colunas. Por exemplo, considere o seguinte documento:

{
  id: 12,
  name: "Lohia Manufacturers Inc.",
  address: {street: "Main Street", city: "Chapel Hill", state: "NC"},
  offices: ["Chapel Hill", "London", "New York"],
  annual_revenue: 35,600,000
}

Este documento será representado pelas seguintes colunas:

Nome da coluna Tipo de Dados Valor de exemplo
id inteiro 12
nome Corda Lohia Manufacturers Inc.
endereço.rua Corda Rua Principal
endereço.cidade Corda Morro da Capela
endereço.estado Corda NC
escritórios Corda ["Chapel Hill", "Londres", "Nova York"]
receita_anual Duplo 35.600.000

Se FlattenObjects não for definido, as colunas address.street, address.city e address.state não serão separadas. A coluna de endereço do tipo string representará o objeto inteiro. Seu valor seria {street: "Main Street", city: "Chapel Hill", state: "NC"}. Consulte Funções JSON para obter mais detalhes sobre como trabalhar com agregados JSON. Você pode alterar o caractere separador no nome da coluna de um ponto definindo SeparatorCharacter.

Achatamento de Matrizes

O FlattenArrays a propriedade pode ser usada para nivelar os valores da matriz em colunas próprias. Isso é recomendado apenas para arrays que devem ser curtos, por exemplo, as coordenadas abaixo:

"coord": [-73.856077, 40.848447 ]

O FlattenArrays a propriedade pode ser definida como 2 para representar o array acima da seguinte forma:

Nome da coluna Tipo de dados Valor de exemplo
coord.0 flutuar -73.856077
coord.1 flutuar 40.848447

É melhor deixar outras matrizes ilimitadas como estão e separar os dados para elas conforme necessário usando Funções JSON.

Achatamento Vertical

É possível recuperar um array de objetos como se fosse uma tabela separada. Pegue a seguinte estrutura JSON da tabela restaurantes, por exemplo:

{
  "restaurantid" : "30075445",
  "address" : {
    "building" : "1007",
    "coord" : [-73.856077, 40.848447],
    "street" : "Morris Park Ave",
    "zipcode" : "10462"
  },
  "borough" : "Bronx",
  "cuisine" : "Bakery",
  "grades" : [{
      "date" : 1393804800000,
      "grade" : "B",
      "score" : 2
    }, {
      "date" : 1378857600000,
      "grade" : "A",
      "score" : 6
    }, {
      "date" : 1358985600000,
      "grade" : "A",
      "score" : 10
    }],
  "name" : "Morris Park Bake Shop"
}

O nivelamento vertical permitirá que você recupere a matriz de notas como uma tabela separada usando a sintaxe abaixo:

SELECT * FROM [restaurants.grades]

Esta consultar retorna o seguinte conjunto de dados:

data nota pontuação _index
1393804800000 B 2 1
1378857600000 A 6 2
1358985600000 A 10 3

A matriz de notas também pode ser aninhada em alguns níveis mais profundos. Nesse caso, a mesma sintaxe deve ser usada:

SELECT * FROM [restaurants.cuisine.bakery.grades]

Também existem casos em que a estrutura aninhada inclui outra matriz em um nível superior. Tome o seguinte JSON como exemplo:

{
  "restaurantid" : "30075445",
  "reviews": [
   {
    "grades": [
     {
      "date": 1393804800000,
      "score": 2,
      "grade": "B"
     },
     {
      "date": 1378857600000,
      "score": 6,
      "grade": "A"
     },
     {
      "date": 1358985600000,
      "score": 10,
      "grade": "A"
     }]
    }],
  "name" : "Morris Park Bake Shop"
}

Para esta estrutura, o índice da matriz de comentários precisará ser colocado entre colchetes. Se eles já estiverem sendo usados como caracteres de escape na consultar SQL, os colchetes precisarão ser escapados, conforme mostrado na consultar abaixo:

SELECT * FROM [restaurants.reviews.\[0\].grades]

Essa consultar retornará o mesmo conjunto de dados da estrutura JSON na parte superior. Observe que essa sintaxe diferencia maiúsculas de minúsculas, portanto, certifique-se de escrever os nomes dos campos da mesma forma que eles são salvos no DynamoDB.

Funções JSON

O conector pode retornar estruturas JSON como valores de coluna. O conector permite usar funções SQL padrão para trabalhar com essas estruturas JSON. Os exemplos nesta seção usam a seguinte matriz:

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]

JSON_EXTRACT

A função JSON_EXTRACT pode extrair valores individuais de um objeto JSON. A consultar a seguir retorna os valores mostrados abaixo com base no caminho JSON passado como o segundo argumento para a função:

SELECT Name, JSON_EXTRACT(grades,'[0].grade') AS Grade, JSON_EXTRACT(grades,'[0].score') AS Score FROM Students;
Nome da coluna Valor de exemplo
Grade A
Score 2

JSON_COUNT

A função JSON_COUNT retorna o número de elementos em uma matriz JSON dentro de um objeto JSON. A consultar a seguir retorna o número de elementos especificados pelo caminho JSON passado como o segundo argumento para a função:

SELECT Name, JSON_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;
Nome da coluna Valor de exemplo
NumberOfGrades 5

JSON_SUM

A função JSON_SUM retorna a soma dos valores numéricos de uma matriz JSON em um objeto JSON. A consultar a seguir retorna o total dos valores especificados pelo caminho JSON passado como o segundo argumento da função:

SELECT Name, JSON_SUM(score,'[x].score') AS TotalScore FROM Students;
Nome da coluna Valor de exemplo
TotalScore 41

JSON_MIN

A função JSON_MIN retorna o menor valor numérico de uma matriz JSON dentro de um objeto JSON. A consultar a seguir retorna o valor mínimo especificado pelo caminho JSON passado como o segundo argumento para a função:

SELECT Name, JSON_MIN(score,'[x].score') AS LowestScore FROM Students;
Nome da coluna Valor de exemplo
LowestScore 2

JSON_MAX

A função JSON_MAX retorna o valor numérico mais alto de uma matriz JSON dentro de um objeto JSON. A consultar a seguir retorna o valor máximo especificado pelo caminho JSON passado como o segundo argumento para a função:

SELECT Name, JSON_MAX(score,'[x].score') AS HighestScore FROM Students;
Nome da coluna Valor de exemplo
HighestScore 14

Consultas do DynamoDB

Como o Amazon DynamoDB é uma fonte de dados NoSQL, as consultas precisam ser tratadas de maneira um pouco diferente dos bancos de dados relacionais padrão.

Consultas Sensíveis ao Valor

A falta de um tipo de dados obrigatório para uma determinada coluna significa que você pode armazenar diferentes tipos de dados em uma única coluna. Por exemplo, uma linha pode ter uma String chamada EmailAddresses e outra pode ter um StringSet também chamado EmailAddresses. Para esses e outros tipos de casos, o conector determina em grande parte qual tipo de dados usar com base nos valores da consultar.

Por exemplo, digamos que você tenha uma tabela de itens onde o PartNumber pode armazenar uma string ou um número. Para recuperar uma peça com o PartNumber do valor numérico 12345, você deve emitir a seguinte consultar:

SELECT Name, Location, Quantity, PartNumber FROM Items WHERE PartNumber = 12345

Alternativamente, o PartNumber poderia ter sido armazenado como a string "12345". Para recuperar uma peça com o PartNumber da string literal 12345, faça a seguinte consultar:

SELECT Name, Location, Quantity, PartNumber FROM Items WHERE PartNumber = '12345'

Se o tipo de dados do valor especificado não for ambíguo, ele sempre será usado antes do tipo de dados detectado automaticamente. Em ambos os casos, se um parâmetro for usado em vez de um valor codificado, o tipo de dados do parâmetro será usado para determinar qual tipo enviar ao Amazon DynamoDB.

Tipo de Dados da Coluna Detectada

Se um valor não for óbvio com base apenas no tipo de dados detectado, o conector o compara com a coluna detectada automaticamente. Por exemplo, se você deseja inserir uma coluna chamada Coordenadas na tabela Localização, sua inserção seria semelhante a:

INSERT INTO Locations (Address, Coordinates) VALUES ('123 Fake Street', '[40.7127, 74.0059]')

Com base apenas no valor de entrada, o tipo de dados detectado é uma string. No entanto, como uma coluna Coordenadas foi detectada automaticamente anteriormente, o conector insere um NumberSet e não uma String simples.

Se uma coluna Coordenadas não foi detectada automaticamente durante a varredura da tabela Locais, o tipo de dados do valor inserido é usado.

Nesse caso, ainda poderíamos resolver que a inserção é um NumberSet, mas custará um pouco mais de sobrecarga fazer isso.

Contar

O Amazon DynamoDB oferece suporte a 2 métodos diferentes de uso da função de agregação COUNT. Para simplesmente retornar o número de itens em sua tabela, emita a seguinte consultar:

SELECT COUNT(*) FROM MyTable

O conector Jitterbit para Amazon DynamoDB lerá o ItemCount da ação DescribeTable. Isso evita o uso de muitas unidades de leitura para varrer a tabela inteira. No entanto, o DynamoDB atualiza esse valor aproximadamente a cada seis horas e as alterações recentes podem não ser refletidas nesse valor.

A emissão das consultas de exemplo abaixo irá, em vez disso, varrer a tabela completa para contagem:

SELECT COUNT(*) FROM MyTable WHERE MyInt > 10
SELECT COUNT(MyInt) FROM MyTable

Consultar Documentos e Listas

Documentos e listas do Amazon DynamoDB são compatíveis com o Jitterbit Connector para Amazon DynamoDB. Você pode acessar documentos e listas diretamente no nível raiz ou usar o '.' caractere como um divisor de hierarquia para detalhar documentos e listas.

Valores de Relatório em Documentos e Listas

Quando os tipos de dados são detectados automaticamente, eles são relatados até o nível mais baixo que pode ser detectado de forma confiável. Por exemplo, um documento chamado Cliente com um filho chamado Endereço e um filho em Endereço chamado Rua seria representado pela coluna Cliente.Endereço.Rua.

No entanto, esse processo não se aplica a listas, pois uma lista pode ter qualquer número de entradas. Depois que uma lista ou um conjunto é detectado, os valores adicionais não são relatados como disponíveis no esquema da tabela.

Recuperando Valores Não Declarados

Se houver atributos que freqüentemente não possuem um valor e, portanto, não são detectados automaticamente, eles ainda podem ser recuperados especificando o caminho correto para eles. Por exemplo, para obter o atributo Especial do documento Cliente:

SELECT [Customer.Address.Street], [Cliente.Especial] FROM MyTable

Depois que uma lista é detectada, os valores adicionais não são relatados. Mas valores individuais na lista podem ser referenciados especificando '.' e um número. Por exemplo:

SELECT [MinhaLista.0], [MyList.1.Email], [MinhaLista.1.Idade] FROM MyTable

Isso recuperará o primeiro valor da lista e os atributos E-mail e Idade do segundo valor.

Inserindo Documentos e Listas

As inserções no Amazon DynamoDB exigem que o objeto completo seja especificado durante a inserção. Insira um documento ou lista na raiz. Passe o agregado JSON completo. Por exemplo:

INSERT INTO MyTable (PrimaryKey, EmailAddresses, Address, MyList) VALUES ('uniquekey', '["user@email.com", "user2@email2.com"]', '{"Street":"123 Fake Street", "City":"Chapel Hill", "Zip":"27713"}', '[{"S":"somestr"},{"NS":[1,2]},{"N":4}]')

Nesse caso, EmailAddress é inserido como um StringSet, Address é inserido como um documento e MyList é inserido como uma lista.

Atualização de Documentos e Listas

As atualizações são suportadas usando a mesma sintaxe disponível durante as seleções. Documentos e listas podem ser especificados usando o '.' caractere para especificar a hierarquia. Por exemplo:

UPDATE MyTable SET [EmailAddress.0]='user@email.com', [EmailAddress.1]='user2@email2.com', [Address.Street]='123 Fake Street', [Address.City]='Chapel Hill', [Address.Zip]='27713', [MyList.0]='somestr', [MyList.1]='[1,2]', [MyList.2]=4 WHERE PrimaryKey='uniquekey'

Observe que EmailAddress e MyList devem ser detectados automaticamente para resolver como lidar com EmailAddress de maneira diferente de MyList. Se você estiver em dúvida se algo será detectado automaticamente ou não, especificar o JSON completo para atualizar sempre funcionará.

Mapeamento de Tipo de Dados

Mapeamentos de Tipo de Dados

O conector mapeia os tipos da fonte de dados para o tipo de dados correspondente disponível no esquema. Além disso, tentaremos verificar os dados disponíveis voltando com base no IgnoreTypes propriedade de conexão. A tabela abaixo documenta esses mapeamentos.

Amazon DynamoDB Esquema
String string, data, datahora, hora
Binary cadeia
Number bigint, int, float (dependendo dos dados detectados)
StringSet cadeia
NumberSet cadeia
BinarySet cadeia
Map cadeia
List cadeia
Boolean bool
Null cadeia

Observe que, dependendo das configurações de IgnoreTypes, alguns desses tipos podem não ser detectados por padrão. Data, datahora e hora, por exemplo, são ignorados por padrão, pois não podem ser filtrados no lado do servidor e podem ser inseridos/atualizados em um formato diferente das entradas existentes, se ativados. Tenha cuidado ao ativá-los.

FlattenArrays e FlattenObjects também pode ser usado para nivelar StringSets, NumberSets, BinarySets, Maps e Lists em colunas individuais.

Definições de Esquema Personalizado

Além da descoberta automática de esquema, o conector também permite que você defina estaticamente o esquema para sua tabela do Amazon DynamoDB. Vamos considerar um esquema para o conjunto de dados dos restaurantes.

Abaixo está um exemplo de item da tabela:

{
   "address":{
      "building":"461",
      "coord":[
         -74.138492,
         40.631136
      ],
      "street":"Port Richmond Ave",
      "zipcode":"10302"
   },
   "borough":"Staten Island",
   "cuisine":"Other",
   "grades":[

   ],
   "name":"Indian Oven",
   "restaurant_id":"50018994"
}

Definindo um Esquema Personalizado

Você pode definir um esquema personalizado para extrair propriedades aninhadas como suas próprias colunas. Colocou o Location para o diretório do arquivo que conterá o arquivo de esquema.

O esquema a seguir usa a propriedade other:path para definir de onde os dados de uma determinada coluna devem ser recuperados. Usando este modelo, você pode achatar níveis arbitrários de hierarquia.

O atributo 'other:tableapiname' especifica a tabela a ser analisada. Esse atributo oferece a flexibilidade de usar vários esquemas para a mesma tabela.

Em Exemplo de esquema personalizado, você encontrará o esquema completo que contém o exemplo acima.

<api:info title="StaticRestaurants" other:catalog="" other:schema="AmazonDynamoDB" description="StaticRestaurants" other:tableapiname="StaticRestaurants"  other:version="20">
  <attr   name="id"      xs:type="decimal"   key="true"   columnsize="17"     precision="38"   scale="6"   readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="restaurant_id"   other:filterable="true"   other:fullpath="restaurant_id"      other:apiname="&amp;quot;restaurant_id&amp;quot;"                          />
  <attr   name="borough"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="borough"         other:filterable="true"   other:fullpath="borough"            other:apiname="&amp;quot;borough&amp;quot;"                                />
  <attr   name="address_zipcode"    xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="zipcode"         other:filterable="true"   other:fullpath="address.zipcode"    other:apiname="&amp;quot;address&amp;quot;.&amp;quot;zipcode&amp;quot;"    />
  <attr   name="address_coord_0"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord"           other:filterable="true"   other:fullpath="address.coord[0]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[0]"   />
  <attr   name="address_coord_1"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord[1]"        other:filterable="true"   other:fullpath="address.coord[1]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[1]"   />
  <attr   name="address_building"   xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="building"        other:filterable="true"   other:fullpath="address.building"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;building&amp;quot;"   />
  <attr   name="address_street"     xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="street"          other:filterable="true"   other:fullpath="address.street"     other:apiname="&amp;quot;address&amp;quot;.&amp;quot;street&amp;quot;"     />
  <attr   name="name"               xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="name"            other:filterable="true"   other:fullpath="name"               other:apiname="&amp;quot;name&amp;quot;"                                   />
  <attr   name="cuisine"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="cuisine"         other:filterable="true"   other:fullpath="cuisine"            other:apiname="&amp;quot;cuisine&amp;quot;"                                />
</api:info>

Exemplo de Esquema Personalizado

Esta seção contém um esquema completo. A seção de informações permite uma visualização relacional de uma tabela do Amazon DynamoDB. Para obter mais detalhes, consulte Definições de esquema personalizado. A tabela abaixo permite os comandos SELECT, INSERT, UPDATE e DELETE conforme implementados nas seções GET, POST, MERGE e DELETE do esquema abaixo. Colocou o Location para o diretório do arquivo que conterá o arquivo de esquema.

Use o atributo 'other:tableapiname' para especificar o nome da tabela do Amazon DynamoDB que você deseja analisar. Você pode usar o atributo 'other:tableapiname' para definir vários esquemas para a mesma tabela. Observação: Amazon DynamoDB diferencia maiúsculas de minúsculas. O nome da tabela e os caminhos especificados devem corresponder à forma como seus campos aparecem no Amazon DynamoDB.

As operações, como dynamodbadoProviderOperationCaller, são implementações internas e também podem ser copiadas como estão.

<api:script xmlns:api="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1">
  <api:info title="StaticRestaurants" other:catalog="" other:schema="AmazonDynamoDB" description="StaticRestaurants" other:tableapiname="StaticRestaurants"  other:version="20">
    <attr   name="id"      xs:type="decimal"   key="true"   columnsize="17"     precision="38"   scale="6"   readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="restaurant_id"   other:filterable="true"   other:fullpath="restaurant_id"      other:apiname="&amp;quot;restaurant_id&amp;quot;"                          />
    <attr   name="borough"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="borough"         other:filterable="true"   other:fullpath="borough"            other:apiname="&amp;quot;borough&amp;quot;"                                />
    <attr   name="address_zipcode"    xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="zipcode"         other:filterable="true"   other:fullpath="address.zipcode"    other:apiname="&amp;quot;address&amp;quot;.&amp;quot;zipcode&amp;quot;"    />
    <attr   name="address_coord_0"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord"           other:filterable="true"   other:fullpath="address.coord[0]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[0]"   />
    <attr   name="address_coord_1"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord[1]"        other:filterable="true"   other:fullpath="address.coord[1]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[1]"   />
    <attr   name="address_building"   xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="building"        other:filterable="true"   other:fullpath="address.building"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;building&amp;quot;"   />
    <attr   name="address_street"     xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="street"          other:filterable="true"   other:fullpath="address.street"     other:apiname="&amp;quot;address&amp;quot;.&amp;quot;street&amp;quot;"     />
    <attr   name="name"               xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="name"            other:filterable="true"   other:fullpath="name"               other:apiname="&amp;quot;name&amp;quot;"                                   />
    <attr   name="cuisine"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="cuisine"         other:filterable="true"   other:fullpath="cuisine"            other:apiname="&amp;quot;cuisine&amp;quot;"                                />
  </api:info>


  <api:script method="GET">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="POST">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="MERGE">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="DELETE">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>
</api:script>

Características Avançadas

Esta seção detalha uma seleção de recursos avançados do conector Amazon DynamoDB.

Detecção automática de índice

O AutoDetectIndex propriedade fornece acesso rápido aos itens em uma tabela detectando um índice alternativo que pode ser consultado no lugar da própria tabela. Esse índice secundário é uma estrutura de dados que contém um subconjunto de atributos de uma tabela e uma chave alternativa. O benefício de consultar um índice em vez da tabela principal é pular uma verificação completa da tabela principal. Isso torna a operação muito mais rápida.

Visualizações definidas pelo usuário

O conector permite definir tabelas virtuais, denominadas visualizações definidas pelo usuário, cujo conteúdo é decidido por uma consultar pré-configurada. Essas exibições são úteis quando você não pode controlar diretamente as consultas enviadas aos drivers. Consulte Visualizações definidas pelo usuário para obter uma visão geral da criação e configuração de exibições personalizadas.

Configuração SSL

Use Configuração SSL para ajustar como o conector lida com as negociações de certificado TLS/SSL. Você pode escolher entre vários formatos de certificado; Veja o SSLServerCert propriedade em "Opções de cadeia de conexão" para obter mais informações.

Procurador

Para configurar o conector usando configurações de proxy do Agente Privado, selecione os Use Proxy Settings caixa de seleção na tela de configuração da conexão.

Visualizações Definidas pelo Usuário

O Jitterbit Connector para Amazon DynamoDB permite definir uma tabela virtual cujo conteúdo é decidido por uma consultar pré-configurada. Elas são chamadas de Visualizações Definidas pelo Usuário, que são úteis em situações onde você não pode controlar diretamente a consultar que está sendo emitida para o driver, por exemplo, ao usar o driver do Jitterbit. As Visualizações Definidas pelo Usuário podem ser usadas para definir predicados que são sempre aplicados. Se você especificar predicados adicionais na consultar para a visualização, eles serão combinados com a consultar já definida como parte da visualização.

Há duas maneiras de criar exibições definidas pelo usuário:

  • Crie um arquivo de configuração em formato JSON definindo as visualizações desejadas.
  • declarações DDL.

Definindo Visualizações Usando um Arquivo de Configuração

As visualizações definidas pelo usuário são definidas em um arquivo de configuração formatado em JSON chamado UserDefinedViews.json. O conector detecta automaticamente as visualizações especificadas neste arquivo.

Você também pode ter várias definições de exibição e controlá-las usando o UserDefinedViews propriedade de conexão. Quando você usa essa propriedade, apenas as exibições especificadas são vistas pelo conector.

Este arquivo de configuração de exibição definida pelo usuário é formatado da seguinte forma:

  • Cada elemento raiz define o nome de uma visualização.
  • Cada elemento raiz contém um elemento filho, chamado query, que contém a consultar SQL personalizada para a exibição.

Por exemplo:

{
    "MyView": {
        "query": "SELECT * FROM Account WHERE MyColumn = 'value'"
    },
    "MyView2": {
        "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
    }
}

Use o UserDefinedViews propriedade de conexão para especificar a localização do seu arquivo de configuração JSON. Por exemplo:

"UserDefinedViews", "C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json"

Esquema para Exibições Definidas pelo Usuário

As visualizações definidas pelo usuário são expostas no UserViews esquema por padrão. Isso é feito para evitar que o nome da exibição entre em conflito com uma entidade real no modelo de dados. Você pode alterar o nome do esquema usado para UserViews definindo o UserViewsSchemaName propriedade.

Trabalhando com Exibições Definidas pelo Usuário

Por exemplo, uma instrução SQL com uma Visualização Definida pelo Usuário chamada UserViews.RCustomers lista apenas clientes em Raleigh:

SELECT * FROM Customers WHERE City = 'Raleigh';

Exemplo de consultar ao driver:

SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';

Resultando na consultar efetiva à fonte:

SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';

Esse é um exemplo muito simples de uma consultar a uma exibição definida pelo usuário que é efetivamente uma combinação da consultar de exibição e da definição de exibição. É possível compor essas consultas em padrões muito mais complexos. Todas as operações SQL são permitidas em ambas as consultas e são combinadas quando apropriado.

Configuração SSL

Personalizando a Configuração SSL

Por padrão, o conector tenta negociar SSL/TLS verificando o certificado do servidor em relação ao armazenamento de certificados confiáveis do sistema.

Para especificar outro certificado, consulte o SSLServerCert propriedade para os formatos disponíveis para fazê-lo.

Modelo de Dados

O conector permite que você acesse dados no Amazon DynamoDB usando uma interface semelhante a um banco de dados padrão. O Amazon DynamoDB é um banco de dados em nuvem NoSQL altamente escalável, muito diferente de um banco de dados comum. Nesta seção, descrevemos como modelamos tabelas do Amazon DynamoDB sem esquema como Tabelas e Procedimentos Armazenados.

O conector pode detectar esquemas dinamicamente no momento da conexão. Consulte Descoberta automática de esquema para obter mais informações sobre como definir esquemas implicitamente no momento da conexão. Este método é útil se a estrutura de seus dados for volátil.

Você também pode persistir esquemas em definições de esquema estático. Os arquivos de esquema do conector têm um formato simples. Consulte Definições de esquema personalizado para obter mais informações sobre como definir e estender esquemas estáticos.

Tabelas

A lista de tabelas é recuperada dinamicamente de sua conta do Amazon DynamoDB. Você pode usar o procedimento armazenado* para criar uma nova tabela ou você pode criar uma tabela usando o Amazon Web Services Admin Console.

Como as tabelas do DynamoDB são particionadas com base em suas chaves, você deve ter cuidado ao selecionar uma chave adequada com base nos requisitos de consultar de sua tabela. Consulte a documentação do DynamoDB para obter mais informações sobre como usar as práticas recomendadas para modelar dados em tabelas do DynamoDB. O DynamoDB oferece suporte a dois tipos de chaves primárias:

  • Chave Primária Hash: Esta é uma chave de coluna única.
  • Chave primária de hash e intervalo: esta é uma chave de duas colunas que inclui uma coluna de hash e uma coluna de intervalo.

O conector modelará todos os atributos de chave no DynamoDB como colunas de chave.

Colunas da Tabela

Como as tabelas do Amazon DynamoDB não têm esquema, o conector oferece os dois mecanismos a seguir para descobrir o esquema.

Esquemas Dinâmicos

As colunas de uma tabela são determinadas dinamicamente pela varredura de dados nas primeiras linhas. Você pode ajustar o número de linhas usadas modificando o RowScanDepth propriedade. Além do nome da coluna, a varredura de linha também determina o tipo de dados. A tabela a seguir mostra como os diferentes tipos de dados compatíveis com o Amazon DynamoDB são modelados no conector.

Tipo Amazon DynamoDB Tipo modelado Codificação Valor da amostra
Booleano Booleano Não é obrigatório Verdadeiro
Corda Corda Não é obrigatório EUA
bolha Corda Não é obrigatório
Número Duplo Não é obrigatório 24,0
Matriz de strings Corda Matriz JSON ["EUA", "Canadá", "Reino Unido"]
Matriz numérica Corda Matriz JSON [20, 200,5, 500]
Matriz de Blobs Matriz JSON Matriz JSON ["ABCD", "EFGH"]
Documento Objeto JSON Objeto JSON {"Endereço":"Rua Fake 123", "Cidade":"Chapel Hill", "CEP":"27516"}
Lista Matriz JSON Matriz JSON [{"S":"minhastring"}, {"NS":[1, 2]}, {"N":4}]

Esquemas Estáticos

Em vez de usar esquemas descobertos dinamicamente, você pode definir seus próprios esquemas. Isso lhe dará mais controle sobre as colunas projetadas e também permitirá que você use outros tipos de dados, como booleanos, datahora, etc. Consulte CreateSchema Procedimento armazenado* para criar seu próprio esquema. Você pode simplesmente especificar o FileName (fullpath) e o TableName do novo arquivo de esquema, que deve corresponder ao nome da tabela do Amazon DynamoDB, e editar a listagem de colunas para usá-la em sua própria tabela.

Operações Sem Esquema

Embora o esquema da tabela seja necessário para relatar os metadados, os dados podem ser selecionados, inseridos, atualizados ou excluídos de colunas que não existem no esquema. As colunas que ainda não existem no esquema da tabela terão seus tipos de dados determinados dinamicamente com base nos dados especificados. Consulte Consultas do DynamoDB Para maiores informações.

Procedimentos Armazenados

Procedimentos armazenados* estão disponíveis para complementar os dados disponíveis no NoSQL Database. Pode ser necessário atualizar os dados disponíveis em uma exibição usando um procedimento armazenado* porque os dados não fornecem atualizações bidirecionais diretas, semelhantes a tabelas. Nessas situações, a recuperação dos dados é feita usando a visualização ou tabela apropriada, enquanto a atualização é feita chamando um procedimento armazenado. Procedimentos armazenados* pega uma lista de parâmetros e retorna um conjunto de dados que contém a coleção de tuplas que constituem a resposta.

Conector Jitterbit para Procedimentos Armazenados do Amazon DynamoDB

Nome Descrição
CreateSchema Cria um arquivo de esquema para a tabela ou exibição especificada.
CreateTable Cria uma tabela no DynamoDB.

Criar Esquema

Cria um arquivo de esquema para a tabela ou exibição especificada.

Entrada
Nome Tipo Obrigatório Descrição
TableName String Verdade O nome da tabela ou exibição.
FileName String Verdade O caminho completo do arquivo e o nome do esquema a ser gerado. Ex: 'C:\Usuários\Usuário\Desktop\SmartSheet\sheet.rsd'
Colunas do Conjunto de Resultados
Nome Tipo Descrição
Result String Retorna Sucesso ou Falha.

Criar a Tabela

Cria uma tabela no DynamoDB.

Entrada
Nome Tipo Obrigatório Descrição
TableName String Verdade O nome da tabela a ser criada. São permitidos no mínimo 3 caracteres e no máximo 255 caracteres.
PartitionKeyName String Verdade O nome da chave de partição da tabela.
PartitionKeyType String Verdade O tipo da chave de partição para a tabela. Os valores permitidos são S, N, B.
SortKeyName String Falso O nome da chave de classificação da tabela.
SortKeyType String Falso O tipo da chave de classificação para a tabela. Os valores permitidos são S, N, B.
BillingMode String Falso Controla como você é cobrado pela taxa de transferência de leitura e gravação e como você gerencia a capacidade. Os valores permitidos são PROVISIONED, PAY_PER_REQUEST. O valor padrão é PROVISIONED.
ReadCapacityUnits String Falso O número máximo de leituras fortemente consistentes consumidas por segundo antes que o DynamoDB retorne uma ThrottlingException. O valor padrão é 5.
WriteCapacityUnits String Falso O número máximo de gravações consumidas por segundo antes que o DynamoDB retorne uma ThrottlingException. O valor padrão é 5.
Colunas do Conjunto de Resultados
Nome Tipo Descrição
Success String Este valor mostra se a operação foi bem-sucedida ou não.

Tabelas do Sistema

Você pode consultar as tabelas do sistema descritas nesta seção para acessar informações de esquema, informações sobre a funcionalidade da fonte de dados e estatísticas de operação em lote.

Tabelas de Esquema

As tabelas a seguir retornam metadados de banco de dados para Amazon DynamoDB:

Tabelas de Fonte de Dados

As tabelas a seguir retornam informações sobre como se conectar e consultar a fonte de dados:

  • sys_connection_props: Retorna informações sobre as propriedades de conexão disponíveis.
  • sys_sqlinfo: Descreve as consultas SELECT que o conector pode descarregar para a fonte de dados.

Consultar Tabelas de Informações

A tabela a seguir retorna estatísticas de consultar para consultas de modificação de dados, incluindo operações em lote:

  • sys_identity: Retorna informações sobre operações em lote ou atualizações únicas.

Sys_catalogs

Lista os bancos de dados disponíveis.

A consultar a seguir recupera todos os bancos de dados determinados pela string de conexão:

SELECT * FROM sys_catalogs
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados.

Sys_schemas

Lista os esquemas disponíveis.

A consultar a seguir recupera todos os esquemas disponíveis:

SELECT * FROM sys_schemas
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados.
SchemaName String O nome do esquema.

Sys_tables

Lista as tabelas disponíveis.

A consultar a seguir recupera as tabelas e exibições disponíveis:

SELECT * FROM sys_tables
Colunas
Nome Tipo Descrição
CatalogName String O banco de dados que contém a tabela ou exibição.
SchemaName String O esquema que contém a tabela ou exibição.
TableName String O nome da tabela ou exibição.
TableType String O tipo de tabela (tabela ou exibição).
Description String Uma descrição da tabela ou exibição.
IsUpdateable Boolean Se a tabela pode ser atualizada.

Sys_tablecolumns

Descreve as colunas das tabelas e exibições disponíveis.

A consultar a seguir retorna as colunas e os tipos de dados da tabela Account:

SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='Account' 
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados que contém a tabela ou exibição.
SchemaName String O esquema que contém a tabela ou exibição.
TableName String O nome da tabela ou exibição que contém a coluna.
ColumnName String O nome da coluna.
DataTypeName String O nome do tipo de dados.
DataType Int32 Um número inteiro indicando o tipo de dados. Esse valor é determinado no tempo de execução com base no ambiente.
Length Int32 O tamanho de armazenamento da coluna.
DisplaySize Int32 A largura máxima normal da coluna designada em caracteres.
NumericPrecision Int32 O número máximo de dígitos em dados numéricos. O comprimento da coluna em caracteres para caracteres e dados de data e hora.
NumericScale Int32 A escala da coluna ou o número de dígitos à direita do ponto decimal.
IsNullable Boolean Se a coluna pode conter null.
Description String Uma breve descrição da coluna.
Ordinal Int32 O número de sequência da coluna.
IsAutoIncrement String Se o valor da coluna é atribuído em incrementos fixos.
IsGeneratedColumn String Se a coluna é gerada.
IsHidden Boolean Se a coluna está oculta.
IsArray Boolean Se a coluna é uma matriz.

Sys_procedures

Lista os procedimentos armazenados disponíveis.

A consultar a seguir recupera os procedimentos armazenados disponíveis:

SELECT * FROM sys_procedures
Colunas
Nome Tipo Descrição
CatalogName String O banco de dados que contém o procedimento armazenado.
SchemaName String O esquema que contém o procedimento armazenado.
ProcedureName String O nome do procedimento armazenado.
Description String Uma descrição do procedimento armazenado.
ProcedureType String O tipo do procedimento, como PROCEDURE ou FUNCTION.

Sys_procedureparameters

Descreve procedimento armazenado* parâmetros.

A consultar a seguir retorna informações sobre todos os parâmetros de entrada para o procedimento armazenado CreateSchema:

SELECT * FROM sys_procedureparameters WHERE ProcedureName='CreateSchema' AND Direction=1 OR Direction=2
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados que contém o procedimento armazenado.
SchemaName String O nome do esquema que contém o procedimento armazenado.
ProcedureName String O nome do procedimento armazenado* contendo o parâmetro.
ColumnName String O nome do procedimento armazenado* parâmetro.
Direction Int32 Um número inteiro correspondente ao tipo do parâmetro: entrada (1), entrada/saída (2) ou saída (4). parâmetros de tipo de entrada/saída podem ser parâmetros de entrada e saída.
DataTypeName String O nome do tipo de dados.
DataType Int32 Um número inteiro indicando o tipo de dados. Esse valor é determinado no tempo de execução com base no ambiente.
Length Int32 O número de caracteres permitido para dados de caractere. O número de dígitos permitidos para dados numéricos.
NumericPrecision Int32 A precisão máxima para dados numéricos. O comprimento da coluna em caracteres para caracteres e dados de data e hora.
NumericScale Int32 O número de dígitos à direita do ponto decimal em dados numéricos.
IsNullable Boolean Se o parâmetro pode conter null.
IsRequired Boolean Se o parâmetro é necessário para a execução do procedimento.
IsArray Boolean Se o parâmetro é uma matriz.
Description String A descrição do parâmetro.
Ordinal Int32 O índice do parâmetro.

Sys_keycolumns

Descreve as chaves primárias e estrangeiras. A consultar a seguir recupera a chave primária da tabela Account:

SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='Account'
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados que contém a chave.
SchemaName String O nome do esquema que contém a chave.
TableName String O nome da tabela que contém a chave.
ColumnName String O nome da coluna chave.
IsKey Boolean Se a coluna é uma chave primária na tabela referenciada no campo TableName.
IsForeignKey Boolean Se a coluna é uma chave estrangeira referenciada no campo TableName.
PrimaryKeyName String O nome da chave primária.
ForeignKeyName String O nome da chave estrangeira.
ReferencedCatalogName String O banco de dados que contém a chave primária.
ReferencedSchemaName String O esquema que contém a chave primária.
ReferencedTableName String A tabela que contém a chave primária.
ReferencedColumnName String O nome da coluna da chave primária.

Sys_foreignkeys

Descreve as chaves estrangeiras. A consultar a seguir recupera todas as chaves estrangeiras que se referem a outras tabelas:

SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados que contém a chave.
SchemaName String O nome do esquema que contém a chave.
TableName String O nome da tabela que contém a chave.
ColumnName String O nome da coluna chave.
PrimaryKeyName String O nome da chave primária.
ForeignKeyName String O nome da chave estrangeira.
ReferencedCatalogName String O banco de dados que contém a chave primária.
ReferencedSchemaName String O esquema que contém a chave primária.
ReferencedTableName String A tabela que contém a chave primária.
ReferencedColumnName String O nome da coluna da chave primária.
ForeignKeyType String Designa se a chave estrangeira é uma chave de importação (aponta para outras tabelas) ou de exportação (referenciada de outras tabelas).

Sys_indexes

Descreve os índices disponíveis. Ao filtrar por índices, você pode escrever consultas mais seletivas com tempos de resposta de consultar mais rápidos.

A consultar a seguir recupera todos os índices que não são chaves primárias:

SELECT * FROM sys_indexes WHERE IsPrimary='false'
Colunas
Nome Tipo Descrição
CatalogName String O nome do banco de dados que contém o índice.
SchemaName String O nome do esquema que contém o índice.
TableName String O nome da tabela que contém o índice.
IndexName String O nome do índice.
ColumnName String O nome da coluna associada ao índice.
IsUnique Boolean True se o índice for exclusivo. Falso caso contrário.
IsPrimary Boolean Verdadeiro se o índice for uma chave primária. Falso caso contrário.
Type Int16 Um valor inteiro correspondente ao tipo de índice: estatística (0), agrupado (1), hash (2) ou outro (3).
SortOrder String A ordem de classificação: A para crescente ou D para decrescente.
OrdinalPosition Int16 O número de sequência da coluna no índice.

Sys_connection_props

Retorna informações sobre as propriedades de conexão disponíveis e as definidas na string de conexão.

Ao consultar esta tabela, a string de conexão de configuração deve ser usada:

jdbc:cdata:amazondynamodb:config:

Esta string de conexão permite que você consultar esta tabela sem uma conexão válida.

A consultar a seguir recupera todas as propriedades de conexão que foram definidas na string de conexão ou definidas por meio de um valor padrão:

SELECT * FROM sys_connection_props WHERE Value <> ''
Colunas
Nome Tipo Descrição
Name String O nome da propriedade de conexão.
ShortDescription String Uma breve descrição.
Type String O tipo de dados da propriedade de conexão.
Default String O valor padrão, se não houver um definido explicitamente.
Values String Uma lista separada por vírgulas de valores possíveis. Um erro de validação é lançado se outro valor for especificado.
Value String O valor que você definiu ou um padrão pré-configurado.
Required Boolean Se a propriedade é necessária para se conectar.
Category String A categoria da propriedade de conexão.
IsSessionProperty String Se a propriedade é uma propriedade de sessão, usada para salvar informações sobre a conexão atual.
Sensitivity String O nível de sensibilidade da propriedade. Isso informa se a propriedade é ofuscada nos formulários de registro e autenticação.
PropertyName String Uma forma truncada em camel case do nome da propriedade de conexão.
Ordinal Int32 O índice do parâmetro.
CatOrdinal Int32 O índice da categoria do parâmetro.
Hierarchy String Mostra as propriedades dependentes associadas que precisam ser definidas juntamente com esta.
Visible Boolean Informa se a propriedade está visível na UI da conexão.
ETC String Diversas informações diversas sobre o imóvel.

Sys_sqlinfo

Descreve o processamento da consultar SELECT que o conector pode transferir para a fonte de dados.

Processamento de Consulta Colaborativa

Ao trabalhar com fontes de dados que não suportam SQL-92, você pode consultar a exibição sys_sqlinfo para determinar os recursos de consultar das APIs subjacentes, expressas na sintaxe SQL. O conector transfere o máximo possível do processamento da instrução SELECT para o servidor e, em seguida, processa o restante da consultar na memória.

Descobrindo os Recursos SELECT da Fonte de Dados

Abaixo está um exemplo de conjunto de dados de recursos SQL. O conjunto de resultados a seguir indica a funcionalidade SELECT que o conector pode descarregar para a fonte de dados ou processar o lado do cliente. Sua fonte de dados pode suportar sintaxe SQL adicional. Alguns aspectos da funcionalidade SELECT são retornados em uma lista separada por vírgulas, se suportados; caso contrário, a coluna contém NO.

Nome Descrição Valores Possíveis
AGGREGATE_FUNCTIONS Funções de agregação suportadas. AVG, COUNT, MAX, MIN, SUM, DISTINCT
COUNT Se a função COUNT é suportada. YES, NO
IDENTIFIER_QUOTE_OPEN_CHAR O caractere de abertura usado para escapar de um identificador. [
IDENTIFIER_QUOTE_CLOSE_CHAR O caractere de fechamento usado para escapar de um identificador. ]
SUPPORTED_OPERATORS Uma lista de operadores SQL com suporte. =, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR
GROUP_BY Se GROUP BY é compatível e, em caso afirmativo, o grau de suporte. NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE
STRING_FUNCTIONS Funções de string suportadas. LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE
NUMERIC_FUNCTIONS Funções numéricas suportadas. ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE
TIMEDATE_FUNCTIONS Funções de data/hora suportadas. NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT
REPLICATION_SKIP_TABLES Indica tabelas ignoradas durante a replicação.
REPLICATION_TIMECHECK_COLUMNS Uma matriz de string contendo uma lista de colunas que serão usadas para verificar (na ordem especificada) para usar como uma coluna modificada durante a replicação.
IDENTIFIER_PATTERN Valor de string que indica qual string é válida para um identificador.
SUPPORT_TRANSACTION Indica se o provedor oferece suporte a transações como confirmação e reversão. YES, NO
DIALECT Indica o dialeto SQL a ser usado.
KEY_PROPERTIES Indica as propriedades que identificam o banco de dados uniforme.
SUPPORTS_MULTIPLE_SCHEMAS Indica se vários esquemas podem existir para o provedor. YES, NO
SUPPORTS_MULTIPLE_CATALOGS Indica se vários catálogos podem existir para o provedor. YES, NO
DATASYNCVERSION A versão do Data Sync necessária para acessar este driver. Standard, Starter, Professional, Enterprise
DATASYNCCATEGORY A categoria Data Sync deste driver. Source, Destination, Cloud Destination
SUPPORTSENHANCEDSQL Se a funcionalidade SQL aprimorada além do que é oferecido pela API é suportada. TRUE, FALSE
SUPPORTS_BATCH_OPERATIONS Se as operações em lote são suportadas. YES, NO
SQL_CAP Todos os recursos SQL suportados para este driver. SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX
PREFERRED_CACHE_OPTIONS Um valor de string especifica o cacheOptions preferencial.
ENABLE_EF_ADVANCED_QUERY Indica se o driver oferece suporte direto a consultas avançadas provenientes do Entity Framework. Caso contrário, as consultas serão tratadas no lado do cliente. YES, NO
PSEUDO_COLUMNS Uma matriz de cadeia de caracteres que indica as pseudocolunas disponíveis.
MERGE_ALWAYS Se o valor for verdadeiro, o modo de mesclagem será executado à força no Data Sync. TRUE, FALSE
REPLICATION_MIN_DATE_QUERY Uma consultar de seleção para retornar a data e hora de início da replicação.
REPLICATION_MIN_FUNCTION Permite que um provedor especifique o nome da fórmula a ser usado para executar um min do lado do servidor.
REPLICATION_START_DATE Permite que um provedor especifique uma data de início de replicação.
REPLICATION_MAX_DATE_QUERY Uma consultar de seleção para retornar a data e hora de término da replicação.
REPLICATION_MAX_FUNCTION Permite que um provedor especifique o nome da fórmula a ser usado para executar um máximo do lado do servidor.
IGNORE_INTERVALS_ON_INITIAL_REPLICATE Uma lista de tabelas que ignorará a divisão da replicação em blocos na replicação inicial.
CHECKCACHE_USE_PARENTID Indica se a instrução CheckCache deve ser executada na coluna de chave pai. TRUE, FALSE
CREATE_SCHEMA_PROCEDURES Indica procedimentos armazenados* que pode ser usado para gerar arquivos de esquema.

A consultar a seguir recupera os operadores que podem ser usados na cláusula WHERE:

SELECT * FROM sys_sqlinfo WHERE Name='SUPPORTED_OPERATORS'

Observe que tabelas individuais podem ter diferentes limitações ou requisitos na cláusula WHERE; consulte o Banco de Dados NoSQL para obter mais informações.

Colunas
Nome Tipo Descrição
NAME String Um componente da sintaxe SQL ou um recurso que pode ser processado no servidor.
VALUE String Detalhes sobre a sintaxe SQL ou SQL suportada.

Sys_identity

Retorna informações sobre tentativas de modificação.

A consultar a seguir recupera os IDs das linhas modificadas em uma operação em lote:

SELECT * FROM sys_identity
Colunas
Nome Tipo Descrição
Id String O ID gerado pelo banco de dados retornado de uma operação de modificação de dados.
Batch String Um identificador para o lote. 1 para uma única operação.
Operation String O resultado da operação no lote: INSERTED, UPDATED ou DELETED.
Message String SUCCESS ou uma mensagem de erro se a atualização no lote falhou.

Propriedades de Configurações Avançadas

As propriedades de configurações avançadas são as várias opções que podem ser usadas para estabelecer uma conexão. Esta seção fornece uma lista completa das opções que você pode configurar. Clique nos links para mais detalhes.

Autenticação da AWS

Propriedade Descrição
AuthScheme O esquema usado para autenticação. As entradas aceitas são: Auto,, AwsRootKeys, AwsIAMRoles, AwsEC2Roles, AwsMFA, ADFS, Okta, PingFederate, AwsCredentialsFile, AwsCognitoBasic, AwsCognitoSrp.
Domain Seu nome de domínio da AWS. Opcionalmente, você pode optar por associar seu nome de domínio à AWS.
AWSAccessKey Sua chave de acesso da conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.
AWSSecretKey A chave secreta da sua conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.
AWSRoleARN O nome de recurso da Amazon da papel a ser usada durante a autenticação.
AWSRegion A região de hospedagem do seu Amazon Web Services.
AWSCredentialsFile O caminho para o arquivo de credenciais da AWS a ser usado para autenticação.
AWSCredentialsFileProfile O nome do perfil a ser usado do AWSCredentialsFile fornecido.
AWSSessionToken Seu token de sessão da AWS.
AWSExternalId Um identificador exclusivo que pode ser necessário quando você assume uma papel em outra conta.
MFASerialNumber O número de série do dispositivo MFA, se estiver sendo usado.
MFAToken O token temporário disponível em seu dispositivo MFA.
TemporaryTokenDuration A quantidade de tempo (em segundos) que um token temporário durará.
AWSCognitoRegion A região de hospedagem do AWS Cognito.
AWSUserPoolId A ID do grupo de usuários.
AWSUserPoolClientAppId A ID do aplicativo do cliente do grupo de usuários.
AWSUserPoolClientAppSecret Opcional. O segredo do aplicativo do cliente do grupo de usuários.
AWSIdentityPoolId O ID do pool de identidades.

SSO

Propriedade Descrição
User O usuário IDP usado para autenticar o IDP via SSO.
Password A senha usada para autenticar o usuário IDP via SSO.
SSOLoginURL A URL de login do provedor de identidade.
SSOProperties Propriedades adicionais necessárias para se conectar ao provedor de identidade em uma lista separada por ponto e vírgula.
SSOExchangeUrl A URL usada para consumir a resposta SAML e trocá-la com credenciais específicas do Amazon DynamoDB.

SSL

Propriedade Descrição
SSLServerCert O certificado a ser aceito do servidor ao conectar usando TLS/SSL.

Esquema

Propriedade Descrição
Location Um caminho para o diretório que contém os arquivos de esquema que definem tabelas, exibições e procedimentos armazenados.
BrowsableSchemas Essa propriedade restringe os esquemas relatados a um subconjunto dos esquemas disponíveis. Por exemplo, BrowsableSchemas=SchemaA, SchemaB, SchemaC.
Tables Esta propriedade restringe as tabelas reportadas a um subconjunto das tabelas disponíveis. Por exemplo, Tables=TableA, TableB, TableC.
Views Restringe as visualizações relatadas a um subconjunto das tabelas disponíveis. Por exemplo, Views=ViewA, ViewB, ViewC.

Diversos

Propriedade Descrição
AutoDetectIndex Um booleano que indica se os índices secundários devem ser detectados automaticamente com base na consultar usada.
FlattenArrays Por padrão, arrays aninhados são retornados como strings de JSON. A propriedade FlattenArrays pode ser usada para nivelar os elementos de matrizes aninhadas em colunas próprias. Defina FlattenArrays para o número de elementos que você deseja retornar de matrizes aninhadas.
FlattenObjects Defina FlattenObjects como true para nivelar as propriedades do objeto em colunas próprias. Caso contrário, os objetos aninhados em arrays são retornados como strings de JSON.
FlexibleSchema Defina FlexibleSchema como true para verificar metadados adicionais no conjunto de resultados da consultar. Caso contrário, os metadados permanecerão os mesmos.
GenerateSchemaFiles Indica a preferência do usuário quanto a quando os esquemas devem ser gerados e salvos.
IgnoreTypes Remove o suporte para os tipos especificados. Por exemplo, Tempo. Esses tipos serão relatados como strings.
MaximumRequestRetries O número máximo de vezes para repetir uma solicitação.
MaxRows Limita o número de linhas retornadas quando nenhuma agregação ou agrupamento é usado na consultar. Isso ajuda a evitar problemas de desempenho em tempo de design.
Other Essas propriedades ocultas são usadas apenas em casos de uso específicos.
Pagesize O número máximo de resultados a serem retornados por página do Amazon DynamoDB.
PseudoColumns Esta propriedade indica se deve ou não incluir pseudocolunas como colunas na tabela.
RetryWaitTime O número mínimo de milissegundos que o provedor aguardará para tentar novamente uma solicitação.
RowScanDepth O número máximo de linhas a serem verificadas para procurar as colunas disponíveis em uma tabela.
SeparatorCharacter O caractere ou caracteres usados para denotar hierarquia.
ThreadCount O número de encadeamentos a serem usados ao selecionar dados por meio de uma verificação paralela. Definir ThreadCount como 1 desativará as verificações paralelas.
Timeout O valor em segundos até que o erro de timeout seja lançado, cancelando a operação.
TypeDetectionScheme Determina como determinar o tipo de dados das colunas.
UseBatchWriteItemOperation Quando ativado, o provedor usará a operação BatchWriteItem para lidar com atualizações e inserções. Por padrão, o provedor usa a operação ExecuteStatement/BatchExecuteStatement. Você precisa habilitar BatchWriteItem somente ao inserir/atualizar dados binários/conjunto binário. ExecuteStatement/BatchExecuteStatement não oferece suporte à manipulação de campos binários.
UseConsistentReads Sempre usar leituras consistentes ou não ao consultar o DynamoDb.
UseSimpleNames Booleano determinando se nomes simples devem ser usados para tabelas e colunas.

Autenticação da AWS

Esta seção fornece uma lista completa das propriedades de autenticação da AWS que você pode configurar.

Propriedade Descrição
AuthScheme O esquema usado para autenticação. As entradas aceitas são: Auto,, AwsRootKeys, AwsIAMRoles, AwsEC2Roles, AwsMFA, ADFS, Okta, PingFederate, AwsCredentialsFile, AwsCognitoBasic, AwsCognitoSrp.
Domain Seu nome de domínio da AWS. Opcionalmente, você pode optar por associar seu nome de domínio à AWS.
AWSAccessKey Sua chave de acesso da conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.
AWSSecretKey A chave secreta da sua conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.
AWSRoleARN O nome de recurso da Amazon da papel a ser usada durante a autenticação.
AWSRegion A região de hospedagem do seu Amazon Web Services.
AWSCredentialsFile O caminho para o arquivo de credenciais da AWS a ser usado para autenticação.
AWSCredentialsFileProfile O nome do perfil a ser usado do AWSCredentialsFile fornecido.
AWSSessionToken Seu token de sessão da AWS.
AWSExternalId Um identificador exclusivo que pode ser necessário quando você assume uma papel em outra conta.
MFASerialNumber O número de série do dispositivo MFA, se estiver sendo usado.
MFAToken O token temporário disponível em seu dispositivo MFA.
TemporaryTokenDuration A quantidade de tempo (em segundos) que um token temporário durará.
AWSCognitoRegion A região de hospedagem do AWS Cognito.
AWSUserPoolId A ID do grupo de usuários.
AWSUserPoolClientAppId A ID do aplicativo do cliente do grupo de usuários.
AWSUserPoolClientAppSecret Opcional. O segredo do aplicativo do cliente do grupo de usuários.
AWSIdentityPoolId O ID do pool de identidades.

AuthScheme

O esquema usado para autenticação. As entradas aceitas são: Auto,, AwsRootKeys, AwsIAMRoles, AwsEC2Roles, AwsMFA, ADFS, Okta, PingFederate, AwsCredentialsFile, AwsCognitoBasic, AwsCognitoSrp.

Valores Possíveis

Auto, ADFS, AwsRootKeys, AwsIAMRoles, AwsEC2Roles, AwsMFA, AwsCredentialsFile, Okta, TemporaryCredentials, PingFederate, AwsCognitoBasic, AwsCognitoSrp

Tipo de Dados

string

Valor Padrão

"Auto"

Observações

Use as seguintes opções para selecionar seu esquema de autenticação:

  • Automático: defina para que o conector tente resolver automaticamente o esquema de autenticação adequado a ser usado com base nas outras propriedades de conexão especificadas.
  • TemporaryCredentials: defina isso para aproveitar as credenciais de segurança temporárias junto com um token de sessão para se conectar.
  • AwsRootKeys: defina isso para usar a chave de acesso e o segredo do usuário root. Útil para testes rápidos, mas os casos de uso de produção são encorajados a usar algo com permissões restritas.
  • AwsIAMRoles: definido para usar funções IAM para a conexão.
  • AwsEC2Roles: defina isso para usar automaticamente as funções IAM atribuídas à máquina EC2 em que o conector Jitterbit para Amazon DynamoDB está sendo executado no momento.
  • AwsMFA: definido para usar a autenticação multifator.
  • Okta: Defina para usar uma conexão de logon único com OKTA como o provedor de identidade.
  • ADFS: definido para usar uma conexão de logon único com ADFS como o provedor de identidade.
  • PingFederate: definido para usar uma conexão de logon único com PingFederate como o provedor de identidade.
  • AwsCredentialsFile: definido para usar um arquivo de credencial para autenticação.
  • AwsCognitoSrp: definido para usar a autenticação baseada em Cognito. Isso é recomendado sobre AwsCognitoBasic porque essa opção NÃO envia a senha ao servidor para autenticação, em vez disso, usa o protocolo SRP.
  • AwsCognitoBasic: definido para usar a autenticação baseada em Cognito.

Domínio

Seu nome de domínio da AWS. Opcionalmente, você pode optar por associar seu nome de domínio à AWS.

Tipo de Dados

string

Valor Padrão

"amazonaws.com"

Observações

Se você não tiver um nome de domínio exclusivo da AWS, deixe esse valor especificado como amazonaws.com.

AWSAccessKey

Sua chave de acesso da conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.

Tipo de Dados

string

Valor Padrão

""

Observações

Sua chave de acesso da conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS:

  1. Faça login no console de gerenciamento da AWS com as credenciais de sua conta raiz.
  2. Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
  3. Clique em Continuar para credenciais de segurança e expanda a seção Chaves de acesso para gerenciar ou criar chaves de acesso de conta raiz.

AWSSecretKey

A chave secreta da sua conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS.

Tipo de Dados

string

Valor Padrão

""

Observações

A chave secreta da sua conta da AWS. Esse valor pode ser acessado na página de credenciais de segurança da AWS:

  1. Faça login no console de gerenciamento da AWS com as credenciais de sua conta root.
  2. Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
  3. Clique em Continuar para credenciais de segurança e expanda a seção Chaves de acesso para gerenciar ou criar chaves de acesso de conta raiz.

AWSRoleARN

O nome de recurso da Amazon da papel a ser usada durante a autenticação.

Tipo de Dados

string

Valor Padrão

""

Observações

Ao autenticar fora da AWS, é comum usar uma função para autenticação em vez de suas credenciais diretas da conta da AWS. Entrando no AWSRoleARN fará com que o Conector Jitterbit para Amazon DynamoDB execute uma autenticação baseada em papel em vez de usar a AWSAccessKey e AWSSecretKey diretamente. A AWSAccessKey e AWSSecretKey ainda deve ser especificado para executar esta autenticação. Você não pode usar as credenciais de um usuário raiz da AWS ao definir RoleARN. A AWSAccessKey e AWSSecretKey devem ser de um usuário do IAM.

AWSRegion

A região de hospedagem do seu Amazon Web Services.

Valores Possíveis

OHIO, NORTHERNVIRGINIA, NORTHERNCALIFORNIA, OREGON, CAPETOWN, HONGKONG, MUMBAI, OSAKA, SEOUL, SINGAPORE, SYDNEY, TOKYO, CENTRAL, BEIJING, NINGXIA, FRANKFURT, IRELAND, LONDON, MILAN, PARIS, STOCKHOLM, BAHRAIN, SAOPAULO, GOVCLOUDEAST, GOVCLOUDWEST

Tipo de Dados

string

Valor Padrão

"NORTHERNVIRGINIA"

Observações

A região de hospedagem do seu Amazon Web Services. Os valores disponíveis são Ohio, NorthernVirginia, NorthernCalifornia, Oregon, Capetown, Hong Kong, Mumbai, Osaka, Seul, Cingapura, Sydney, Tóquio, Central, Pequim, Ningxia, Frankfurt, Ireland, Londres, Milan, Paris, Stockholm, Bahrain, SAUL, SALFURT, SALAND, SALAN, MILAN, GOLAN, PARIS, BAHRAIN, e GOVCLOUDWEST.

AWSCredentialsFile

O caminho para o arquivo de credenciais da AWS a ser usado para autenticação.

Tipo de Dados

string

Valor Padrão

""

Observações

O caminho para o arquivo de credenciais da AWS a ser usado para autenticação. Ver https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html Para maiores informações.

AWSCredentialsFileProfile

O nome do perfil a ser usado do AWSCredentialsFile fornecido.

Tipo de Dados

string

Valor Padrão

"default"

Observações

O nome do perfil a ser usado do AWSCredentialsFile fornecido. Ver https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html Para maiores informações.

AWSSessionToken

Seu token de sessão da AWS.

Tipo de Dados

string

Valor Padrão

""

Observações

Seu token de sessão da AWS. Esse valor pode ser recuperado de diferentes maneiras. Veja este link para mais informações.

AWSExternalId

Um identificador exclusivo que pode ser necessário quando você assume uma papel em outra conta.

Tipo de Dados

string

Valor Padrão

""

Observações

Um identificador exclusivo que pode ser necessário quando você assume uma papel em outra conta.

MFASerialNumber

O número de série do dispositivo MFA, se estiver sendo usado.

Tipo de Dados

string

Valor Padrão

""

Observações

Você pode encontrar o dispositivo de um usuário do IAM acessando o Management Console da AWS e visualizando as credenciais de segurança do usuário. Para dispositivos virtuais, na verdade, é um nome de recurso da Amazon (como arn:aws:iam:123456789012:mfa/user).

MFAToken

O token temporário disponível em seu dispositivo MFA.

Tipo de Dados

string

Valor Padrão

""

Observações

Se o MFA for necessário, esse valor será usado junto com o MFASerialNumber para recuperar credenciais temporárias para fazer login. As credenciais temporárias disponíveis na AWS duram apenas 1 hora por padrão (consulte TemporaryTokenDuration). Uma vez esgotado o tempo, a conexão deve ser atualizada para especificar um novo token MFA para que novas credenciais possam ser obtidas.

TemporaryTokenDuration

A quantidade de tempo (em segundos) que um token temporário durará.

Tipo de Dados

string

Valor Padrão

"3600"

Observações

Tokens temporários são usados com MFA e autenticação baseada em função. Os tokens temporários acabarão por expirar, momento em que um novo token temporário deve ser obtido. Para situações em que o MFA não é usado, isso não é grande coisa. O conector Jitterbit para Amazon DynamoDB solicitará internamente um novo token temporário assim que o token temporário expirar.

No entanto, para conexão MFA necessária, um novo MFAToken deve ser especificado na conexão para recuperar um novo token temporário. Este é um problema mais intrusivo, pois requer uma atualização da conexão por parte do usuário. O máximo e o mínimo que podem ser especificados dependerão muito da conexão que está sendo usada.

Para autenticação baseada em função, a duração mínima é de 900 segundos (15 minutos), enquanto a máxima é de 3600 (1 hora). Mesmo que o MFA seja usado com autenticação baseada em papel, 3600 ainda é o máximo.

Para autenticação MFA por si só (usando um usuário IAM ou usuário root), o mínimo é 900 segundos (15 minutos), o máximo é 129600 (36 horas).

AWSCognitoRegion

A região de hospedagem do AWS Cognito.

Valores Possíveis

OHIO, NORTHERNVIRGINIA, NORTHERNCALIFORNIA, OREGON, CAPETOWN, HONGKONG, MUMBAI, OSAKA, SEOUL, SINGAPORE, SYDNEY, TOKYO, CENTRAL, BEIJING, NINGXIA, FRANKFURT, IRELAND, LONDON, MILAN, PARIS, STOCKHOLM, BAHRAIN, SAOPAULO, GOVCLOUDEAST, GOVCLOUDWEST

Tipo de Dados

string

Valor Padrão

"NORTHERNVIRGINIA"

Observações

A região de hospedagem do AWS Cognito. Os valores disponíveis são Ohio, NorthernVirginia, NorthernCalifornia, Oregon, Capetown, Hong Kong, Mumbai, Osaka, Seul, Cingapura, Sydney, Tóquio, Central, Pequim, Ningxia, Frankfurt, Ireland, Londres, Milan, Paris, Stockholm, Bahrain, SAUL, SALFURT, SALAND, SALAN, MILAN, GOLAN, PARIS, BAHRAIN, e GOVCLOUDWEST.

AWSUserPoolId

A ID do grupo de usuários.

Tipo de Dados

string

Valor Padrão

""

Observações

Você pode encontrar isso em AWS Cognito -> Gerenciar grupos de usuários -> selecione seu grupo de usuários -> Configurações gerais -> Identificação do pool.

AWSUserPoolClientAppId

A ID do aplicativo do cliente do grupo de usuários.

Tipo de Dados

string

Valor Padrão

""

Observações

Você pode encontrar isso em AWS Cognito -> Gerenciar pools de identidades -> selecione seu grupo de usuários -> Configurações gerais -> Clientes de aplicativos -> ID do cliente do aplicativo.

AWSUserPoolClientAppSecret

Opcional. O segredo do aplicativo do cliente do grupo de usuários.

Tipo de Dados

string

Valor Padrão

""

Observações

Você pode encontrar isso em AWS Cognito -> Gerenciar pools de identidades -> selecione seu grupo de usuários -> Configurações gerais -> Clientes de aplicativos -> Segredo do cliente do aplicativo.

AWSIdentityPoolId

O ID do pool de identidades.

Tipo de Dados

string

Valor Padrão

""

Observações

Você pode encontrar isso em AWS Cognito -> Gerenciar pools de identidades -> selecione seu grupo de identidades -> Editar grupo de identidades -> ID do conjunto de identidades

SSO

Esta seção fornece uma lista completa de propriedades SSO que você pode configurar.

Propriedade Descrição
User O usuário IDP usado para autenticar o IDP via SSO.
Password A senha usada para autenticar o usuário IDP via SSO.
SSOLoginURL A URL de login do provedor de identidade.
SSOProperties Propriedades adicionais necessárias para se conectar ao provedor de identidade em uma lista separada por ponto e vírgula.
SSOExchangeUrl A URL usada para consumir a resposta SAML e trocá-la com credenciais específicas do Amazon DynamoDB.

Do Utilizador

O usuário IDP usado para autenticar o IDP via SSO.

Tipo de Dados

string

Valor Padrão

""

Observações

Juntamente com Senha, esse campo é usado para autenticação em conexões SSO no servidor Amazon DynamoDB.

Senha

A senha usada para autenticar o usuário IDP via SSO.

Tipo de Dados

string

Valor Padrão

""

Observações

O usuário e Password são usados juntos em conexões SSO para autenticação com o servidor.

SSOLoginURL

A URL de login do provedor de identidade.

Tipo de Dados

string

Valor Padrão

""

Observações

A URL de login do provedor de identidade.

Propriedades SSO

Propriedades adicionais necessárias para se conectar ao provedor de identidade em uma lista separada por ponto e vírgula.

Tipo de Dados

string

Valor Padrão

""

Observações

Propriedades adicionais necessárias para se conectar ao provedor de identidade em uma lista separada por ponto e vírgula. SSOProperties é usado em conjunto com o AWSRoleARN e AWSPrincipalARN. A seção a seguir fornece um exemplo usando o provedor de identidade OKTA.

Autenticação com ADFS

Defina o AuthScheme para ADFS. As seguintes propriedades de conexão precisam ser definidas:

  • Do utilizador: Defina isso para o usuário ADFS.
  • Senha: Defina isso como a senha do ADFS para o usuário.
  • SSOLoginURL: Defina isso para a URL de login usada pelo provedor SSO.

Abaixo está um exemplo de string de conexão:

AuthScheme=ADFS; AWSRegion=Ireland; User=user@cdata.com; Password=CH8WerW121235647iCa6; SSOLoginURL='https://adfs.domain.com'; AWSRoleArn=arn:aws:iam:1234:role/ADFS_SSO; AWSPrincipalArn=arn:aws:iam:1234:saml-provider/ADFSProvider; S3StagingDirectory=s3://athena/staging;
ADFS Integrado

O fluxo integrado do ADFS indica que você está se conectando com o currently logged in Windows user credentials. Para usar o fluxo integrado do ADFS, simplesmente não especifique o Usuário e senha, caso contrário, siga as mesmas etapas no guia ADFS acima.

Autenticação com Okta

Defina o AuthScheme para Okta. As seguintes propriedades de conexão são usadas para se conectar ao Okta:

  • Do utilizador: Defina isso para o usuário Okta.
  • Senha: Defina isso como senha do Okta para o usuário.
  • SSOLoginURL: Defina isso para a URL de login usada pelo provedor SSO.

A seguir SSOProperties são necessários para autenticar no Okta:

  • APIToken (opcional): defina como o API Token que o cliente criou a partir da organização Okta. Ele deve ser usado ao autenticar um usuário por meio de um aplicativo ou proxy confiável que substitui o contexto de solicitação do cliente OKTA.
  • MFAType (opcional): Defina isso apenas caso você tenha configurado o fluxo de MFA. Atualmente suportamos apenas os seguintes tipos: OktaVerify, E-mail e SMS.
  • MFAPassCode (opcional): Defina isso apenas caso você tenha configurado o fluxo de MFA. Se estiver definido como vazio/inválido, o driver emitirá inicialmente um desafio de MFA que acionará a plataforma para enviar a você uma senha de uso único em seu dispositivo ou e-mail, com base no tipo de MFA configurado. Você precisa reemitir outra conexão em que o valor da senha única recuperada é passado para a propriedade de conexão MFAPassCode.

Veja a seguir um exemplo de string de conexão:

AuthScheme=Okta; AWSRegion=Ireland; User=user@cdata.com; Password=CH8WerW121235647iCa6; SSOLoginURL='https://cdata-us.okta.com/home/amazon_aws/0oa35m8arsAL5f5NrE6NdA356/272'; SSOProperties='ApiToken=01230GGG2ceAnm_tPAf4MhiMELXZ0L0N1pAYrO1VR-hGQSf;'; AWSRoleArn=arn:aws:iam:1234:role/Okta_SSO; AWSPrincipalARN=arn:aws:iam:1234:saml-provider/OktaProvider; S3StagingDirectory=s3://athena/staging;

SSOExchangeUrl

A URL usada para consumir a resposta SAML e trocá-la com credenciais específicas do Amazon DynamoDB.

Tipo de Dados

string

Valor Padrão

""

Observações

O conector Jitterbit para Amazon DynamoDB usará o URL especificado aqui para consumir uma resposta SAML e recuperar credenciais específicas do Amazon DynamoDB. As credenciais recuperadas são a peça final durante a conexão SSO usada para se comunicar com o Amazon DynamoDB.

SSL

Esta seção fornece uma lista completa de propriedades SSL que você pode configurar.

Propriedade Descrição
SSLServerCert O certificado a ser aceito do servidor ao conectar usando TLS/SSL.

SSLServerCert

O certificado a ser aceito do servidor ao conectar usando TLS/SSL.

Tipo de Dados

string

Valor Padrão

""

Observações

Se estiver usando uma conexão TLS/SSL, esta propriedade pode ser usada para especificar o certificado TLS/SSL a ser aceito do servidor. Qualquer outro certificado que não seja confiável para a máquina é rejeitado.

Esta propriedade pode assumir as seguintes formas:

Descrição Exemplo
Um certificado PEM completo (exemplo abreviado para concisão) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
Um caminho para um arquivo local contendo o certificado C:\cert.cer
A chave pública (exemplo abreviado para concisão) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
O Thumbprint MD5 (os valores hexadecimais também podem ser separados por espaço ou dois-pontos) ecadbdda5a1529c58a1e9e09828d70e4
A impressão digital SHA1 (os valores hexadecimais também podem ser separados por espaço ou dois-pontos) 34a929226ae0819f2ec14b4a3d904f801cbb150d

Se não for especificado, qualquer certificado confiável pela máquina será aceito.

Os certificados são validados como confiáveis pela máquina com base no armazenamento confiável do sistema. O armazenamento confiável usado é o valor 'javax.net.ssl.trustStore' especificado para o sistema. Se nenhum valor for especificado para esta propriedade, o armazenamento confiável padrão do Java será usado (por exemplo, JAVA_HOME\lib\security\cacerts).

Use '*' para indicar a aceitação de todos os certificados. Observe que isso não é recomendado devido a questões de segurança.

Esquema

Esta seção fornece uma lista completa de propriedades de esquema que você pode configurar.

Propriedade Descrição
Location Um caminho para o diretório que contém os arquivos de esquema que definem tabelas, exibições e procedimentos armazenados.
BrowsableSchemas Essa propriedade restringe os esquemas relatados a um subconjunto dos esquemas disponíveis. Por exemplo, BrowsableSchemas=SchemaA, SchemaB, SchemaC.
Tables Esta propriedade restringe as tabelas reportadas a um subconjunto das tabelas disponíveis. Por exemplo, Tables=TableA, TableB, TableC.
Views Restringe as visualizações relatadas a um subconjunto das tabelas disponíveis. Por exemplo, Views=ViewA, ViewB, ViewC.

Localização

Um caminho para o diretório que contém os arquivos de esquema que definem tabelas, exibições e procedimentos armazenados.

Tipo de Dados

string

Valor Padrão

"%APPDATA%\\\AmazonDynamoDB Data Provider\\Schema"

Observações

O caminho para um diretório que contém os arquivos de esquema para o conector (arquivos .rsd para tabelas e exibições, arquivos .rsb para procedimentos armazenados). A localização da pasta pode ser um caminho relativo a partir da localização do executável. O Location a propriedade só é necessária se você quiser personalizar definições (por exemplo, alterar um nome de coluna, ignorar uma coluna e assim por diante) ou estender o modelo de dados com novas tabelas, exibições ou procedimentos armazenados.

Se não for especificado, o local padrão é "%APPDATA%\\AmazonDynamoDB Data Provider\Schema" com %APPDATA% sendo definido para o diretório de configuração do usuário:

Plataforma %APPDATA%
Windows O valor da variável de ambiente APPDATA
Mac ~/Biblioteca/Suporte de aplicativos
Linux ~/.config

Esquemas Navegáveis

Essa propriedade restringe os esquemas relatados a um subconjunto dos esquemas disponíveis. Por exemplo, BrowsableSchemas=SchemaA,SchemaB,SchemaC.

Tipo de Dados

string

Valor Padrão

""

Observações

Listar os esquemas de bancos de dados pode ser caro. Fornecer uma lista de esquemas na string de conexão melhora o desempenho.

Tabelas

Esta propriedade restringe as tabelas reportadas a um subconjunto das tabelas disponíveis. Por exemplo, Tabelas=TabelaA,TabelaB,TabelaC.

Tipo de Dados

string

Valor Padrão

""

Observações

Listar as tabelas de alguns bancos de dados pode ser caro. Fornecer uma lista de tabelas na string de conexão melhora o desempenho do conector.

Essa propriedade também pode ser usada como uma alternativa para listar automaticamente as exibições se você já souber com quais deseja trabalhar e, caso contrário, haveria muitas para trabalhar.

Especifique as tabelas que deseja em uma lista separada por vírgulas. Cada tabela deve ser um identificador SQL válido com quaisquer caracteres especiais escapados usando colchetes, aspas duplas ou acentos graves. Por exemplo, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Observe que, ao conectar-se a uma fonte de dados com vários esquemas ou catálogos, você precisará fornecer o nome totalmente qualificado da tabela nesta propriedade, como no último exemplo aqui, para evitar ambigüidade entre tabelas que existem em vários catálogos ou esquemas.

Visualizações

Restringe as visualizações relatadas a um subconjunto das tabelas disponíveis. Por exemplo, Views=ViewA,ViewB,ViewC.

Tipo de Dados

string

Valor Padrão

""

Observações

Listar as exibições de alguns bancos de dados pode ser caro. Fornecer uma lista de exibições na string de conexão melhora o desempenho do conector.

Essa propriedade também pode ser usada como uma alternativa para listar automaticamente as exibições se você já souber com quais deseja trabalhar e, caso contrário, haveria muitos para trabalhar.

Especifique as exibições desejadas em uma lista separada por vírgulas. Cada exibição deve ser um identificador SQL válido com quaisquer caracteres especiais escapados usando colchetes, aspas duplas ou acentos graves. Por exemplo, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Observe que, ao conectar-se a uma fonte de dados com vários esquemas ou catálogos, você precisará fornecer o nome totalmente qualificado da tabela nesta propriedade, como no último exemplo aqui, para evitar ambigüidade entre tabelas que existem em vários catálogos ou esquemas.

Diversos

Esta seção fornece uma lista completa de diversas propriedades que você pode configurar.

Propriedade Descrição
AutoDetectIndex Um booleano que indica se os índices secundários devem ser detectados automaticamente com base na consultar usada.
FlattenArrays Por padrão, arrays aninhados são retornados como strings de JSON. A propriedade FlattenArrays pode ser usada para nivelar os elementos de matrizes aninhadas em colunas próprias. Defina FlattenArrays para o número de elementos que você deseja retornar de matrizes aninhadas.
FlattenObjects Defina FlattenObjects como true para nivelar as propriedades do objeto em colunas próprias. Caso contrário, os objetos aninhados em arrays são retornados como strings de JSON.
FlexibleSchema Defina FlexibleSchema como true para verificar metadados adicionais no conjunto de resultados da consultar. Caso contrário, os metadados permanecerão os mesmos.
GenerateSchemaFiles Indica a preferência do usuário quanto a quando os esquemas devem ser gerados e salvos.
IgnoreTypes Remove o suporte para os tipos especificados. Por exemplo, Tempo. Esses tipos serão relatados como strings.
MaximumRequestRetries O número máximo de vezes para repetir uma solicitação.
MaxRows Limita o número de linhas retornadas quando nenhuma agregação ou agrupamento é usado na consultar. Isso ajuda a evitar problemas de desempenho em tempo de design.
Other Essas propriedades ocultas são usadas apenas em casos de uso específicos.
Pagesize O número máximo de resultados a serem retornados por página do Amazon DynamoDB.
PseudoColumns Esta propriedade indica se deve ou não incluir pseudocolunas como colunas na tabela.
RetryWaitTime O número mínimo de milissegundos que o provedor aguardará para tentar novamente uma solicitação.
RowScanDepth O número máximo de linhas a serem verificadas para procurar as colunas disponíveis em uma tabela.
SeparatorCharacter O caractere ou caracteres usados para denotar hierarquia.
ThreadCount O número de encadeamentos a serem usados ao selecionar dados por meio de uma verificação paralela. Definir ThreadCount como 1 desativará as verificações paralelas.
Timeout O valor em segundos até que o erro de timeout seja lançado, cancelando a operação.
TypeDetectionScheme Determina como determinar o tipo de dados das colunas.
UseBatchWriteItemOperation Quando ativado, o provedor usará a operação BatchWriteItem para lidar com atualizações e inserções. Por padrão, o provedor usa a operação ExecuteStatement/BatchExecuteStatement. Você precisa habilitar BatchWriteItem somente ao inserir/atualizar dados binários/conjunto binário. ExecuteStatement/BatchExecuteStatement não oferece suporte à manipulação de campos binários.
UseConsistentReads Sempre usar leituras consistentes ou não ao consultar o DynamoDb.
UseSimpleNames Booleano determinando se nomes simples devem ser usados para tabelas e colunas.

AutoDetectIndex

Um booleano que indica se os índices secundários devem ser detectados automaticamente com base na consultar usada.

Tipo de Dados

bool

Valor Padrão

true

Observações

No DynamoDB, você pode usar índices secundários para selecionar dados mais rapidamente de uma determinada tabela. Por padrão, tentamos detectar automaticamente um índice a ser usado com base nos critérios de consultar. No entanto, isso nem sempre pode ser desejável. Para desativar a lógica de detecção de índice, defina a propriedade como false ou, se você tiver controle sobre a consultar e preferir especificar o índice por conta própria, use a pseudocoluna SecondaryIndexName para especificar qual índice usar (se houver).

FlattenArrays

Por padrão, arrays aninhados são retornados como strings de JSON. A propriedade FlattenArrays pode ser usada para nivelar os elementos de matrizes aninhadas em colunas próprias. Defina FlattenArrays para o número de elementos que você deseja retornar de matrizes aninhadas.

Tipo de Dados

string

Valor Padrão

""

Observações

Por padrão, arrays aninhados são retornados como strings de JSON. O FlattenArrays propriedade pode ser usada para nivelar os elementos de arrays aninhados em colunas próprias. Isso é recomendado apenas para arrays que devem ser curtos.

Definir FlattenArrays para o número de elementos que você deseja retornar de arrays aninhados. Os elementos especificados são retornados como colunas. O índice baseado em zero é concatenado ao nome da coluna. Outros elementos são ignorados.

Por exemplo, você pode retornar um número arbitrário de elementos de um array de strings:

["FLOW-MATIC","LISP","COBOL"]

Quando FlattenArrays é definido como 1, a matriz anterior é simplificada na tabela a seguir:

Nome da coluna Valor da coluna
languages_0 FLOW-MATIC

Flatten Objects

Defina FlattenObjects como true para nivelar as propriedades do objeto em colunas próprias. Caso contrário, os objetos aninhados em arrays são retornados como strings de JSON.

Tipo de Dados

bool

Valor Padrão

true

Observações

Definir FlattenObjects para true para achatar as propriedades do objeto em colunas próprias. Caso contrário, os objetos aninhados em arrays são retornados como strings de JSON. O nome da propriedade é concatenado no nome do objeto com um sublinhado para gerar o nome da coluna.

Por exemplo, você pode nivelar os objetos aninhados abaixo no momento da conexão:

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]

Quando FlattenObjects é definido como verdadeiro e FlattenArrays é definido como 1, a matriz anterior é simplificada na tabela a seguir:

Nome da coluna Valor da coluna
grades_0_grade A
grades_0_score 2

Esquema Flexível

Defina FlexibleSchema como true para verificar metadados adicionais no conjunto de resultados da consultar. Caso contrário, os metadados permanecerão os mesmos.

Tipo de Dados

bool

Valor Padrão

true

Observações

Definir FlexibleSchema para true para verificar metadados adicionais no conjunto de resultados da consultar. Caso contrário, os metadados permanecerão os mesmos.

GenerateSchemaFiles

Indica a preferência do usuário quanto a quando os esquemas devem ser gerados e salvos.

Valores Possíveis

Never, OnUse, OnStart, OnCreate

Tipo de Dados

string

Valor Padrão

"Never"

Observações

Esta propriedade gera esquemas para arquivos .rsd no caminho especificado por Location.

As configurações disponíveis são as seguintes:

  • Nunca: Um arquivo de esquema nunca será gerado.
  • OnUse: Um arquivo de esquema será gerado na primeira vez que uma tabela for referenciada, desde que o arquivo de esquema para a tabela ainda não exista.
  • OnStart: Um arquivo de esquema será gerado no momento da conexão para todas as tabelas que atualmente não possuem um arquivo de esquema.
  • OnCreate: Um arquivo de esquema será gerado ao executar uma consultar SQL CREATE TABLE.

Observe que, se você deseja gerar novamente um arquivo, primeiro precisará excluí-lo.

Gerar Esquemas com SQL

Ao definir GenerateSchemaFiles para OnUse, o conector gera esquemas conforme você executa consultas SELECT. Os esquemas são gerados para cada tabela referenciada na consultar.

Ao definir GenerateSchemaFiles para OnCreate, os esquemas são gerados apenas quando uma consultar CREATE TABLE é executada.

Gerar Esquemas na Conexão

Outra maneira de usar essa propriedade é obter esquemas para cada tabela em seu banco de dados quando você se conectar. Para isso, defina GenerateSchemaFiles para OnStart e conecte.

IgnorarTipos

Remove o suporte para os tipos especificados. Por exemplo, Tempo. Esses tipos serão relatados como strings.

Tipo de Dados

string

Valor Padrão

"Datetime,Date,Time"

Observações

Remove o suporte para os tipos especificados. Por exemplo, Tempo. Esses tipos serão relatados como strings.

MaximumRequestRetries

O número máximo de vezes para repetir uma solicitação.

Tipo de Dados

string

Valor Padrão

"4"

Observações

MaximumRequestRetries é o número máximo de vezes que o conector tentará novamente uma solicitação quando o problema for detectado como temporário (erros como "erro desconhecido", problemas de rede e exceder o limite máximo por tabela). Nesse caso, na primeira tentativa, o conector recuará e aguardará o tempo designado por RetryWaitTime. Se essa solicitação falhar, o conector dobrará o tempo e dobrará novamente até que o conector tenha esgotado as novas tentativas disponíveis.

Por exemplo, se RetryWaitTime está definido para 2 segundos e MaximumRequestRetries for definido como 5, os tempos de espera serão os seguintes: 0 -> 2 -> 4 -> 8 -> 16 -> 32.

MaxRows

Limita o número de linhas retornadas quando nenhuma agregação ou agrupamento é usado na consultar. Isso ajuda a evitar problemas de desempenho em tempo de design.

Tipo de Dados

int

Valor Padrão

-1

Observações

Limita o número de linhas retornadas quando nenhuma agregação ou agrupamento é usado na consultar. Isso ajuda a evitar problemas de desempenho em tempo de design.

Outro

Essas propriedades ocultas são usadas apenas em casos de uso específicos.

Tipo de Dados

string

Valor Padrão

""

Observações

As propriedades listadas abaixo estão disponíveis para casos de uso específicos. Os casos de uso e a funcionalidade normais do driver não devem exigir essas propriedades.

Especifique várias propriedades em uma lista separada por ponto e vírgula.

Integração e Formatação
Propriedade Descrição
DefaultColumnSize Define o comprimento padrão dos campos de string quando a fonte de dados não fornece o comprimento da coluna nos metadados. O valor padrão é 2000. Voltar para o início
ConvertDateTimeToGMT Determina se os valores de data e hora devem ser convertidos em GMT, em vez da hora local da máquina.
RecordToFile=filename Registra a transferência de dados do soquete subjacente para o arquivo especificado.

Tamanho da Página

O número máximo de resultados a serem retornados por página do Amazon DynamoDB.

Tipo de Dados

int

Valor Padrão

2000

Observações

O Pagesize propriedade afeta o número máximo de resultados a serem retornados por página do Amazon DynamoDB. Por padrão esta propriedade possui o valor '-1' que indica que o provedor tentará obter todos os registros sem limite por página.

Pseudocolunas

Esta propriedade indica se deve ou não incluir pseudocolunas como colunas na tabela.

Tipo de Dados

string

Valor Padrão

""

Observações

Essa configuração é particularmente útil no Entity Framework, que não permite definir um valor para uma pseudocoluna, a menos que seja uma coluna de tabela. O valor dessa configuração de conexão está no formato "Table1=Column1, Table1=Column2, Table2=Column3". Você pode usar o caractere "*" para incluir todas as tabelas e todas as colunas; por exemplo, "*=*".

RetryWaitTime

O número mínimo de milissegundos que o provedor aguardará para tentar novamente uma solicitação.

Tipo de Dados

string

Valor Padrão

"2000"

Observações

O valor dessa propriedade é dobrado a cada nova tentativa para determinar quanto tempo esperar até a próxima tentativa. Especifique o número máximo de tentativas com MaximumRequestRetries.

RowScanDepth

O número máximo de linhas a serem verificadas para procurar as colunas disponíveis em uma tabela.

Tipo de Dados

int

Valor Padrão

50

Observações

As colunas em uma tabela devem ser determinadas pela varredura das linhas da tabela. Esse valor determina o número máximo de linhas que serão verificadas.

Definir um valor alto pode diminuir o desempenho. Definir um valor baixo pode impedir que o tipo de dados seja determinado corretamente, especialmente quando houver dados nulos.

Caractere Separador

O caractere ou caracteres usados para denotar hierarquia.

Tipo de Dados

string

Valor Padrão

"."

Observações

Para nivelar estruturas como mapas e atributos de lista no DynamoDB, precisamos de algum especificador que indique qual é a separação entre essas colunas e outras colunas. Se este valor for "." e uma coluna volta com o nome address.city, isso indica que existe um atributo mapeado com um filho chamado city. Se seus dados tiverem colunas que já usam um único ponto no nome do atributo, defina o SeparatorCharacter para um personagem ou personagens diferentes.

Contagem de Fios

O número de encadeamentos a serem usados ao selecionar dados por meio de uma varredura paralela. Definir ThreadCount como 1 desativará as verificações paralelas.

Tipo de Dados

string

Valor Padrão

"4"

Observações

As verificações paralelas permitem que os dados sejam recuperados mais rapidamente, dividindo o processo de recuperação em vários encadeamentos. Isso pode melhorar muito o desempenho ao verificar dados no Amazon DynamoDB. No entanto, isso também consumirá suas unidades de leitura para uma tabela muito mais rapidamente do que um único thread. Considere seus núcleos disponíveis, largura de banda e unidades de leitura para suas tabelas antes de aumentar o ThreadCount.

Tempo Esgotado

O valor em segundos até que o erro de timeout seja lançado, cancelando a operação.

Tipo de Dados

int

Valor Padrão

60

Observações

Se Timeout = 0, as operações não expiram. As operações são executadas até serem concluídas com êxito ou até encontrarem uma condição de erro.

Se Timeout expira e a operação ainda não está concluída, o conector lança uma exceção.

TipoDetecçãoEsquema

Determina como determinar o tipo de dados das colunas.

Valores Possíveis

None, RowScan

Tipo de Dados

string

Valor Padrão

"RowScan"

Observações
Propriedade Descrição
None Contexto TypeDetectionScheme para None retornará todas as colunas como tipo string. Nota: Mesmo quando definido como None, os nomes das colunas ainda serão verificados quando Header=True.
RowScan Contexto TypeDetectionScheme para RowScan varrerá linhas para determinar heuristicamente o tipo de dados. A RowScanDepth determina o número de linhas a serem verificadas. Se nenhum valor for especificado, RowScan será usado por padrão.

UseBatchWriteItemOperation

Quando ativado, o provedor usará a operação BatchWriteItem para lidar com atualizações e inserções. Por padrão, o provedor usa a operação ExecuteStatement/BatchExecuteStatement. Você precisa habilitar BatchWriteItem somente ao inserir/atualizar dados binários/conjunto binário. ExecuteStatement/BatchExecuteStatement não oferece suporte à manipulação de campos binários.

Tipo de Dados

bool

Valor Padrão

false

Observações

Quando ativado, o provedor usará a operação BatchWriteItem para lidar com atualizações e inserções. Por padrão, o provedor usa a operação ExecuteStatement/BatchExecuteStatement. Você precisa habilitar BatchWriteItem somente ao inserir/atualizar dados binários/conjunto binário. ExecuteStatement/BatchExecuteStatement não oferece suporte à manipulação de campos binários.

UseConsistentReads

Sempre usar leituras consistentes ou não ao consultar o DynamoDb.

Tipo de Dados

bool

Valor Padrão

false

Observações

Este parâmetro não tem suporte em índices secundários globais. Se você varrer ou consultar usando um índice secundário, as leituras consistentes não serão usadas mesmo se a propriedade estiver definida como verdadeira.

UseSimpleNames

Booleano determinando se nomes simples devem ser usados para tabelas e colunas.

Tipo de Dados

bool

Valor Padrão

false

Observações

As tabelas e colunas do Amazon DynamoDB podem usar caracteres especiais em nomes que normalmente não são permitidos em bancos de dados padrão. UseSimpleNames torna o conector mais fácil de usar com ferramentas de banco de dados tradicionais.

Contexto UseSimpleNames para true simplificará os nomes das tabelas e colunas retornadas. Ele aplicará um esquema de nomenclatura de forma que apenas caracteres alfanuméricos e o sublinhado sejam válidos para os nomes de tabela e coluna exibidos. Quaisquer caracteres não alfanuméricos serão convertidos em um sublinhado.