Edge SQL

Azion Edge SQL é uma solução SQL nativa de edge projetada para aplicações serverless. É totalmente compatível com ACID e utiliza o dialeto SQL do SQLite para fornecer um ambiente de desenvolvimento familiar, facilitando a integração rápida. O Azion Edge SQL implementa uma arquitetura Principal/Réplicas para permitir consultas com latência ultra baixa no edge da rede, melhorando o desempenho de aplicações distribuídas. Dessa forma, a instância principal é replicada e armazenada em todos os nodes da Edge Network da Azion para garantir a disponibilidade e a tolerância a falhas.

Com o Edge SQL, você pode realizar diferentes tarefas, incluindo:

  • Armazenar dados de telemetria em tempo real, ideal para IoT.
  • Gerenciar inventário de centros de distribuição de comércio eletrônico/varejo distribuídos.
  • Armazenar e analisar registros de acesso, identificando e mitigando rapidamente ataques de segurança.
  • Armazenar e gerenciar dados de acesso.

Existem duas maneiras de construir um banco de dados através do Edge SQL: usando a API REST do Edge SQL ou escrevendo uma edge function. A API REST permite criar, ler, atualizar, excluir e listar bancos de dados. Uma edge function permite recuperar dados de um banco de dados.

Implementação

EscopoRecurso
Gerenciar bancos de dados com API RESTComo gerenciar um banco de dados no Edge SQL
Criar queries com API RESTComo criar e consultar dados no Edge SQL
Ler dados de um banco de dados com uma edge functionComo interagir com o Azion Edge SQL através do Edge Functions
Conhecer o Vector Search do Edge SQLReferência do Vector Search do Edge SQL

Regras de negócios

Escrever bancos de dados, através da API REST ou de uma edge function, só é possível na instância principal. Todas as réplicas são somente leitura.

Durante a criação de um banco de dados, especialmente o primeiro, há um tempo de propagação para que ele seja criado nos edge nodes. A resposta da sua requisição POST exibirá um estado de criando e você pode executar requisições GET para verificar quando estiver criado.

Você também pode usar uma edge function JavaScript para consultar e analisar se os snapshots foram mergeados nas réplicas.


Resiliência de dados

Com uma arquitetura distribuída em execução nos edge nodes da Azion, o Edge SQL garante que os dados sejam mantidos seguros e disponíveis. Seus dados são criados em uma instância principal e propagados por réplicas nos edge nodes da Azion.


Bancos de dados

Um banco de dados é um conjunto de tabelas estruturadas que permitem escrever e ler dados na linguagem SQL. Organizados em colunas e linhas, os usuários podem adicionar dados logicamente, com colunas representando informações específicas no eixo vertical, enquanto as linhas representam dados de entrada individuais, relacionados a uma coluna, no eixo horizontal.

Criar um banco de dados é o primeiro passo para usar o Edge SQL e adicionar dados:

Terminal window
curl --location 'https://api.azion.com/v4/edge_sql/databases' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"name": "meu-banco-de-dados"
}'

Query

Uma query é como você estrutura sua tabela ou uma busca em linhas em um banco de dados previamente criado. É possível fazer consultas com base em relações e restrições.

Por exemplo, para criar uma tabela via cURL:

Terminal window
curl --location 'https://api.azion.com/v4/edge_sql/databases/{id_database}/query' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"statements": [
"CREATE TABLE usuarios (id INTEGER PRIMARY KEY, nome TEXT NOT NULL);"
]
}'

Para consultar dados na tabela já criada:

Terminal window
curl --location 'https://api.azion.com/v4/edge_sql/databases/{id_database}/query' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"statements": [
"SELECT * FROM usuarios;"
]
}'

Vector Search é um recurso do Edge SQL da Azion que permite aos clientes implementar mecanismos de busca semântica. Enquanto os modelos de busca tradicionais visam encontrar correspondências exatas, como correspondências de palavras-chave, os modelos de busca vetorial usam algoritmos especializados para identificar itens semelhantes com base em suas representações matemáticas, ou embeddings vetoriais.


Interagindo com o Edge SQL via terminal

Você pode interagir com o Edge SQL diretamente do seu terminal usando o projeto edgesql-shell. Esta ferramenta fornece uma interface de linha de comando para executar comandos SQL em seus bancos de dados Edge SQL.


Instâncias

Instância principal

A instância de armazenamento primária que recebe todos os comandos de write (escrita) e sincroniza os dados recebidos com as réplicas. Também permite ações de read (leitura).

Todos os bancos de dados são criados e todas as queries são escritas na instância principal. Após o processo automático gerenciado pela Azion, seus dados são processados em edge locations, snapshots são criados e mergeados em réplicas.

Réplicas

Réplicas são cópias read-only (somente leitura) da instância principal. As réplicas são atualizadas em tempos de propagação diferentes, então eventualmente estarão sincronizadas na instância principal, mas isso não ocorre instantaneamente.

O processo de replicação ocorre automaticamente através de sistemas de backend da Azion, nos quais snapshots são criados e então mergeados em cada réplica.

Elas lidam com armazenamento, processamento e gerenciamento de dados próximos aos dispositivos que leem os dados, auxiliando na distribuição, disponibilidade e baixa latência de dados.


Linguagens de consulta suportadas

Como o Edge SQL da Azion é baseado no SQLite, ele suporta as mesmas linguagens SQL que o SQLite.

Veja as linguagens SQL entendidas para criar queries.


Limites

Estes são os limites default:

EscopoLimite
Número máximo de colunas por tabela100
Duração máxima da consulta SQL30 segundos

Estes são os limites default para cada Plano de Serviço:

EscopoDeveloperBusinessEnterpriseMission Critical
Bancos de dados1050200200
Tamanho máximo do banco de dados200 MB500 MB2 GB2 GB
Armazenamento máximo por conta5 GB50 GB300 GB300 GB


Contribuidores