Bagikan melalui


Menyinkronkan data dari tabel Unity Catalog ke instans database

Penting

Fitur ini ada di Pratinjau Umum di wilayah berikut: westus, , , westus2, eastuseastus2, centralussouthcentralus, northeurope, westeurope, , australiaeast, brazilsouth, canadacentral, , centralindia, , southeastasia, . uksouth

Halaman ini menjelaskan cara membuat dan mengelola tabel yang disinkronkan. Tabel yang disinkronisasi adalah tabel Postgres baca-saja Unity Catalog yang secara otomatis menyinkronkan data dari tabel Unity Catalog ke instans database Lakebase Anda. Menyinkronkan tabel Unity Catalog ke Postgres memungkinkan kueri baca latensi rendah dan mendukung gabungan waktu kueri dengan tabel Postgres lainnya.

Sinkronisasi ditangani oleh Alur Deklaratif Lakeflow Spark. Alur terkelola terus memperbarui tabel Postgres dengan perubahan dari tabel sumber. Setelah pembuatan, tabel yang disinkronkan dapat dikueri langsung menggunakan alat Postgres.

Karakteristik utama tabel yang disinkronkan adalah sebagai berikut:

  • Baca-saja di Postgres untuk menjaga integritas data dengan sumber
  • Secara otomatis disinkronkan menggunakan Alur Deklaratif Lakeflow Spark terkelola
  • Dapat dikueri melalui antarmuka PostgreSQL standar
  • Dikelola melalui Unity Catalog untuk tata kelola dan manajemen siklus hidup

Sebelum Anda mulai

  • Anda memiliki tabel Unity Catalog di katalog apa pun.
  • Anda memiliki CAN USE izin pada instans database.

Membuat tabel yang disinkronkan

Antarmuka Pengguna

Untuk menyinkronkan tabel Unity Catalog ke Postgres, lakukan hal berikut:

  1. Klik Katalog di bilah sisi ruang kerja.

  2. Temukan dan pilih tabel Katalog Unity tempat Anda ingin membuat tabel yang disinkronkan.

  3. Klik Buat>tabel Yang Disinkronkan.

  4. Pilih katalog, skema, dan masukkan nama tabel untuk tabel baru yang disinkronkan.

    • Tabel yang disinkronkan juga dapat dibuat di katalog Standar, dengan beberapa konfigurasi tambahan. Pilih katalog Standar Anda, sebuah skema, dan masukkan nama tabel untuk tabel yang baru disinkronkan dan dibuat.
  5. Pilih instans database dan masukkan nama database Postgres untuk membuat tabel yang disinkronkan. Bidang database Postgres secara default ke katalog target yang dipilih saat ini. Jika database Postgres tidak ada di bawah nama ini, Azure Databricks akan membuat database baru.

  6. Pilih Kunci Primer. Kunci primer diperlukan karena memungkinkan akses efisien ke baris untuk dibaca, diperbarui, dan dihapus.

    Penting

    Kolom di kunci primer tidak dapat bernilai null dalam tabel yang disinkronkan. Oleh karena itu, baris dengan null di kolom kunci utama dikecualikan dari sinkronisasi.

  7. Jika dua baris memiliki kunci utama yang sama dalam tabel sumber, pilih Kunci Timeseries untuk mengonfigurasi deduplikasi. Saat Kunci Timeseries ditentukan, tabel yang disinkronkan hanya berisi baris dengan nilai kunci timeseries terbaru untuk setiap kunci utama.

  8. Pilih mode sinkronisasi dari Rekam Jepret, Dipicu, dan Berkelanjutan. Untuk informasi selengkapnya tentang setiap mode sinkronisasi, lihat Mode sinkronisasi yang dijelaskan.

  9. Pilih apakah Anda ingin membuat tabel yang disinkronkan ini dari alur baru atau yang sudah ada.

    • Jika membuat alur baru dan menggunakan katalog terkelola, pilih lokasi penyimpanan untuk tabel penahapan. Jika menggunakan katalog standar, tabel penahapan secara otomatis disimpan dalam katalog.
    • Jika menggunakan alur yang ada, periksa apakah mode sinkronisasi baru cocok dengan mode alur.
  10. (Opsional) Pilih kebijakan anggaran Tanpa Server. Untuk membuat kebijakan anggaran tanpa server, lihat Penggunaan atribut dengan kebijakan anggaran tanpa server. Ini memungkinkan Anda untuk mengaitkan penggunaan penagihan ke kebijakan penggunaan tertentu.

    • Untuk tabel yang disinkronkan, entitas yang dapat ditagih adalah alur Alur Deklaratif Lakeflow Spark yang mendasar. Untuk mengubah kebijakan anggaran, ubah objek pipeline yang mendasar. Lihat Mengonfigurasi alur tanpa server.
  11. Setelah Status tabel yang disinkronkan adalah Online, masuk ke instans database Anda dan kueri tabel yang baru dibuat. Kueri tabel Anda menggunakan editor SQL, alat eksternal, atau buku catatan.

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import SyncedDatabaseTable, SyncedTableSpec, NewPipelineSpec, SyncedTableSchedulingPolicy

