Log in to leave a comment
No posts yet
Jika Anda adalah seorang insinyur tunggal yang lelah menunggu persetujuan pembayaran alat BI berbayar dan memutuskan untuk membangun dasbor sendiri di dalam pipa data, Redash adalah alternatif yang paling realistis. Namun, Anda tidak boleh berhenti hanya pada visualisasi hasil kueri. Pintu neraka akan terbuka saat kueri agregasi yang berat melumpuhkan DB operasional, atau ketika informasi sensitif pelanggan terekspos di dasbor yang dibagikan ke tim pemasaran. Saya telah merangkum pengaturan spesifik untuk mengamankan stabilitas kelas enterprise sambil tetap menghemat anggaran infrastruktur.
Situasi di mana kueri analisis menjadi penyebab gangguan layanan adalah hal yang umum terjadi di startup tahap awal. Menjalankan kueri dengan join yang kompleks pada DB operasional setiap saat sangatlah berisiko. Dengan menggunakan Query Results Data Source (QRDS) milik Redash, Anda dapat secara fisik memisahkan beban yang diberikan ke server operasional. QRDS bekerja dengan cara memindahkan data sumber ke mesin SQLite internal Redash untuk diproses.
Dalam praktiknya, bahkan pada spesifikasi setingkat AWS t3.medium, penggunaan QRDS dapat mengurangi beban DB hingga lebih dari 80%. Pertama, aktifkan QRDS di pengaturan data source. Tulis satu kueri agregasi yang berat, ingat nomor ID kueri tersebut, lalu panggil di jendela kueri lain dengan format SELECT * FROM cached_query_123. Struktur ini membuat DB operasional hanya diakses satu kali, sementara pengguna dasbor hanya melihat hasil yang sudah di-cache.
Hal yang perlu diperhatikan di sini adalah manajemen background worker. Satu worker Celery biasanya memakan memori sekitar 200MB hingga 400MB saat memproses hasil kueri. Jika jumlah kueri yang menunggu di jalur /status.json terus bertambah, Anda perlu menyesuaikan WORKERS_COUNT. Berhati-hatilah karena menambah jumlah worker saat memori tidak mencukupi akan menyebabkan instans mati.
Berbagi data adalah pedang bermata dua. Saat memberikan izin kepada tim pemasaran atau perencanaan, Anda harus membuat dan menetapkan grup View Only secara terpisah. Prioritas utamanya adalah mencegah mereka mengubah kueri secara tidak sengaja atau menjelajahi struktur tabel.
Untuk memblokir insiden keamanan dari sumbernya, buatlah akun Read-only baru di level mesin DB yang hanya memiliki izin SELECT. Kemudian, definisikan sebuah View di mana informasi sensitif seperti email atau nomor telepon dimasking menggunakan fungsi CONCAT dalam SQL menjadi seperti jo**@gm****.com. Hubungkan Redash hanya ke View ini. Dengan demikian, analis bisa mendapatkan angka statistik yang diperlukan, namun tetap tidak bisa melihat data asli sama sekali.
Serangan luar dapat ditangkis dengan pengaturan Nginx. Merupakan standar dasar untuk memblokir semua akses di luar IP tetap kantor dan rentang VPN internal dengan instruksi deny all. Selain itu, menyalakan variabel lingkungan REDASH_DISABLE_PUBLIC_URLS dapat mencegah situasi di mana URL publik dibuat tanpa sepengetahuan administrator sehingga data bocor ke luar.
Dasbor tidak hanya bermakna saat sedang dilihat. Ketika metrik tertentu melewati ambang batas, sistem harus menyapa Anda terlebih dahulu. Dengan menghubungkan fitur Redash Alert ke Slack Webhook, pengembang dapat segera turun tangan saat terjadi kegagalan pembayaran atau error server.
Jika Anda menyertakan {{ALERT_NAME}} dan {{QUERY_RESULT_VALUE}} dalam templat pesan pemberitahuan, Anda dapat langsung mengetahui tingkat keparahan situasi hanya dengan melihat pesan Slack. Dengan sistem ini, waktu yang dibutuhkan dari mendeteksi gangguan hingga mulai melakukan debugging dapat berkurang lebih dari setengahnya.
Namun, jika pemberitahuan dikirim untuk setiap perubahan, Anda akhirnya akan mengabaikan pesan tersebut karena 'kelelahan alarm'. Gunakan pengaturan Just Once agar pemberitahuan hanya datang saat metrik pertama kali melewati batas dan saat kembali normal. Memasukkan logika untuk menghitung tingkat pertumbuhan dibandingkan waktu sebelumnya di dalam kueri, alih-alih angka absolut, akan memudahkan Anda karena tidak perlu mengubah ambang batas setiap kali layanan berkembang.
Jika Anda menghabiskan satu atau dua jam setiap hari hanya untuk permintaan ekstraksi data sederhana, itu adalah bukti bahwa Anda tidak menggunakan parameter kueri dengan benar. Memasukkan sintaks seperti {{ date_range }} ke dalam kueri akan memunculkan widget pemilihan tanggal di bagian atas dasbor. Biarkan staf non-teknis mengekstrak data sendiri dengan mengubah periode waktu secara langsung.
Untuk mencegah kesalahan kueri akibat saltik (typo), disarankan menggunakan tipe Dropdown List. Untuk data yang sering berubah seperti daftar produk, hubungkan Query Based Dropdown List agar daftar terbaru diperbarui secara otomatis.
Demi keamanan, sebaiknya hindari tipe input teks. Hal ini dapat menjadi jalur serangan SQL injection, sehingga Redash pun hanya mengizinkannya secara terbatas bagi pengguna dengan otoritas administrator. Sangat aman untuk hanya menempatkan pemilih tanggal atau dropdown di dasbor pengguna umum agar mereka hanya dapat memilih nilai yang telah divalidasi. Dengan menciptakan lingkungan seperti ini, pengembang dapat menghemat waktu untuk fokus pada implementasi logika inti.