Bagikan melalui


Menggunakan database penahapan di Gudang Data Paralel (PDW)

SQL Server Parallel Data Warehouse (PDW) menggunakan database penahapan untuk menyimpan data sementara selama proses pemuatan. Secara default, SQL Server PDW menggunakan database tujuan sebagai database penahapan, yang dapat menyebabkan fragmentasi tabel. Untuk mengurangi fragmentasi tabel, Anda dapat membuat database penahapan yang ditentukan pengguna. Atau, ketika putar kembali dari kegagalan beban bukan masalah, Anda dapat menggunakan mode pemuatan fastappend untuk meningkatkan performa dengan melewati tabel sementara dan memuat langsung ke tabel tujuan.

Dasar-dasar database penahapan

Database penahapan adalah database PDW yang dibuat pengguna yang menyimpan data sementara saat dimuat ke dalam appliance. Ketika database penahapan ditentukan untuk beban, appliance terlebih dahulu menyalin data ke database penahapan lalu menyalin data dari tabel sementara dalam database penahapan ke tabel permanen dalam database tujuan.

Ketika database penahapan tidak ditentukan untuk beban, Analytics Platform System (PDW) membuat tabel sementara di database tujuan dan menggunakannya untuk menyimpan data yang dimuat sebelum menyisipkan data yang dimuat ke dalam tabel tujuan permanen.

Saat beban menggunakan mode fastappend, Analytics Platform System (PDW) melompat menggunakan tabel sementara sama sekali dan menambahkan data langsung ke tabel target. Mode fastappend meningkatkan performa beban untuk skenario ELT di mana data dimuat ke dalam tabel yang merupakan tabel sementara dari titik berdiri aplikasi. Misalnya, proses ELT dapat memuat data ke dalam tabel sementara, memproses data dengan membersihkan dan men-de-duping, lalu menyisipkan data ke dalam tabel fakta target. Dalam hal ini, PDW tidak perlu memuat data terlebih dahulu ke dalam tabel sementara internal sebelum menyisipkan data ke dalam tabel sementara aplikasi. Mode fastappend menghindari langkah beban tambahan, yang secara signifikan meningkatkan performa beban. Untuk menggunakan mode fastappend, Anda harus menggunakan mode multi-transaksi, yang berarti bahwa pemulihan dari beban yang gagal atau dibatalkan harus ditangani oleh proses beban Anda sendiri.

Manfaat database penahapan

Manfaat utama database penahapan adalah mengurangi fragmentasi tabel. Jika database penahapan tidak digunakan, data dimuat ke dalam tabel sementara di database tujuan. Ketika tabel sementara dibuat dan dihilangkan di database tujuan, halaman untuk tabel sementara dan tabel permanen menjadi saling terkait. Seiring waktu, fragmentasi tabel terjadi dan menurunkan performa. Sebaliknya, database penahapan memastikan bahwa tabel sementara dibuat dan dihilangkan dalam ruang file terpisah daripada tabel permanen.

Struktur tabel database penahapan

Struktur penyimpanan untuk setiap tabel database bergantung pada tabel tujuan.

  • Untuk beban ke dalam indeks penyimpan kolom tumpukan atau berkluster, tabel penahapan adalah tumpukan.

  • Untuk beban ke dalam indeks berkluster rowstore, tabel penahapan adalah indeks berkluster rowstore.

Izin

Memerlukan izin CREATE (untuk membuat tabel sementara) pada database penahapan.

Praktik terbaik untuk membuat database penahapan

  1. Seharusnya hanya ada satu database penahapan per appliance. Database penahapan dapat dibagikan oleh semua pekerjaan beban untuk semua database tujuan.

  2. Ukuran database penahapan khusus pelanggan. Awalnya, ketika pertama kali mengisi appliance, database penahapan harus cukup besar untuk mengakomodasi pekerjaan beban awal. Pekerjaan beban ini cenderung besar karena beberapa beban dapat terjadi secara bersamaan. Setelah pekerjaan beban awal selesai dan sistem sedang dalam produksi, ukuran setiap pekerjaan beban cenderung lebih kecil. Ketika beban kecil, Anda dapat mengurangi ukuran database penahapan untuk mengakomodasi ukuran beban yang lebih kecil. Untuk mengurangi ukuran, Anda dapat menghilangkan database penahapan dan membuatnya lagi dengan alokasi ukuran yang lebih kecil, atau Anda dapat menggunakan pernyataan ALTER DATABASE .

    Saat membuat database penahapan, gunakan panduan berikut.

    • Ukuran tabel yang direplikasi harus menjadi ukuran perkiraan, per simpul Komputasi, dari semua tabel yang direplikasi yang akan dimuat secara bersamaan. Ukurannya biasanya 25-30 GB.

    • Ukuran tabel terdistribusi harus berupa ukuran perkiraan, per appliance, dari semua tabel terdistribusi yang akan dimuat secara bersamaan.

    • Ukuran log biasanya mirip dengan ukuran tabel yang direplikasi.

Contoh

J. Membuat database penahapan

Contoh berikut membuat database penahapan, Stagedb, untuk digunakan dengan semua beban pada appliance. Misalkan Anda memperkirakan bahwa lima tabel yang direplikasi dengan ukuran masing-masing 5 GB akan dimuat secara bersamaan. Konkurensi ini menghasilkan alokasi setidaknya 25 GB untuk ukuran yang direplikasi. Misalkan Anda memperkirakan bahwa enam tabel terdistribusi dengan ukuran 100, 200, 400, 500, 500, dan 550 GB akan dimuat secara bersamaan. Konkurensi ini menghasilkan alokasi setidaknya 2250 GB untuk ukuran tabel terdistribusi.

CREATE DATABASE Stagedb  
WITH (  
  
    AUTOGROW = ON,  
  
    REPLICATED_SIZE = 25 GB,  
  
    DISTRIBUTED_SIZE = 2250 GB,  
  
    LOG_SIZE = 25 GB  
  
);