Membuat environment container mysql-server yang fleksibel dan dinamis

Motivasi

Untuk memudahkan dalam mengelola environment yang praktis dan apakah aplikasi dapat dijalankan dengan versi MySQL yang berbeda, disini kita akan membuat versi mysql yang dinamis dan praktis yang bisa kita pilih sesuai versi MySQL.

Saya membuatnya dengan meracik docker-compose untuk mempermudah pengujian apakah aplikasi dapat dimulai dengan versi yang berbeda.

Yang Disupport MySQL version

  • MySQL v5.5
  • MySQL v5.6
  • MySQL v5.7
  • MySQL v8.0
  • mariadb v10.0
  • mariadb v10.1
  • mariadb v10.2
  • mariadb v10.3

Penggunaan

Install docker

https://docs.docker.com/engine/install

Install mysql-client

tidak butuh untuk menginstall mysql client .

saat memanggil connect-xxx.sh, mysql yang dipasang di container akan dicek dan dijalankan secara lokal .

Clone this repository

 
git clone https://github.com/danigunawan/docker-compose-all-mysql-versions.git

Jalankan mysql docker containers

docker-compose up -d

Hubungkan mysql-server lainnya pada docker container

./connect-mysql-5-5.sh
./connect-mysql-5-6.sh
./connect-mysql-5-6.sh
./connect-mysql-8-0.sh
./connect-mariadb-10-0.sh
./connect-mariadb-10-1.sh
./connect-mariadb-10-2.sh
./connect-mariadb-10-3.sh

Tunggu startup MySQL selesai sebelum menghubungkan.

Optional

Customize mysql client settings

vi ./my.cnf

Konfigurasikan pengaturan selain port yang sama.

Customize mysql server settings

vi ./mysql5.5/conf.d/my.cnf
vi ./mysql5.6/conf.d/my.cnf
vi ./mysql5.7/conf.d/my.cnf
vi ./mysql8.0/conf.d/my.cnf
vi ./mariadb10.0/conf.d/my.cnf
vi ./mariadb10.1/conf.d/my.cnf
vi ./mariadb10.2/conf.d/my.cnf
vi ./mariadb10.3/conf.d/my.cnf

Customize default schema, user, password

Jika Anda ingin mengubah skema DB, nama pengguna, kata sandi, atau kata sandi root, edit .env.

DB_DATABASE=work
DB_USER=worker
DB_PASSWORD=worker
DB_ROOT_PASSWORD=root

Remove logs

Jika Anda ingin menghapus general.log dan error.log dan slow-query.log, jalankan clear_logs.sh .

Customize init scripts

https://hub.docker.com/_/mysql/#initializing-a-fresh-instance

Execution order at startup

  1. ./common/initdb.d/common-init.(sh|sql) (dieksekusi secara umum untuk semua kontainer)
  2. ./(mysql|mariadb)X.X/initdb.d/xxx.(sh|sql) (dieksekusi untuk setiap container)

Dengan menyesuaikan ini, data awal dapat diisi saat startup.

Git Repository : LINK

Wajib bagi kamu yang ingin terjun ke dunia data science. ! Kita mulai dari data science, data science itu dipecah menjadi 3 bidang yang besar yaitu :

  • Analitik
  • Modeling
  • Testing

Namun seiring berkembangnya teknologi dan implementasi dibidang Data Science bermunculan bidang-bidang yang relevan dengan implementasi data science pada umumnya seperti :

  • Operational
  • Researcher
  • Security

Mari kita lihat dari flow pekerjaannya bagaimana kita lihat aliran data nya bagaimana sebagai berikut :

1. Analitik

dibidang analitik terdapat role-role yang bertugas dan bertanggung jawab atas data analitik sebagai berikut :

  • Role Business Analyst

Bisnis analyst mencari kebutuhan bisnis itu apa (needsnya) setelah menemukan kebutuhan bisnisnya akan disampaikan ke data analyst requirement-requirement nya apa saja.

  • Data Analyst

Data Analyst bertugas mencari tahu data apa yang dibutuhkan untuk kebutuhan tadi yang sudah dicari oleh bisnis analyst. jika sudah terdapat data warehouse ditempat kebutuhan tersebut data analyst akan mencari sesuai kebutuhan tadi menentukan data mana yang dibutuhkan untuk kebutuhan yang disampaikan oleh bisnis analyst. data analyst juga concern terhadap reporting dan presentasi menyampaikan apa yang data analyst temukan, misalkan menemukan dari data yang kita miliki. jika data nya tidak dimiliki maka data analyst akan menyampaikan dan perlu mengumupulkan data tertentu yang dibutuhkan. Data analyst pun memanage datanya sehingga ada yang namanya roles yakni Data Architect.

  • Data Architect