# Initialize the Workspace client
w = WorkspaceClient()

# Create a synced table in a database catalog
synced_table = w.database.create_synced_database_table(
    SyncedDatabaseTable(
        name="database_catalog.schema.synced_table",  # Full three-part name
        spec=SyncedTableSpec(
            source_table_full_name="source_catalog.source_schema.source_table",
            primary_key_columns=["id"],  # Primary key columns
            scheduling_policy=SyncedTableSchedulingPolicy.TRIGGERED,  # SNAPSHOT, TRIGGERED, or CONTINUOUS
            # Optional: timeseries_key="timestamp"  # For deduplication
            new_pipeline_spec=NewPipelineSpec(
                storage_catalog="storage_catalog",
                storage_schema="storage_schema"
            )
        ),
    )
)
print(f"Created synced table: {synced_table.name}")

# Create a synced table in a standard UC catalog
synced_table = w.database.create_synced_database_table(
    SyncedDatabaseTable(
        name="standard_catalog.schema.synced_table",  # Full three-part name
        database_instance_name="my-database-instance",  # Required for standard catalogs
        logical_database_name="postgres_database",  # Required for standard catalogs
        spec=SyncedTableSpec(
            source_table_full_name="source_catalog.source_schema.source_table",
            primary_key_columns=["id"],
            scheduling_policy=SyncedTableSchedulingPolicy.CONTINUOUS,
            create_database_objects_if_missing=True,  # Create database/schema if needed
            new_pipeline_spec=NewPipelineSpec(
                storage_catalog="storage_catalog",
                storage_schema="storage_schema"
            )
        ),
    )
)
print(f"Created synced table: {synced_table.name}")

# Check the status of a synced table
synced_table_name = "database_catalog.schema.synced_table"
status = w.database.get_synced_database_table(name=synced_table_name)
print(f"Synced table status: {status.data_synchronization_status.detailed_state}")
print(f"Status message: {status.data_synchronization_status.message}")

antarmuka baris perintah (CLI)

# Create a synced table in a database catalog
databricks database create-synced-database-table  \
  --json '{
    "spec": {
      "name": "database_catalog.schema.synced_table",
      "source_table_full_name": "source_catalog.source_schema.source_table",
      "primary_key_columns": ["id"],
      "scheduling_policy": "TRIGGERED"
    },
    "new_pipeline_spec": {
      "storage_catalog": "storage_catalog",
      "storage_schema": "storage_schema"
    }
  }'

# Create a synced table in a standard UC catalog
# new_pipeline_spec, storage_catalog, and storage_schema are optional
databricks database create-synced-database-table \
  --database-instance-name "my-database-instance" \
  --logical-database-name "databricks_postgres" \
  --json '{
    "name": "standard_catalog.schema.synced_table",
    "spec": {
      "source_table_full_name": "source_catalog.source_schema.source_table",
      "primary_key_columns": ["id"],
      "scheduling_policy": "CONTINUOUS",
      "create_database_objects_if_missing": true
    }
  }'

# Check the status of a synced table
databricks database get-synced-database-table "database_catalog.schema.synced_table"

melengkung

Buat tabel yang disinkronkan dalam katalog database.

export CATALOG_NAME=<Database catalog>
export SRC_TBL="source_catalog.source_schema.source_table"
export DEST_TBL="$CATALOG_NAME.some_schema.synced_table"
export PKS='["id"]'
export ST_CATALOG = "storage_catalog"
export ST_SCHEMA = "storage_schema"

