Deepgreen TDE | Equnix Business Solutions

Frequently Asked Questions

Apakah semua open source bisa dilayani oleh Equnix? Apakah Equnix melakukan seleksi terlebih dahulu dari sekian banyak solusi open source, apa kriteria seleksinya? Berapa banyak expertise di Equnix untuk menunjang open source tersebut?


Tidak semua, kita melakukan seleksi, kita memiliki kriteria Open Source yang kita support adalah software Open Source yang Pure, tidak semua Open Source itu Pure. Umumnya adalah software pendukung infrastruktur seperti OS Linux, PostgreSQL, Apache, GNU, dll.

Kita menggunakan ERP yang kita develop sendiri dengan menggunakan MySQL sebagai databasenya. Ketika kita nanti mau upgrade ERP kita memungkinkan tidak untuk migrasi dari MYSQL ke PostgresQL Enterprise. Kira-kira tantangan terbesarnya di mana?


Tantangan terbesarnya bilamana ingin lakukan migrasi sendiri adalah dikonversi stored procedurenya, secara umum migrasi dari database satu ke lainnya mostly di codenya, yaitu stored procedure, trigger, maupun sql statement, biasanya yang dipakai untuk query

PostgreSQL most database open source dari Enterprise Production, Data Warehouse dan Business Intelligence, yang mewakili Reliability, Availability dan Scalability. Deepgreen dan Xdrive untuk keperluan data source. Banyak kelebihan dari segi apapun, untuk Open Source ini apakah ada jaminan mengenai database nya? dan kecepatan tidak berpengaruh jika field banyak!