Data Architect bertugas membuat blueprint aliran data mulai dari yang RAW sampai disimpan ke Database/Warehouse. Blueprint ini secara teknisnya akan dikerjakan oleh Data Engineer sehingga lebih detail dikerjakan oleh Data Engineer yang biasa disebut yaitu Data Pipeline.

  • Data Engineer

Data Engineer bertugas membuat Blueprint aliran data atau data pipeline sehingga mudah diakses dan ditarik datanya oleh Data Analyst, Pipeline tersebut meliputi seperti Data Cleaning, Data Transformation atau yang biasa kita kenal ETL (Extract, Transform dan Load). Data Warehouse dipakai tidak hanya oleh Data Analyst akan tetapi ada tim-tim lain misalkan tim A, B dan C sehingga kita harus memanage juga bahwa tim A boleh mengakses data apa saja, tim B data apa saja maupun tim C dan itu akan dimanage oleh yang namanya Database Administrator

  • Database Admin

Database administrator bertugas dan fokus memberikan akses atau roles sebuah data, selain itu database admin akan fokus ke blueprint terutama ke bagian proteksi data / keamanan data (Data Security) jadi akses sebuah database perlu safety dan aman, database admin pun bertugas untuk membackup data

Jadi pada bagian Analitik ini fokusnya lebih ke “APA” needsnya kebutuhan bisnis kita, apa informasi yang bisa kita dapatkan dari data kita jadi Analitik ini bentuk nya lebih ke reporting.

Ketika kita sudah mendapatkan insight next stepnya adalah selain reporting / insight kita ingin melakukan Prediction dan jika ingin membutuhkan Prediction kita membutuhkan yang namanya model matematik, model yang dimana bisa melakukan sebuah Prediksi sehingga setelah bidang analitik ini ada fase Modeling.

2. Modeling

  • Data Scientist

Data analyst ini merupakan Data Analyst yang sudah memiliki pengalaman dan berkembang menjadi Data Scientist sehingga fokusnya jadi berbeda yakni dibidang permodelan, fokusnya melakukan Prediksi “In The Future” mau prediksi apa sesuai dengan kebutuhan bisnis, namun terkadang Role Data scientists ini datang beragam dari disiplin ilmu seperti statistika, matematika, teknik sampai dengan bisnis sehingga trend kedepan data scientists ini menjadi roles yang diminati karena begitu luas implementasinya.

  • ML Engineer
  • AI Engineer

3. Testing

4. Research

  • ML Researcher
  • AI Researcher

5. Operational

  • MLOps
  • AIOps

6. Security

  • MLSecOps
  • AISecOps

Soon

kalau anak 90 an penggemar film cemen atau kartun pasti kenal dengan film saint saiya dan film super saiya (Dragon Ball), dari alur ceritanya mereka itu sama-sama ingin jadi manusia super, kalau di film dragon ball goku punya level super saiya dengan tingkatan nya dari 1,2,3,4 begitupun saint saiya sampai menjadi saiya gold. jadi disini mahu berbagi saja bagaimana ilmu kita bisa bermanfaat, semakin bermanfaat pastinya semakin berkah kayak goku aja bisa saling menolong, semakin kuat level goku pastinya semakin sulit melawan musuhnya. Jadi cerita cemen diatas hanya sedikit refreshing biar ga terlalu dalam bahas judulnya yak wkwkw…

okay dibawah ini kumpulan soal-soal hackerank saya simpan dalam note buat catatan saja, karena saya sudah bosan menyimpan catatan dilaptop dan biasa nulis di notion, mulai sekarang saya lebih senang sepertinya menyimpan catatan diblog mungkin bisa bermanfaat untuk pribadi, teman-teman sebaya senusa, sebangsa setanah air.. beta :D

Berikut Kumpulan Soal-Soal Hacker Rank Data Science :

  • Q1 Database Question 4 languages allowed: mysql, oracle, tsql, db2

    List Customer and Product Without Sale : LINK

  • Q2 Coding Question 2 languages allowed: python, python3

    Python : List Of Even Integers (Pythoniast pastinya bisa explorasi)

  • Q3 Data Science Question Jupyter Notebook

    Analyze Loan Eligibility : LINK

  • Q4 Data Science Question

    Predict Loan Default : LINK

  • Q5 Backend Question PySpark: Healthcare Data Cleaning : LINK

Temporary Mail

  • https://temp-mail.org

Grammarly

Compose bold, clear, mistake-free writing with Grammarly’s new AI-powered desktop app.

  • https://www.grammarly.com/

Monitoring Tools

Self-Hosted :

  • https://github.com/louislam/uptime-kuma (Uptime Kuma is an easy-to-use self-hosted monitoring tool.)

Cloud :

  • https://cronitor.io

System Design

Everything you need to take your system design skill to the next level

  • https://bytebytego.com/
  • https://openinapp.co/vs6x4

SimilarWeb

https://www.similarweb.com/