curl -X POST https://$WORKSPACE/api/2.0/database/synced_tables \
-H "Content-Type: text/json" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data-binary @- << EOF
{
  "name": "$DEST_TBL",
  "spec": {
    "source_table_full_name": "$SRC_TBL",
    "primary_key_columns": $PKS,
    "scheduling_policy": "TRIGGERED",
  },
  "new_pipeline_spec": {
    "storage_catalog": "$ST_CATALOG",
    "storage_schema": "$ST_SCHEMA",
  }
}
EOF

Buat tabel yang disinkronkan di katalog Unity Catalog standar.

export CATALOG_NAME=<Standard catalog>
export DATABASE_INSTANCE=<database instance>
export POSTGRES_DATABASE=$CATALOG_NAME
export SRC_TBL="source_catalog.source_schema.source_table"
export DEST_TBL="$CATALOG_NAME.some_schema.sync_table"
export PKS='["id"]'
export ST_CATALOG = "storage_catalog"
export ST_SCHEMA = "storage_schema"

curl -X POST https://$WORKSPACE/api/2.0/database/synced_tables \
-H "Content-Type: text/json" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data-binary @- << EOF
{
  "name": "$DEST_TBL",
  "database_instance_name": "$DATABASE_INSTANCE",
  "logical_database_name": "$POSTGRES_DATABASE",
  "spec": {
    "source_table_full_name": "$SRC_TBL",
    "primary_key_columns": $PKS,
    "scheduling_policy": "TRIGGERED",
  },
  "new_pipeline_spec": {
    "storage_catalog": "$ST_CATALOG",
    "storage_schema": "$ST_SCHEMA",
  }
}
EOF

Periksa status tabel yang disinkronkan.

export SYNCEDTABLE='pg_db.silver.sbtest1_online'

curl --request GET \
  "https://e2-dogfood.staging.cloud.databricks.com/api/2.0/database/synced_tables/$SYNCEDTABLE" \
  --header "Authorization: Bearer dapi..."

Mode sinkronisasi dijelaskan

Tabel yang disinkronkan dapat dibuat dengan salah satu mode sinkronisasi berikut, yang menentukan bagaimana data disinkronkan dari sumber ke tabel yang disinkronkan di Postgres:

Mode sinkronisasi Description Performance
Snapshot Alur berjalan sekali untuk mengambil rekam jepret tabel sumber dan menyalinnya ke tabel yang disinkronkan. Eksekusi alur kerja berikutnya menyalin keseluruhan data sumber ke tujuan dan menggantinya secara atomis. Alur dapat dipicu secara manual, melalui API atau sesuai jadwal. Mode ini 10 kali lebih efisien daripada mode sinkronisasi Terpicu atau Berkelanjutan karena membuat ulang data dari awal. Jika Anda memodifikasi lebih dari 10% tabel sumber, pertimbangkan untuk menggunakan mode ini.
Tersulut Alur berjalan sekali untuk mengambil rekam jepret tabel sumber dan menyalinnya ke tabel yang disinkronkan. Tidak seperti mode sinkronisasi Snapshot, saat tabel yang disinkronkan disegarkan, hanya perubahan sejak eksekusi alur terakhir diambil dan diterapkan ke tabel yang disinkronkan. Refresh inkremental dapat dipicu secara manual, melalui API atau sesuai jadwal. Mode ini adalah kompromi yang baik antara jeda dan biaya, karena berjalan sesuai permintaan dan hanya menerapkan perubahan sejak eksekusi terakhir. Untuk meminimalkan jeda, jalankan alur ini segera setelah memperbarui tabel sumber. Jika Anda menjalankan ini lebih sering dari setiap 5 menit, mungkin lebih mahal daripada mode Berkelanjutan karena biaya memulai dan menghentikan alur setiap kali.
Berkelanjutan Alur berjalan sekali untuk mengambil rekam jepret tabel sumber dan menyalinnya ke tabel yang disinkronkan kemudian alur berjalan terus menerus. Perubahan berikutnya pada tabel sumber diterapkan secara bertahap ke tabel yang disinkronkan secara real time. Tidak diperlukan refresh manual. Mode ini memiliki jeda terendah tetapi biayanya lebih tinggi, karena terus berjalan.

Nota

Untuk mendukung mode sinkronisasi yang Dipicu atau Berlanjut, tabel sumber harus diaktifkan perubahan aliran data. Sumber tertentu (seperti Tampilan) tidak mendukung perubahan umpan data sehingga hanya dapat disinkronkan dalam mode Rekam Jepret.

