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:
- Faça login no console do IAM.
- No painel de navegação, selecione Usuários.
- 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:
- Faça login no console de gerenciamento da AWS com as credenciais de sua conta root.
- Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
- 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 paraAwsRootKeys
.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 paraTemporaryCredentials
.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 paraAwsEC2Roles
.
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 paraAwsIAMRoles
.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 paraAwsMFA
.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 paraAwsCredentialsFile
.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 emRowScanDepth
.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="&quot;restaurant_id&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="&quot;borough&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="&quot;address&quot;.&quot;zipcode&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="&quot;address&quot;.&quot;coord&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="&quot;address&quot;.&quot;coord&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="&quot;address&quot;.&quot;building&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="&quot;address&quot;.&quot;street&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="&quot;name&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="&quot;cuisine&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="&quot;restaurant_id&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="&quot;borough&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="&quot;address&quot;.&quot;zipcode&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="&quot;address&quot;.&quot;coord&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="&quot;address&quot;.&quot;coord&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="&quot;address&quot;.&quot;building&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="&quot;address&quot;.&quot;street&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="&quot;name&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="&quot;cuisine&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:
- sys_catalogs: Lista os bancos de dados disponíveis.
- sys_schemas: Lista os esquemas disponíveis.
- sys_tables: Lista as tabelas e exibições disponíveis.
- sys_tablecolumns: Descreve as colunas das tabelas e exibições disponíveis.
- sys_procedures: Descreve os procedimentos armazenados disponíveis.
- sys_procedureparameters: Descreve procedimento armazenado* parâmetros.
- sys_keycolumns: Descreve as chaves primárias e estrangeiras.
- sys_indexes: Descreve os índices disponíveis.
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.
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. |
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. |
Propriedade | Descrição |
---|---|
SSLServerCert | O certificado a ser aceito do servidor ao conectar usando TLS/SSL. |
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. |
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:
- Faça login no console de gerenciamento da AWS com as credenciais de sua conta raiz.
- Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
- 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:
- Faça login no console de gerenciamento da AWS com as credenciais de sua conta root.
- Selecione o nome ou número da sua conta e selecione Minhas credenciais de segurança no menu exibido.
- 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.