Jaminan tentunya tidak diberikan dari Open Sourcenya, oleh karena itulah siapapun yang membutuhkan jaminan untuk penggunaan Open Source harus membeli jaminan tersebut dalam bentuk Layanan Premium, atau bentuk lainnya. Equnix sebagai perusahaan penyedia solusi IT memberikan layanan premium untuk PostgreSQL dan menjamin sampai dengan level Principal (https://equnix.asia/solution/subscription)

Bagaimana cara untuk menghindari kelebihan beban di salah satu node server, sementara pada saat yang sama saya ingin mengoptimalkan pemanfaatan sumber daya, memaksimalkan throughput, meminimalkan waktu respons?


Dalam Deepgreen, penentuan distribution key adalah hal yang sangat penting juga dalam mendistribusikan data ke multiple data node. Hal ini juga merupakan salah satu bentuk optimisasi yang dilakukan, agar ketika data menyebar secara merata dan juga complex query yang dipanggil nantinya juga menjadi lebih cepat. Distribution key akan menentukan dimana data akan diletakkan berdasarkan kategori key tersebut, dan bilamana sudah didistribusikan secara merata, maka semua node akan dapat bekerja secara paralel dan mengembalikan hasil dengan lebih cepat.

Saya agak tertarik test query antara Deepgreen vs Oracle yang performancenya sangat signifikan, yang mau saya tanyakan apakah pada saat dilakukan testing query architecture database yang sama?


Untuk struktur dari table tentunya sama, begitu juga jumlah data yang dilakukan pengujian. Yang berbeda sebetulnya adalah karena pada Deepgreen ini menggunakan topology Massive Parallel Processing, dimana terdiri dari beberapa node yang bekerja secara paralel, sehingga dengan demikian dapat dilakukan complex query secara bersamaan dengan tempo waktu yang lebih singkat, karena secara data juga didistribusikan ke masing-masing data node.

Apakah sampai sekarang PostgreSQL masih belum mendukung selectable stored procedure?


Di dalam PostgreSQL sebetulnya stored procedure dianggap sebagai function, dan semua function ini bisa dipanggil dengan SELECT dan dapat mengembalikan record set. Mulai dari PostgreSQL v 11, sudah didukung syntax CREATE PROCEDURE. Ketika dilakukan SELECT dari stored procedure tersebut, dapat juga dipilih kolom dari return set nya, dimana tentunya di dalam stored procedure tersebut, kita perlu lakukan definisi kolom-kolomnya terlebih dulu dari untuk dikembalikan dalam record set.

Apa kelebihan PostgreSQL ini dibanding dengan database lainnya? dan kenapa memutuskan menggunakan PostgreSQL dalam penerapan BIG Data?


Sebetulnya sudah disebutkan:

  1. Truly ACID Compliance
  2. Hanya PostgreSQL yang mampu dibandingkan dengan Oracle sebagai Mission Critical Financial related Transaction System.
  3. Native Streaming Replication (tanpa membutuhkan tools tambahan)
  4. Logical Replication (replikasi secara selektif, tidak 1 instance)
  5. Dukungan HA yang mumpuni (dengan dukungan hot standby)
  6. Ekstensibilitas yang tinggi
  7. Performa yang tinggi
  8. Open Source, sehingga mudah untuk dilakukan modifikasi dan patching secara mandiri.
  9. FDW (bisa mengakses data source external yang lain)
  10. Dukungan RAS yang tinggi

Salah 1 alasanya adalah karena yang sudah disebutkan di point 1, khususnya untuk Big Data yang bersifat structured data, PostgreSQL as RDBMS sangat cocok dan memiliki performance yang baik. Lebih baik lagi menggunakan yang sudah didesain untuk itu seperti Deepgreen

Jika saat ini memakai Oracle Database Enterprise Edition sebagai core DB.

  1. Jika ingin migrate/convert ke PostgreSQL, apa saja langkah-langkah yang perlu dilakukan?
  2. Bagaimana Equnix dapat membantu dalam proses migrasinya? Melihat postgresql memang paling mirip dengan Oracle, tetapi kadang ada perbedaan-perbedaan atau limitasi di function, procedure dll. Apakah Equnix ada tools untuk membantu melakukan konversi / migrate ini dengan mulus dan minimal downtime?
  3. Untuk Query Ratusan Juta Records, Deepgreen bisa menghasilkan resultnya dalam rata-rata berapa detik?

  1. Ada beberapa langkah, semuanya lengkap dijelaskan pada website kami, silakan Pak: https://equnix.asia/solution/migration
  2. Charge migration kita per mandays dari mulai Comprehensive Assessment sampai dengan semua stages Migration Effortnya, silahkan kontak Marketing kami untuk lebih lanjut (https://equnix.asia/about/contact)
  3. Bergantung kepada query seperti apa, dan berapa jumlah node yang dikonfigurasi, karena semakin banyak jumlah node dan juga clock dari processor yang digunakan, maka akan bisa semakin cepat. 100 juta itu jumlah yang tidak besar dewasa ini, dengan test kami data dengan 1 milyar bisa di query dalam beberapa detik (slide no 28)

Bagaimana cara membangun structure database di sebuah perusahaan manufacturing dari awal untuk membangun sebuah Big Data?


Referred kepada general topology yang kami sampaikan tadi, ada 4 site yang perlu kita konfigurasi. Pertama adalah di sisi Main Data Center, dimana perlu dibuat terlebih dahulu konfigurasi HA serta untuk kebutuhan Reporting dan Historical, kemudian juga perlu dilakukan konfigurasi untuk DRC. Dari Main Data Center, kemudian diimplementasikan juga Multi-Tier Backup mechanism yang baik, baru kemudian mengimplementasikan Data Warehouse configuration untuk kebutuhan Analytics dan BI.

Berapa persentase kebutuhan Memory untuk shared_buffers. for example :Sets the amount of memory that the database server uses for shared memory buffers ?


Secara rule of thumbs-nya, shared_buffers adalah sekitar 25-30% dari total physical memory, tetapi tentunya untuk performance, parameter memory lain seperti work_mem, effective_cache_size, wal_buffer, dll, itu juga bergantung kepada behaviour application/query yg masuk. Tentunya juga perlu diperhitungkan memory yang dipakai oleh OS.


Terkait performance benchmark antara PostgreSQL vs Oracle, parameter benchmark nya seperti apa ? metode benchmarknya bagaimana?


Untuk yang saya jelaskan di slide itu adalah membandingkan query-query reporting antara Oracle dengan di Deepgreen, jadi bukan menggunakan metode benchmark standard seperti TPC-C atau yang lainnya. Benchmark Database Standard dilakukan dengan menggunakan TPC-C yang merupakan standard benchmark Database, silakan pelajari TPC-C pada https://www.tpc.org. Parameter metode dan mekanismenya dijelaskan semuanya pada website tersebut, itu adalah standard dunia benchmark untuk RDBMS.


  1. Apakah PostgreSQL bisa replace MySQL atau database yang sudah existing, atau kita bisa kombinasikan dengan yang sudah ada?
  2. Bagaimana untuk PostgreSQL bisakah untuk mirroring dan replikasi dari production kita ke DR?

  1. Tentunya bisa untuk me-replace MySQL dan sangat kita endorse untuk hal tersebut, mengingat MySQL sebetulnya juga tidak cocok untuk production database yang mission critical, karena sering sekali ditemukan adanya data corruption dan secara performance pun tidak secepat PostgreSQL setelah di tuning.
  2. Sangat bisa sekali untuk replikasi dari production data center ke DRC, dengan menggunakan asynchronous native streaming replication.

Bagaimana penanganan concern dari customer khususnya terkait dengan security dan compliance jika menggunakan aplikasi open source ini dari pihak Equnix?


Security compliance pada dasarnya memiliki standarisasi, ada ISO 27001, PCI-DSS, NSI-CSS, ataupun standard security compliance lainnya nantinya yang mungkin akan ada. Tidak ada masalah dengan semua compliance yang dimaksud di atas, selama memiliki Vendor yang mumpuni dan kompeten. Vendor lah yang akan melakukan mitigasi, adjustment, tuning maupun refactor source code untuk menyesuaikan dengan kebutuhan yang ada. Kami memiliki pengalaman yang sesuai dengan kebutuhan ini, salah satu client kami sebuah Bank Nasional menggunakan jasa Konsultan Security, dan mereka comes up dengan 6 point of concern, kami hanya butuh waktu kurang dari 1 hari untuk melakukan customization agar kita bisa compliance dengan point tersebut.


Bagaimana dengan monitoring traffic dari segi database, resources pemakaian dan bagaimana upgrade firmware nya agar aplikasi bisa mengikuti?


Ada beberapa monitoring views yang bisa dianalisa untuk semua usage PostgreSQL instance, seperti jumlah data yang di-fetch, read, inserted, updated, deleted, dan dapat dikalkulasikan untuk mendapatkan insight mengenai besarnya load yang diterima oleh PostgreSQL. Untuk resource usage, tentunya ini adalah bagian dari OS monitoring, dimana perlu juga adanya tambahan statistic usage specific untuk PostgreSQL process. Untuk versioning pada PostgreSQL, sebetulnya hanya perlu untuk mengupdate saja driver yang digunakan. PostgreSQL sendiri bersifat backward compatible, sehingga jika ada upgrade version, aplikasi sangat less likely sekali untuk perlu di-update juga dari sisi logic. Seperti contohnya PostgreSQL sebelum version 10 dan semenjak version 10, yang berbeda hanyalah fungsi-fungsi yang berkaitan dengan operasional dan administratif, sementara query-query yang dipanggil oleh aplikasi tidak ada perubahan yang signifikan.

  1. Bisakah kita membuat Big Data dengan banyak platform database? karena kasus di perusahaan kami untuk postgresql masih baru baru dipakai, kebanyakan menggunakan SQL server dan ada yang MySQL
  2. Apabila menggunakan 3 platform itu apa memungkinkan untuk membangun Big Data yang terintegrasi satu sama lainnya? dan seberapa sulit/mudah kah dengan konsep di atas?

  1. Pengertian Big Data itu sendiri masih perlu diperjelas, secara umum pengertian Big Data diaplikasikan untuk data yang tidak terstruktur, dan contohnya seperti penggunaan Hadoop, Cassandra, dll. Sebaiknya bilamana ingin membangun Big Data maupun Datalake (database RDBMS atau just bunch of storages) sebaiknya menggunakan teknologi yang sama agar efisien, namun bilamana menggunakan PostgreSQL sebagai pusat query data dalam islands of databases (ada MySQL, ada Oracle, ada MSSQL) maka sangat menarik, karena PostgreSQL memiliki FDW (Foreign Data Wrapper) yang mampu menarik data dari berbagai jenis database tersebut.
  2. Sudah dijelaskan pada poin 1 diatas, secara umum tidak disarankan dan cukup sulit untuk maintenance kedepannya.

Apakah PostgreSQL bisa dijadikan sebagai active 2 database (2 DC)? seperti kita tahu sekarang sudah mulai banyak distributed database seperti Cockroachdb, Yugabite dll yang mana protokolnya based on postgres


PostgreSQL memiliki banyak fork, salah satunya adalah yang mendukung replikasi dua arah (Bi-Directional Replication). Hal ini bisa dicapai dengan PostgreSQL versi khusus, dimana replikasi dua arah ini memanfaatkan logical decoding dari transaction log yang dituliskan, sehingga kedua instance bisa dibuat menjadi mode Master dan Master. Namun demikian, perlu dicermati bahwa mekanisme BDR ini tidak disarankan untuk model OLTP untuk melakukan load-balancing, karena ada potensi jika melakukan update pada 1 row yang sama secara bersamaan di kedua Master instance, maka dapat terjadi conflict terhadap data. BDR ini diperuntukan kepada topologi yang terpisah secara geografis, misalnya instance A ditulis oleh application A dan instance B ditulis oleh application B, yang mengakses 2 data yang berbeda. Tujuan utama dari BDR ini adalah untuk mereplikasikan 2 data dari 2 sumber yang berbeda, dimana masing-masing instance tersebut butuh untuk mengakses data dari sumber dari peer-nya.


Untuk keamanannya bagaimana? Karena kami bergerak di bidang finance dan data customer kami sangat rahasia, jadi bagaimana Equnix bisa mensupport kita tapi dengan keamanan yg maximal, dan untuk supportnya jika ada case severity 1 itu masa penanganan brp lama?


Berbicara keamanan dalam sistem IT, ada 2 hal yang harus kita sasar:

  1. Keamanan data
    PostgreSQL sebagai server database memiliki kemampuan menjaga data integrity yang tinggi, oleh karena itulah hanya Oracle yang dapat dibandingkan dengan PostgreSQL, dan juga inilah alasan utama PostgreSQL banyak dipergunakan di lingkungan Perbankan, Telecommunication, Retail, Fintech, dan asal diketahui most E-Commerce site banyak beralih ke PostgreSQL. Dalam Konsep RDBMS ada pillar ACID (Atomicity, Consistency, Isolation dan Durability) compliance terhadap 4 pilar tersebut adalah keharusan, hanya RDBMS tertentu saja yang mampu melaksanakan compliance nya secara maksimal, salah satunya adalah PostgreSQL. Selain masalah integritas data, juga kita memahami data yang kita letakkan di dalam storage perlu diamankan agar tidak dapat dibaca secara offline (oleh orang yang tidak bertanggung jawab) untuk itu perlu adanya enkripsi data, dalam hal ini PostgreSQL belum memilikinya secara native, namun kita sudah memiliki solusi dengan menggunakan layanan pihak ketiga yang mampu memberikan enkripsi data secara simultan, data tetap terenkripsi walau dipergunakan sebagai acuan filter.
  2. Keamanan akses
    PostgreSQL memiliki banyak fitur untuk memastikan akses tidak dilakukan oleh mereka yang tidak bertanggung jawab: SSL, Kerbero, GSS-API, dan masih banyak lagi. Postgres memiliki tingkat keamanan yang tinggi dan dapat dipertanggungjawabkan, silakan hubungi marketing kami untuk elaborasi lebih lanjut (https://equnix.asia/about/contact)


Bagaimana cara migrasi data dari database yang sudah end of support version?


PostgreSQL memiliki tools bernama pg_upgrade, dimana dapat digunakan untuk upgrade versi yang paling lama, sampai dengan versi yang terbaru. Proses upgrade ini membutuhkan downtime dari instance, dan akan melakukan proses translasi yang dibutuhkan dari instance versi yang lama ke versi yang baru.


  1. Terkait dengan availability ketika terjadi failover ke DRC apakah ada konfigurasi yang harus dilakukan atau ada secara database bisa secara langsung?
  2. Apakah Deepgreen terdapat license terpisah? jika iya apakah based on CPU atau apa ya pak?

  1. Untuk ke DRC sendiri umumnya kita sebut dengan swing over, karena failover itu biasanya istilah yang digunakan dalam HA (High Availability) yang ada di site yang sama. Proses swing over dari DC ke DRC ini tidak boleh dibuat otomatis, karena swing over membutuhkan keputusan politis kadang sampai dengan top level management. Risiko yang muncul dari Swing Over adalah risiko yang cukup besar dan sangat mempengaruhi bisnis perusahaan secara keseluruhan, berbeda dengan Failover HA itu hanya risiko teknis, kecuali gagal failover dalam waktu yang lama. Mengapa disebut risikonya cukup besar? Karena seluruh sistem harus berpindah (termasuk aplikasi) dan proses recoverynya akan cukup memakan waktu (kalau swing over yang sebenarnya), ada banyak risiko yang terlibat, secara umum keputusan swing over adalah keputusan manajemen, bukan teknis. Dengan dukungan Vendor yang kompeten, maka proses Swing Over dapat dilaksana dengan mudah dan terkontrol, Vendor seperti kami akan menjaga agar proses tersebut dapat terlaksana dengan baik, dan membuat tools dan script yang dibutuhkan agar proses dapat dilaksanakan dengan baik.
  2. Deepgreen menggunakan license komersial dihitung per core dan ada mandays untuk proses implementasi awal, silakan bisa dilihat lebih lanjut informasinya di https://equnix.asia/product/datawarehouse

Kita sudah mendengar kelebihan Open Sources, yang mau saya tanyakan, apa kekurangan Open Sources jika dibandingkan dengan Close Sources/berbayar?


Dalam memilih teknologi kita juga harus belajar memahami apa kekurangannya, begitu pula dengan PostgreSQL ataupun Open Source Software lainnya. Untuk OSS (Open Source Software) secara umum, jawabnya adalah: tidak adanya EKOSISTEM yang mature/mapan, yang mendukung ketersediaan layanan baik dari principal support, expert support, technical support, business oriented roadmap, kematangan QC, secara umum tidak adanya tanggung jawab profesional dan tanggung jawab keberlanjutan. Untuk itulah kita harus menggunakan perusahaan yang mumpuni dan secara profesional memiliki expertise dan kompetensi untuk melayani penggunaan OSS dalam bisnis yang mission critical.

Untuk PostgreSQL, ada beberapa hal, seperti:

  • Proses VACUUM,
  • Tidak user friendly,
  • Konfigurasi dan tuningnya cukup rumit, membutuhkan pengetahuan mendasar mengenai arsitektur.
  • Postgres sebagai sistem pengolah data memiliki tanggung jawab yang sangat besar, kesalahan penanganan akan berakibat hilangnya data dan berujung pada resiko bisnis, tentunya harus dilakukan dengan kecermatan dan implementasi yang kompeten.

Kesemuanya itu tidak akan menjadi masalah, bilamana sudah menggunakan layanan mumpuni dari vendor yang memiliki kompetensi penuh, seperti yang sudah kita lakukan dengan client-client kita selama ini.


  1. Apakah ada support pada Enterprise PostgreSQL bila customer menemui kendala atau masalah? Untuk mekanisme pelaporan dan handling problemnya seperti apa?
  2. Apakah ada keterbatasan enterprise PostgreSQL dari sisi size database, jumlah tabel, row, dan column?
  3. Apakah dapat berjalan optimal bila baik data source, staging maupun server node berada terpencar di lokasi terpisah, baik di cloud maupun on premise?
  4. Berdasarkan "Batch Insert Testing Result", Apakah database/tabel tujuan dari "Batch Insert 100 Million" ini memiliki index?
  5. Berkaitan dengan workload optimization, apakah dimungkinkan pemisahan resource untuk workload setiap tenant atau user agar tidak mengganggu resource secara keseluruhan?
  6. Apakah Deepgreen menyediakan versi communitynya? dan Bagaimana minimum spesifikasi server untuk menjalankan MPP untuk data hingga 1 tera?

  1. Equnix memberikan support Profesional untuk kebutuhan Enterprise support itu dari level Principal, Expert sampai dengan Teknis (https://equnix.asia/solution/subscription)
  2. Secara teori: database size unlimited, jumlah table per database sekitar 1 milyar, jumlah database sekitar 4 milyar, kolom per table 1600, size dari object/table 32 TB. Secara praktis: Batasan teori diatas itu jauh diatas dari keterbatasan perangkat keras saat ini, jadi lupakan saja keterbatasan software karena keterbatasan hardware masih jauh lebih rendah dari software. Hal ini mungkin kadang kurang dipahami secara umum, PostgreSQL is not as good as Oracle in fact, it is far better than Oracle. As long as you use the right Vendor to do that. Baik PostgreSQL dan Oracle memiliki keterbatasan yang sama, yaitu keterbatasan hardware jauh lebih rendah daripada keterbatasan delivery PostgreSQL maupun Oracle.
  3. Idealnya server nodes dan dwh manager diletakkan di 1 site, karena salah 1 faktor yang mempengaruhi performance adalah network latency. Jika diletakkan di tempat yang terpisah dan memiliki latency yang besar, maka latency itu akan terduplikasi karena komunikasi data yang bolak balik (back and forth) alhasil kinerja jauh menurun. Untuk Staging dan data source, tidak masalah jika diletakkan di lokasi terpisah, meski kami tetap suggest diletakkan pada premis yang sama.
  4. Tidak menggunakan index.
  5. Bisa di setting dengan konfigurasi tertentu, tidak bisa dilakukan jika hanya menggunakan software Postgres apa adanya tanpa support yang profesional.
  6. Sayangnya tidak, tapi bisa menggunakan Greenplum untuk yang versi tidak berbayar, Capacity Planning tidak bisa diukur hanya dengan menggunakan ukuran data saja, ada banyak faktor lain yang terlihat seperti:
    • Jumlah baris/row,
    • Seperti apa query report nya,
    • Apakah ada proses ETL yang kompleks?
    • Apakah Reportnya dari Data Raw atau dari Data Mart (cubes)
    • Dan masih banyak lagi.
    Yang jelas database dengan data 1TB tidaklah besar. 1 mesin atau setidaknya 3 (dengan backup) sangat lebih dari cukup.