

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exportar resultados de consultas do Gremlin para o Amazon S3
<a name="exporting-gremlin"></a>

 A partir da versão 1.4.3.0 do mecanismo, o Amazon Neptune é compatível com a exportação de resultados de consultas do Gremlin diretamente para o Amazon S3. Esse recurso permite lidar com grandes resultados de consultas de forma eficiente, exportando-os para um bucket do Amazon S3 em vez de retorná-los como uma resposta de consulta. 

 Para exportar os resultados da consulta para o Amazon S3, use a etapa `call()` com o nome do serviço `neptune.query.exportToS3` como a etapa final na consulta do Gremlin. A etapa terminal nos [drivers do Tinkerpop usando o Bytecode](https://tinkerpop.apache.org/docs/current/reference/#terminal-steps) pode ser adicionada após a etapa `call()`. Os parâmetros de exportação devem ser fornecidos como valores de string. 

**nota**  
 A consulta com a etapa `call()` que tem `neptune.query.exportToS3` falhará se não for usada como etapa final. Os clientes Gremlin que usam bytecode podem usar etapas de terminal. Consulte as [práticas recomendadas do Gremlin](https://docs.aws.amazon.com//neptune/latest/userguide/best-practices-gremlin-java-bytecode.html) na documentação do Amazon Neptune para obter mais informações. 

```
g.V()
  ...
  .call('neptune.query.exportToS3', [
    'destination': '{{s3://your-bucket/path/result.json}}',
    'format': 'GraphSONv3',
    'kmskeyArn': '{{optional-kms-key-arn}}'
  ])
```

**Parâmetros**
+  `destination` (obrigatório): o URI do Amazon S3 em que os resultados serão gravados. 
+  `format`: obrigatório - O formato de saída, atualmente, suporta apenas '[Graph SONv3](https://tinkerpop.apache.org/docs/3.7.3/dev/io/#graphson-3d0)'. 
+  `keyArn`: opcional - O ARN de uma AWS KMS chave para criptografia do lado do servidor Amazon [S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/serv-side-encryption.html). 

## Exemplos
<a name="exporting-gremlin-examples"></a>

 **Consulta de exemplo** 

```
g.V().
    hasLabel('Comment').
    valueMap().
    call('neptune.query.exportToS3', [
    'destination': '{{s3://your-bucket/path/result.json}}',
    'format': 'GraphSONv3',
    'keyArn': '{{optional-kms-key-arn}}'
  ])
```

 **Exemplo de resposta de consulta** 

```
{
    "destination":"{{s3://your-bucket/path/result.json}},
    "exportedResults": 100,
    "exportedBytes": 102400
}
```

## Pré-requisitos
<a name="exporting-gremlin-prerequisites"></a>
+  Sua instância de banco de dados do Neptune deve ter acesso ao Amazon S3 por meio de um endpoint da VPC do tipo gateway. 
+  Para usar AWS KMS criptografia personalizada na consulta, AWS KMS é necessário um endpoint VPC do tipo interface para permitir que o Neptune se comunique com. AWS KMS 
+  Você deve habilitar a autenticação do IAM no Neptune e ter as permissões do IAM apropriadas para gravar no bucket do Amazon S3 de destino. Não ter esses requisitos causará um erro de solicitação inválida 400 “O cluster deve ter a autenticação do IAM habilitada para a exportação do S3”. 
+  O bucket de destino do Amazon S3: 
  +  O bucket de destino do Amazon S3 não deve ser público. `Block public access` deve estar habilitado. 
  +  O destino do Amazon S3 de destino deve estar vazio. 
  +  O bucket de destino do Amazon S3 deve ter uma regra de ciclo de vida de `Delete expired object delete markers or incomplete multipart uploads` com `Delete incomplete multipart uploads`. Para obter mais informações, consulte [S3 Lifecycle Management Update – Support for Multipart Uploads and Delete Markers](https://aws.amazon.com/blogs/aws/s3-lifecycle-management-update-support-for-multipart-uploads-and-delete-markers/).   
![Uma imagem mostrando as ações das regras do ciclo de vida.](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/lifecycleRuleActions.png)
  +  O bucket de destino do Amazon S3 deve ter uma regra de ciclo de vida de `Delete expired object delete markers or incomplete multipart uploads` com `Delete incomplete multipart uploads` com um valor maior do que a avaliação da consulta (por exemplo, 7 dias). Isso é necessário para excluir uploads incompletos (que não são diretamente visíveis, mas gerariam custos), caso não possam ser concluídos ou abortados pelo Neptune (por exemplo, devido a falhas). instance/engine Para obter mais informações, consulte [S3 Lifecycle Management Update – Support for Multipart Uploads and Delete Markers](https://aws.amazon.com/blogs/aws/s3-lifecycle-management-update-support-for-multipart-uploads-and-delete-markers/).   
![Uma imagem mostrando as ações de regra de ciclo de vida e os marcadores de exclusão de objetos expirados.](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/lifecycleRuleActionsDelete.png)

**Considerações importantes**
+  A etapa de exportação deve ser a última etapa na consulta do Gremlin. 
+  Se um objeto já existir no local especificado do Amazon S3, a consulta falhará. 
+  O tempo máximo de execução da consulta para consultas de exportação é limitado a 11 horas e 50 minutos. Esse recurso usa [sessões de acesso direto](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_forward_access_sessions.html). Atualmente, o limite é 11 horas e 50 minutos para evitar problemas de expiração de tokens. 
**nota**  
 A consulta de exportação ainda respeita o tempo limite da consulta. Para grandes exportações, use um tempo limite de consulta apropriado. 
+  Todos os novos uploads de objetos para o Amazon S3 são criptografados automaticamente. 
+  Para evitar custos de armazenamento decorrentes de uploads incompletos de várias partes em caso de erros ou falhas, recomendamos configurar uma regra de ciclo de vida com `Delete incomplete multipart uploads` em seu bucket do Amazon S3. 

## Formato de resposta
<a name="exporting-gremlin-response"></a>

 Em vez de retornar os resultados da consulta diretamente, a consulta retorna metadados sobre a operação de exportação, incluindo status e detalhes da exportação. Os resultados da consulta no Amazon S3 estarão no formato [gráfico SONv3](https://tinkerpop.apache.org/docs/3.7.3/dev/io/#graphson-3d0). 

```
{
  "data": {
    "@type": "g:List",
    "@value": [
      {
        "@type": "g:Map",
        "@value": [
          "browserUsed",
          {
            "@type": "g:List",
            "@value": [
              "Safari"
            ]
          },
          "length",
          {
            "@type": "g:List",
            "@value": [
              {
                "@type": "g:Int32",
                "@value": 7
              }
            ]
          },
          "locationIP",
          {
            "@type": "g:List",
            "@value": [
              "192.0.2.0/24"
            ]
          },
          "creationDate",
          {
            "@type": "g:List",
            "@value": [
              {
                "@type": "g:Date",
                "@value": 1348341961000
              }
            ]
          },
          "content",
          {
            "@type": "g:List",
            "@value": [
              "no way!"
            ]
          }
        ]
      },
      {
        "@type": "g:Map",
        "@value": [
          "browserUsed",
          {
            "@type": "g:List",
            "@value": [
              "Firefox"
            ]
          },
          "length",
          {
            "@type": "g:List",
            "@value": [
              {
                "@type": "g:Int32",
                "@value": 2
              }
            ]
          },
          "locationIP",
          {
            "@type": "g:List",
            "@value": [
              "203.0.113.0/24"
            ]
          },
          "creationDate",
          {
            "@type": "g:List",
            "@value": [
              {
                "@type": "g:Date",
                "@value": 1348352960000
              }
            ]
          },
          "content",
          {
            "@type": "g:List",
            "@value": [
              "ok"
            ]
          }
        ]
      },
      
      
      ...
      
      
    ]
  }
}
```

**Segurança**
+  Todos os dados transferidos para o Amazon S3 são criptografados em trânsito via SSL. 
+  Você pode especificar uma AWS KMS chave para a criptografia do lado do servidor dos dados exportados. O Amazon S3 criptografa todos os novos dados por padrão. Se o bucket estiver configurado para usar uma AWS KMS chave específica, essa chave será usada. 
+  O Neptune verifica se o bucket de destino não é público antes de iniciar a exportação. 
+  Exportações entre contas e entre regiões não é compatível. 

**Tratamento de erros**
+  O bucket de destino do Amazon S3 é público. 
+  O objeto especificado já existe. 
+  Você não tem permissões suficientes para gravar no bucket do Amazon S3. 
+  A execução da consulta excede o limite máximo de tempo. 

**Práticas recomendadas**
+  Use as regras de ciclo de vida do bucket do Amazon S3 para limpar uploads incompletos de várias partes. 
+  Monitore suas operações de exportação usando logs e métricas do Neptune. Você pode verificar o [endpoint de status do Gremlin](https://docs.aws.amazon.com//neptune/latest/userguide/gremlin-api-status.html) para ver se uma consulta está em execução no momento. Desde que o cliente não tenha recebido uma resposta, presume-se que a consulta esteja em execução. 