Google Big Table

Conheça o componente e saiba como utilizá-lo.

O Google Big Table estabelece uma conexão com o serviço Google BigTable no pipeline. Essa funcionalidade permite a execução de diferentes operações usando instâncias de bancos de dados do Google BigTable.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: é necessário ter uma conta do tipo PRIVATE KEY para que o componente faça a autenticação do serviço.

  • Project Id: ID do projeto no Google BigTable.

  • Instance Id: ID da instância no Google BigTable.

  • Table Id: ID da tabela no Google BigTable.

  • Operation: seleciona a operação a ser executada no banco de dados, que podem ser: write, read by rowkey, read by specific cell, read by prefix, read by range, ou delete row by rowkey.

  • Payload as file: se a opção estiver habilitada, o cadastro será realizado através de um arquivo localizado no campo “File Name”. Caso a opção esteja desabilitada, o preenchimento deve ser feito no campo “Payload”.

  • Payload: objeto a ser cadastrado no banco de dados.

  • File name: arquivo com o objeto a ser cadastrado.

  • Rowkey: identifica a rowkey de uma linha no Google BigTable.

  • Family: identifica a família no Google BigTable.

  • Qualifier: identifica o qualificador no Google BigTable.

  • Prefix: define o prefixo utilizado para consultar a rowkey de uma linha no Google BigTable.

  • Start range: define o limite inicial utilizado para consultar a rowkey de uma linha no Google BigTable.

  • End range: define o limite final utilizado para consultar a rowkey de uma linha no Google BigTable.

  • Fail On Error: se a opção estiver habilitada, a execução do pipeline com erro será interrompida. Do contrário, a execução do pipeline continuará, mas o resultado mostrará um valor falso para a propriedade "success".

Alguns dos parâmetros mostrados acima suportam Double Braces. Leia o artigo Como referenciar dados usando Double Braces para entender o funcionamento dessa linguagem.

Fluxo de mensagens

Entrada

Nenhuma mensagem de entrada específica é esperada, e sim apenas o preenchimento dos parâmetros obrigatórios que variam conforme a operação selecionada. Veja abaixo a obrigatoriedade de parâmetros para cada operação:

  • Write: Payload

  • Read by rowKey: Rowkey

  • Read by specific cell: Rowkey, Family, Qualifier

  • Read by prefix: Prefix

  • Read by range: Start range, End range

  • Delete row by rowkey: Rowkey

No caso da operação Write, é necessária a existência do nome ou caminho do arquivo no campo “File Name” se a opção “Payload as File” estiver ativada.

Saída

Ao executar o componente utilizando as operações Write ou Delete row by rowkey, a seguinte estrutura de JSON será gerada:

{
  "success": true
}
  • success: "true" se a última operação ocorreu com sucesso.

  • error: surge se um erro ocorreu e o Fail on Error é "false".

Ao executar o componente utilizando as operações Read by rowKey, Read by specific cell, Read by prefix ou Read by range, a seguinte estrutura de JSON será gerada:

{
  "data": "[{\"rowKey\":\"BBDC4#20200103\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"}]}]",
  "success": true
}

  • data: volume de dados retornados com a operação.

  • rowKey: ID do rowkey usado na operação.

  • cellList: conjunto de células contendo os dados family, qualifier e value.

  • family: família da instância do banco de dados.

  • qualifier: qualificador da instância do banco de dados.

  • value: valor da instância do banco de dados.

  • success: "true" se a última operação ocorreu com sucesso.

Google Big Table em ação

Dê uma olhada nos parâmetros de entrada e na saída esperada para cada operação nos exemplos a seguir:

Write

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Write

Payload:

[
   {
      "rowKey":"BBDC4#20200102",
      "cellList":[
         {
            "family":"familiaA",
            "qualifier":"data",
            "value":"20200103"
         },
         {
            "family":"familiaA",
            "qualifier":"data",
            "value":"20200103"
         }
      ]
   }
]

Saída

{
  "success": true
}

Read by RowKey

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Read

RowKey: BBDC4#20200103

Saída

{
  "data": "[{\"rowKey\":\"BBDC4#20200103\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"}]}]",
  "success": true
}

Read by specific cell

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Read by specific cell

Rowkey: BBDC4#20200103

Family: familiaA

Qualifier: data

Saída

{
  "data": "{\"rowKey\":\"BBDC4#20200103\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"}]}",
  "success": true
}

Read by prefix

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Read by prefix

Prefix: BBDC4#202001

Saída

{
  "data": "[{\"rowKey\":\"BBDC4#20200102\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200102\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200102\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200102\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,20909119\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,20909119\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,20909119\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"32,90908813\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"32,90908813\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"32,90908813\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,07200241\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,07200241\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,07200241\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"20687260\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"20687260\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"20687260\"}]}]",
  "success": true
}

Read by range

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Read by range

Start range: BBDC4#20200100

End range: BBDC4#20200106

Saída

{
  "data": "[{\"rowKey\":\"BBDC4#20200102\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"}]},{\"rowKey\":\"BBDC4#20200103\",\"cellList\":[{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"ativo\",\"value\":\"BBDC4\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaA\",\"qualifier\":\"data\",\"value\":\"20200103\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"abertura\",\"value\":\"33,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"alta\",\"value\":\"34,54545212\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"baixa\",\"value\":\"33,52727127\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaB\",\"qualifier\":\"fechamento\",\"value\":\"34,09999847\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"fechamentoAjustado\",\"value\":\"33,08722305\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"},{\"family\":\"familiaC\",\"qualifier\":\"volume\",\"value\":\"33057090\"}]}]",
  "success": true
}

Delete row by rowKey

Entrada

Parâmetros

Account: google-storage-test

Project ID: digibee-test

Instance ID: spike-bigtable-id

Table ID: historicoAtivos

Operation: Delete row by rowKey

Rowkey: BBDC4#20200102

Saída

{
  "success": true
}

Atualizado