Operasi yang didukung

Databricks merekomendasikan untuk hanya melakukan operasi berikut di Postgres untuk tabel yang disinkronkan untuk mencegah penimpaan atau inkonsistensi data yang tidak disengaja:

  • Kueri baca-saja
  • Membuat indeks
  • Menjatuhkan tabel (untuk mengosongkan ruang setelah menghapus tabel yang disinkronkan dari Katalog Unity)

Meskipun Anda dapat memodifikasi tabel ini dengan cara lain, tabel ini mengganggu alur sinkronisasi.

Menghapus tabel yang disinkronkan

Untuk menghapus tabel yang disinkronkan, Anda harus menghapusnya dari Katalog Unity lalu meletakkan tabel dalam instans database. Menghapus tabel yang disinkronkan dari Katalog Unity membatalkan pendaftaran tabel dan menghentikan refresh data apa pun. Namun, tabel tetap berada dalam database Postgres yang mendasar. Untuk mengosongkan ruang dalam instans database Anda, sambungkan ke instans dan gunakan DROP TABLE perintah .

Antarmuka Pengguna

  1. Klik Katalog di bilah sisi ruang kerja.
  2. Temukan dan pilih tabel yang disinkronkan yang ingin Anda hapus.
  3. Klik ikon menu Kebab.>Hapus.
  4. Sambungkan ke instans dengan psql, editor SQL, atau dari buku catatan.
  5. Hapus tabel menggunakan PostgreSQL.
    DROP TABLE synced_table_database.synced_table_schema.synced_table
    

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a synced table from UC
synced_table_name = "catalog.schema.synced_table"
w.database.delete_synced_database_table(name=synced_table_name)
print(f"Deleted synced table from UC: {synced_table_name}")

# To free up space in your database instance, you need to connect to the
# instance and drop the table using PostgreSQL:
#
# DROP TABLE synced_table_database.synced_table_schema.synced_table;

antarmuka baris perintah (CLI)

# Delete a synced table from UC
databricks database delete-synced-database-table "catalog.schema.synced_table"

# To free up space in your database instance, you need to connect to the
# instance and drop the table using PostgreSQL:
#
# DROP TABLE synced_table_database.synced_table_schema.synced_table;

melengkung

# Delete a synced table from UC
curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  https://$WORKSPACE/api/2.0/database/synced_tables/$SYNCED_TABLE_NAME

# To free up space in your database instance, you need to connect to the
# instance and drop the table using PostgreSQL:
#
# DROP TABLE synced_table_database.synced_table_schema.synced_table;

Kepemilikan dan izin

Jika Anda membuat database, skema, atau tabel Postgres baru, kepemilikan Postgres diatur sebagai berikut:

  • Kepemilikan ditetapkan kepada pengguna yang membuat database, skema, atau tabel, jika login Azure Databricks mereka terdaftar sebagai peran di Postgres. Untuk menambahkan peran identitas Azure Databricks di Postgres, lihat Mengelola peran Postgres.
  • Jika tidak, kepemilikan ditetapkan kepada pemilik objek induk di Postgres (biasanya databricks_superuser).

Mengelola akses tabel yang disinkronkan

Setelah tabel yang disinkronkan dibuat, databricks_superuser dapat READ tabel yang disinkronkan dari Postgres. databricks_superuser memiliki pg_read_all_data, yang memungkinkan peran ini membaca dari semua tabel. Ini juga memiliki hak istimewa pg_write_all_data, yang memungkinkan peran ini untuk menulis ke semua tabel. Ini berarti bahwa databricks_superuser juga dapat menulis ke tabel yang disinkronkan di Postgres. Lakebase mendukung perilaku penulisan ini jika Anda perlu membuat perubahan mendesak dalam tabel target Anda. Namun, Databricks merekomendasikan untuk membuat perbaikan di tabel sumber Anda sebagai gantinya.

  • juga databricks_superuser dapat memberikan hak istimewa ini kepada pengguna lain:

    GRANT USAGE ON SCHEMA synced_table_schema TO user;
    
    GRANT SELECT ON synced_table_name TO user;
    
  • databricks_superuser dapat mencabut hak istimewa ini:

    REVOKE USAGE ON SCHEMA synced_table_schema FROM user;
    
    REVOKE {SELECT | INSERT | UPDATE | DELETE} ON synced_table_name FROM user;
    

