Inserir JSON em bancos de dados

Desafio

JSON é o principal formato de dados usado no Skyone Studio e geralmente você pode querer escrever vários registros de dados de uma matriz JSON em um banco de dados relacional.

Você pode sempre processar cada elemento da matriz individualmente e usar um INSERT regular para armazenar o registro no banco de dados. Entretanto, a maioria dos bancos de dados tem ferramentas para receber uma matriz JSON como argumento para uma função que mapeia os elementos da matriz para as colunas do banco de dados. Essas funções nos permitem passar grandes matrizes JSON para um único INSERT, economizando tempo e processamento a partir dos fluxos do Skyone Studio.

JSON Source

Como exemplo, considere a array de trades extraídas da CoinAPI:

[
    {
        "symbol_id": "BITSTAMP_SPOT_BTC_USD",
        "time_exchange": "2023-01-23T00:16:24.1850000Z",
        "time_coinapi": "2023-01-23T00:16:24.2096192Z",
        "uuid": "f4b6a7d3-3a6b-4870-9073-383c62f68d6b",
        "price": 22688,
        "size": 0.0268,
        "taker_side": "BUY"
    },
    {
        "symbol_id": "BITSTAMP_SPOT_BTC_USD",
        "time_exchange": "2023-01-23T00:16:26.6100000Z",
        "time_coinapi": "2023-01-23T00:16:26.6324401Z",
        "uuid": "b473a149-e174-4c98-a7e6-561b0ad470be",
        "price": 22691,
        "size": 0.00419,
        "taker_side": "BUY"
    }
]

Normalmente queremos INSERT todo o array em uma única operação de banco de dados.

Postgres

Vamos supor que já temos o banco de dados de trades criado com os nomes de coluna idênticos aos nomes de propriedade da array de operações.

No campo de query da operação do banco de dados, você pode configurar:

Onde <>trades</> é um parâmetro que contém a array como especificado acima.

Oracle

Vamos supor que já temos o banco de dados de trades criado com os nomes de coluna idênticos aos nomes de propriedade da array de operações.

No campo de query da operação do banco de dados, você pode configurar:

Onde <>trades</> é um parâmetro que contém a array como especificado acima.

Observe que temos que usar a variável my_array para armazenar a array JSON original. Isto é necessário para lidar com arrays maiores que 4000 caracteres.

MS SQL

Vamos supor que já temos o banco de dados de trades criado com os nomes de coluna idênticos aos nomes de propriedade da array de operações.

No campo de query da operação do banco de dados, você pode configurar:

Onde <>trades</> é um parâmetro que contém a array como especificado acima.

circle-exclamation

Leia também: How to Escape a Single Quote in SQL Serverarrow-up-right

Atualizado

Isto foi útil?