Postgres uyumluluğu

Bu sayfada Lakebase Postgres'in standart Postgres ile nasıl uyumlu olduğu açıklanmaktadır. Yönetilen bir Postgres hizmeti olarak bazı farklılıklar ve sınırlamalar vardır.

Postgres sürüm desteği

Lakebase, Postgres 16, Postgres 17 ve Postgres 18'i desteklemektedir. Postgres 17 varsayılan sürümdür. Postgres 18'i kullanmak için yeni proje oluştururken seçin.

Postgres uzantısı desteği

Lakebase çok sayıda Postgres uzantısını destekler. Tam liste için bkz. Postgres uzantıları.

Oturum, bellek ve depolama

Oturum bağlamı

Lakebase sıfıra ölçekleme özelliği, belirli bir süre etkinlik olmadığında boştaki bağlantıları otomatik olarak kapatır.

Bağlantılar kapatıldığında, oturum bağlamındaki geçici tablolar, hazırlanmış deyimler, danışmanlık kilitleri ve NOTIFY ve LISTEN komutları gibi her şey kaybolur.

Oturum düzeyinde bağlamların kaybolmasını önlemek için sıfıra ölçeği devre dışı bırakabilirsiniz. Ancak bunu yapmak, işleminizin 7/24 çalıştığı anlamına gelir.

Memory

SQL sorguları ve dizin derlemeleri belleğe sığmayabilecek büyük miktarlarda veri oluşturabilir. İşleminizin boyutu kullanılabilir bellek miktarını belirler.

Kayıtlı olmayan tablolar

Kayıt tutulmayan tablolar, Postgres yazılım günlük dosyasına (WAL) yazmayan tablolardır. Bu tablolar işlem yerel depolamasında depolanır ve işlem yeniden başlatmalarında veya bir işlem sıfıra ölçeklendiğinde kalıcı olmaz. Bu, varsayılan Postgres'e benzemez; burada kaydedilmemiş tablolar yalnızca anormal işlem sonlandırma durumunda kısaltılır. Ayrıca, kaydedilmemiş tablolar bilgisayarın yerel disk alanıyla sınırlıdır. Lakebase hesapları, Postgres'un kullandığı geçici dosyalar için, 20 GiB yerel disk alanı veya maksimum hesap boyutunun 15 GiB katı (hangisi daha yüksekse) ayırır.

Geçici tablolar

Geçici tablolar yalnızca bir oturumun ömrü boyunca (veya isteğe bağlı olarak bir işlemde) bulunur. Kaydedilmemiş tablolar gibi bunlar da yerel işlem depolamasında depolanır ve yerel disk alanıyla sınırlıdır.

Postgres günlükleri

Postgres günlüklerine erişim desteklenmez.

İstatistik koleksiyonu

Postgres toplu istatistik sistemi tarafından toplanan istatistikler , bir işlem (Postgres'in çalıştığı yer) sıfıra ölçeklendiğinde kaydedilmez. İstatistikleri kaybetmemek için sıfıra ölçek özelliğini devre dışı bırakabilirsiniz. Ancak ölçeği sıfır olarak devre dışı bırakmak, işleminizin 7/24 çalıştırılacağı anlamına da gelir.

Postgres parametre ayarları

Yönetilen bir Postgres hizmeti olarak, birçok veritabanı parametresi işlem boyutuna göre ayarlanır. Aşağıdakini kullanarak tüm veritabanı parametre ayarlarınızı görün:

SHOW ALL;

Oturum, veritabanı veya rol düzeyinde bağlamı user olan parametreleri yapılandırabilirsiniz. Parametreleri örnek düzeyinde yapılandıramazsınız.

  • Oturum, veritabanı veya rol düzeyinde ayarlanabilen parametreleri gösterin.

    SELECT name
    FROM pg_settings
    WHERE context = 'user';
    
  • Oturum için bir parametre ayarlayın.

    SET maintenance_work_mem='1 GB';
    
  • Veritabanına bağlı tüm oturumlar için bir parametre ayarlayın.

    ALTER DATABASE databricks_postgres SET maintenance_work_mem='1 GB';
    
  • Belirli bir kullanıcının tüm oturumları için bir parametre ayarlayın.

    ALTER USER "john@company.com" SET maintenance_work_mem='1 GB';
    

Veritabanı kodlaması ve harmanlamaları

Veritabanı kodlaması

Varsayılan olarak, C.UTF-8 harmanlaması kullanılır. C.UTF-8, UTF-8 ile kodlanmış karakterlerin tamamını destekler.

UTF8 kodlaması (Unicode, 8 bit değişken genişlikli kodlama) da desteklenir.

Veritabanınızın kodlamasını ve harmanlamasını görüntülemek için aşağıdaki sorguyu çalıştırın:

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';

Uyarı

Postgres'te bir veritabanının kodlamasını veya harmanlamasını oluşturulduktan sonra değiştiremezsiniz.

Sıralama Düzenleri

Harmanlama, SQL adını işletim sisteminde yüklü kitaplıklar tarafından sağlanan yerel ayarlarla eşleyen bir SQL şema nesnesidir.

Varsayılan olarak, Lakebase harmanlamayı kullanır C.UTF-8 . Lakebase tarafından desteklenen bir diğer sağlayıcı ise harici icu kütüphanesini kullanan .

Yerel ayara özgü sıralamaya veya büyük/küçük harf dönüştürmelerine ihtiyaç duymanız durumunda Lakebase önceden tanımlanmış bir icu yerel ayarları serisi sağlar.

  • Önceden tanımlanmış tüm yerel ayarları görüntüleyin:
SELECT * FROM pg_collation;
  • Önceden tanımlanmış icu bir yerel ayara sahip bir veritabanı oluşturun:
CREATE DATABASE my_arabic_db
LOCALE_PROVIDER icu
icu_locale 'ar-x-icu'
template template0;
  • Tek tek sütunlar için bir yerel ayar belirtin:
CREATE TABLE my_ru_table (
    id serial PRIMARY KEY,
    russian_text_column text COLLATE "ru-x-icu",
    description text
);

İşlevsellik sınırlamaları

Roller ve izinler

  • Konak işletim sistemine erişemezsiniz.
  • Postgres superuserkullanarak bağlanamazsınız.
    • Ayrıcalıklar superuser veya doğrudan yerel dosya sistemi erişimi gerektiren işlevlere izin verilmez.
    • databricks_superuser Postgres superuser rolünün yerine geçer. Bu rolle ilişkili ayrıcalıklar hakkında bilgi için bkz. Rolleri yönetme.

Yedekleme

Henüz doğal Postgres mantıksal çoğaltması kullanılarak bir Lakebase veritabanına veya veritabanından veri çoğaltma mümkün değildir.

Tablo alanları

Lakebase, Postgres tablo alanlarını desteklemez. "CREATE TABLESPACE komutuyla bir tablespace oluşturmaya çalışmak hatayla sonuçlanır." Bunun nedeni Lakebase'in yönetilen bulut mimarisidir ve özel depolama konumları için doğrudan dosya sistemi erişimine izin vermez.

Veritabanı nesnelerini farklı depolama cihazlarında düzenlemek için tablespaces kullanan mevcut uygulamalarınız veya betikleriniz varsa, Lakebase'e geçiş yaparken bu başvuruları kaldırmanız veya değiştirmeniz gerekir.