Compatibilidade com Postgres
Beta
O Lakebase Postgres (beta com escalonamento automático) é a próxima versão do Lakebase, disponível apenas para avaliação. Para cargas de trabalho de produção, utilize a versão de pré-visualização pública do Lakebase. Consulte a seção "Como escolher entre as versões" para entender qual versão é a mais adequada para você.
Esta página descreve como o Lakebase Postgres é compatível com o Postgres padrão. Como um serviço de gerenciamento Postgres, existem algumas diferenças e limitações.
Suporte à versão do Postgres
O Lakebase autoscale Beta é compatível com Postgres 16 e Postgres 17.
Suporte a extensões do Postgres
O Lakebase oferece suporte a diversas extensões do Postgres. Para obter a lista completa, consulte Extensões do Postgres.
Sessão, memória e armazenamento
Contexto da sessão
O recurso de escalação para zero do Lakebase fecha automaticamente as conexões parado após um período de inatividade.
Quando as conexões são fechadas, tudo no contexto da sessão, como tabelas temporárias, instruções preparadas, bloqueios consultivos e os comandos NOTIFY e LISTEN , é perdido.
Para evitar a perda de contextos de nível de sessão, você pode desativar a opção "escalar para zero". No entanto, fazer isso significa que seu compute ficará em execução 24 horas por dia, 7 dias por semana.
Memória
Consultas SQL e criação de índices podem gerar grandes volumes de dados que podem não caber na memória. O tamanho do seu compute determina a quantidade de memória disponível.
Tabelas não registradas
Tabelas não registradas são tabelas que não gravam no log de transações (WAL) do Postgres. Essas tabelas são armazenadas no armazenamento local compute e não são mantidas entre reinicializações compute ou quando a escalação compute chega a zero. Isso é diferente do Postgres padrão, onde as tabelas não registradas são truncadas apenas em caso de encerramento anormal do processo. Além disso, as tabelas não registradas são limitadas pelo espaço em disco local compute . O Lakebase compute aloca 20 GiB de espaço em disco local ou 15 GiB vezes o tamanho máximo compute (o que for maior) para arquivos temporários usados pelo Postgres.
Mesas temporárias
As tabelas temporárias existem apenas durante a duração de uma sessão (ou, opcionalmente, de uma transação). Assim como as tabelas não registradas, elas são armazenadas no armazenamento local compute e limitadas pelo espaço em disco local.
logsdo Postgres
O acesso aos logs do Postgres não é suportado.
Coleta de estatísticas
As estatísticas coletadas pelo sistema de estatísticas cumulativas do Postgres não são salvas quando um compute (onde a execução do Postgres) chega a zero. Para evitar a perda de estatísticas, você pode desativar o recurso de escala para zero. No entanto, desativar a escalação para zero também significa que seu compute ficará em execução 24 horas por dia, 7 dias por semana.
Configurações de parâmetros do Postgres
Como um serviço de gerenciamento do Postgres, muitos parâmetros do banco de dados são definidos com base no tamanho do compute . Veja todas as configurações de parâmetros do seu banco de dados usando:
SHOW ALL;
Você pode configurar parâmetros que têm um contexto user no nível da sessão, do banco de dados ou da função. Não é possível configurar parâmetros no nível da instância.
- 
Exibir parâmetros que podem ser definidos no nível da sessão, do banco de dados ou da função. SQLSELECT name
 FROM pg_settings
 WHERE context = 'user';
- 
Defina um parâmetro para a sessão. SQLSET maintenance_work_mem='1 GB';
- 
Defina um parâmetro para todas as sessões conectadas a um banco de dados. SQLALTER DATABASE lakebase SET maintenance_work_mem='1 GB';
- 
Defina um parâmetro para todas as sessões de um determinado usuário. SQLALTER USER "john@company.com" SET maintenance_work_mem='1 GB';
Codificação e agrupamentos de banco de dados
Codificação de banco de dados
Por default, a ordenação C.UTF-8 é utilizada. O C.UTF-8 suporta toda a gama de caracteres codificados em UTF-8.
A codificação UTF8 (Unicode, codificação de largura variável de 8 bits) também é suportada.
Para view a codificação e a ordenação do seu banco de dados, execute a seguinte consulta:
SELECT
    pg_database.datname AS database_name,
    pg_encoding_to_char(pg_database.encoding) AS encoding,
    pg_database.datcollate AS collation,
    pg_database.datctype AS ctype
FROM
    pg_database
WHERE
    pg_database.datname = 'your_database_name';
No Postgres, não é possível alterar a codificação ou a ordenação de um banco de dados depois que ele já foi criado.
Compilações
Uma ordenação é um objeto de esquema SQL que mapeia um nome SQL para as localidades fornecidas pela biblioteca instalada no sistema operacional.
Por default, o Lakebase usa a ordenação C.UTF-8 . Outro provedor suportado pelo Lakebase é icu, que usa a biblioteca externa ICU .
O Lakebase oferece uma série completa de configurações regionais predefinidas (icu) caso você precise de ordenação específica por localidade ou conversão de maiúsculas e minúsculas.
- Ver todas as localidades predefinidas:
SELECT * FROM pg_collation;
- Crie um banco de dados com uma localidade predefinida icu:
CREATE DATABASE my_arabic_db
LOCALE_PROVIDER icu
icu_locale 'ar-x-icu'
template template0;
- Especifique uma localidade para cada coluna:
CREATE TABLE my_ru_table (
    id serial PRIMARY KEY,
    russian_text_column text COLLATE "ru-x-icu",
    description text
);
Limitações de funcionalidade
Funções e permissões
- Você não tem acesso ao sistema operacional do host.
- Você não pode se conectar usando o Postgres superuser.- Qualquer funcionalidade que exija privilégios superuserou acesso direto ao sistema de arquivos local não é permitida.
- O databricks_superusersubstitui a funçãosuperuserdo Postgres. Para informações sobre os privilégios associados a esta função, consulte gerenciar funções.
 
- Qualquer funcionalidade que exija privilégios 
Replicação
A replicação lógica do Postgres não é suportada no Lakebase Postgres (autoscale Beta). A replicação de dados de ou para um banco de dados Lakebase usando a replicação nativa do Postgres não está disponível.
Cancelamento de consulta do cliente
O protocolo de cancelamento do Postgres não pode ser usado para cancelar consultas em andamento.
Em vez disso, crie uma nova conexão e execute pg_cancel_backend(pid):
SELECT pg_cancel_backend(pid)
FROM pg_stat_activity
WHERE pid <> pg_backend_pid() AND
query = '{The query you want to cancel}';
Espaços de tabela
O Lakebase não suporta tablespaces do Postgres. A tentativa de criar um tablespace com o comando CREATE TABLESPACE resulta em um erro. Isso ocorre devido à arquitetura de gerenciamento cloud do Lakebase, que não permite acesso direto ao sistema de arquivos para locais de armazenamento personalizados.
Se você tiver aplicativos ou scripts existentes que usam tablespaces para organizar objetos de banco de dados em diferentes dispositivos de armazenamento, será necessário remover ou modificar essas referências ao migrar para o Lakebase.