Mengelola operasi tabel yang disinkronkan

databricks_superuser dapat mengelola siapa saja pengguna yang diizinkan melakukan operasi tertentu pada tabel yang disinkronkan. Operasi yang didukung untuk tabel yang disinkronkan adalah:

  • CREATE INDEX
  • ALTER INDEX
  • DROP INDEX
  • DROP TABLE

Semua operasi DDL lainnya ditolak untuk tabel yang disinkronkan.

Untuk memberikan hak istimewa ini kepada pengguna tambahan, databricks_superuser harus terlebih dahulu membuat ekstensi pada databricks_auth:

CREATE EXTENSION IF NOT EXISTS databricks_auth;

databricks_superuser Kemudian dapat menambahkan pengguna untuk mengelola tabel yang disinkronkan:

SELECT databricks_synced_table_add_manager('"synced_table_schema"."synced_table"'::regclass, '[user]');

databricks_superuser dapat menghapus pengguna dari mengelola tabel yang disinkronkan:

SELECT databricks_synced_table_remove_manager('[table]', '[user]');

databricks_superuser dapat melihat semua manajer:

SELECT * FROM databricks_synced_table_managers;

Pemetaan jenis data

Tabel pemetaan jenis ini menentukan bagaimana setiap jenis data dalam tabel Unity Catalog sumber dipetakan ke tabel sinkronisasi tujuan di Postgres:

Jenis kolom sumber Jenis kolom Postgres
BIGINT BIGINT
BINER BYTEA
BOOLEAN BOOLEAN
TANGGAL DATE
DECIMAL(p,s) NUMERIK
DOBEL PRESISI GANDA
FLOAT WAKTU NYATA
INT INTEGER
INTERVAL intervalQualifier interval waktu
SMALLINT SMALLINT
STRING TEKS
TIMESTAMP PENANDA WAKTU DENGAN ZONA WAKTU
TIMESTAMP_NTZ TANDA WAKTU TANPA ZONA WAKTU
TINYINT SMALLINT
GEOGRAPHY(srid) TIDAK DIDUKUNG
GEOMETRI (srid) TIDAK DIDUKUNG
ARRAY < elementType > JSONB
MAP < keyType,valueType > JSONB
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > JSONB
VARIAN JSONB
OBJEK TIDAK DIDUKUNG

Nota

  • Pemetaan untuk jenis ARRAY, MAP, dan STRUCT diubah pada Mei 2025. Tabel yang disinkronkan sebelum itu akan terus memetakan jenis ini ke JSON.
  • Pemetaan untuk TIMESTAMP diubah pada Agustus 2025. Sinkronkan tabel yang dibuat sebelum itu terus memetakannya ke TIMESTAMP TANPA ZONA WAKTU.

Menangani karakter yang tidak valid

Karakter tertentu, seperti byte null (0x00), diizinkan dalam kolom STRING, ARRAY, MAP, atau STRUCT pada tabel Delta tetapi tidak didukung di kolom Postgres TEXT atau JSONB. Akibatnya, menyinkronkan data tersebut dari Delta ke Postgres dapat menyebabkan kegagalan penyisipan dengan kesalahan:

org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00

org.postgresql.util.PSQLException: ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text.
  • Kesalahan pertama terjadi ketika byte null muncul di kolom string tingkat atas, yang langsung dipetakan ke Postgres TEXT.
  • Kesalahan kedua terjadi ketika byte null muncul dalam string yang disarangkan di dalam jenis kompleks (STRUCT, ARRAY, atau MAP), yang oleh Azure Databricks diserialisasikan sebagai JSONB. Selama serialisasi, semua string ditransmisikan ke Postgres TEXT, di mana \u0000 tidak diizinkan.

Cara mengatasinya:

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

  • Membersihkan bidang string

    Hapus atau ganti karakter yang tidak kompatibel dari semua bidang string, termasuk yang berada di dalam tipe data kompleks, sebelum menyinkronkan ke Postgres.

    Untuk menghapus byte null dari kolom tingkat STRING atas, gunakan REPLACE fungsi :

    SELECT REPLACE(column_name, CAST(CHAR(0) AS STRING), '') AS cleaned_column FROM your_table;
    
  • Konversi ke biner (hanya untuk STRING kolom)

    Jika mempertahankan konten byte mentah diperlukan, konversikan kolom yang terpengaruh STRING menjadi BINARY.

Batasan dan pertimbangan

Tabel sumber yang didukung

Bergantung pada mode sinkronisasi tabel yang disinkronkan, berbagai jenis tabel sumber didukung:

  • Untuk mode Rekam Jepret, tabel sumber harus mendukung SELECT *. Contohnya termasuk tabel Delta, tabel Iceberg, tampilan, tampilan materialisasi, dan jenis serupa lainnya.

  • Untuk Mode sinkronisasi Terpicu atau Berkelanjutan, tabel sumber juga harus mengaktifkan umpan data perubahan .

Batasan penamaan dan pengenal

  • Karakter yang diizinkan: Nama database, skema, dan tabel Postgres untuk tabel yang disinkronkan mungkin hanya berisi karakter alfanumerik dan garis bawah ([A-Za-z0-9_]+). Tanda hubung (-) dan karakter khusus lainnya tidak didukung.
  • Pengidentifikasi kolom dan tabel: Hindari menggunakan huruf besar atau karakter khusus dalam nama kolom atau tabel dalam tabel Unity Catalog sumber. Jika disimpan, Anda perlu mengutip pengidentifikasi ini saat mereferensikannya di Postgres.

Kinerja dan sinkronisasi

  • Kecepatan sinkronisasi: Menyinkronkan data ke dalam tabel yang disinkronkan mungkin lebih lambat daripada menulis data langsung ke instans database dengan klien PostgreSQL asli karena pemrosesan tambahan. Mode sinkronisasi berkelanjutan me-refresh data dari tabel terkelola Katalog Unity ke tabel yang disinkronkan dengan interval minimum 15 detik.
  • Penggunaan koneksi: Setiap sinkronisasi tabel dapat menggunakan hingga 16 koneksi ke instans database, yang dihitung terhadap batas koneksi instans.
  • Idempotensi API: API tabel yang tersinkronisasi adalah idempoten dan mungkin perlu dicoba ulang jika terjadi kesalahan untuk memastikan operasi berlangsung tepat waktu.
  • Perubahan skema: Untuk tabel yang disinkronkan dalam Triggered atau Continuous mode, hanya perubahan skema aditif (misalnya, menambahkan kolom baru) dari tabel Katalog Unity yang diterapkan pada tabel yang disinkronkan.
  • Kunci duplikat: Jika dua baris memiliki kunci utama yang sama dalam tabel sumber, alur sinkronisasi gagal kecuali Anda mengonfigurasi deduplikasi menggunakan Kunci Timeseries. Namun, menggunakan Kunci Timeseries mengandung penalti kinerja.
  • Laju pembaruan: Alur sinkronisasi mendukung penulisan berkelanjutan pada sekitar 1.200 baris per detik per Unit Kapasitas (CU) dan penulisan massal hingga 15.000 baris per detik per CU.

Kapasitas dan batasan

  • Batas tabel:
    • Batas 20 tabel yang disinkronkan per tabel sumber.
    • Setiap sinkronisasi tabel dapat menggunakan hingga 16 koneksi database.
  • Batas ukuran dan refresh penuh:
    • Jika Anda me-refresh penuh tabel yang disinkronkan, versi lama di Postgres tidak dihapus hingga tabel baru disinkronkan. Kedua versi untuk sementara masuk dalam perhitungan batas ukuran database logis selama refresh.
    • Tabel individual yang disinkronkan tidak memiliki batas, tetapi batas ukuran data logis total di semua tabel dalam instans adalah 2 TB. Namun, jika Anda memerlukan penyegaran alih-alih pembuatan ulang tabel secara penuh, Databricks merekomendasikan untuk tidak melebihi 1 TB.
    • Jika ukuran format baris tabel Unity Catalog yang tidak dikompresi melebihi batas ukuran instans database (2 TB), sinkronisasi gagal. Anda harus menghilangkan tabel yang disinkronkan di Postgres sebelum menulis lebih lanjut ke instans.

Integrasi katalog

  • Duplikasi katalog: Membuat tabel yang disinkronkan dalam katalog standar yang menargetkan database Postgres yang juga terdaftar sebagai katalog database terpisah menyebabkan tabel yang disinkronkan muncul di Katalog Unity di bawah katalog standar dan database.