APA BEDA ANTARA STRUCTURED DAN UNSTRUCTURED DATA?

Tantangan Menulis Hari Ke-49 Batch Kedua

Oleh Bernardus Ari Kuncoro

Dalam sebuah kesempatan mewawancarai kandidat data engineer, saya mencoba menanyakan pertanyaan ini. Beda antara data yang terstruktur dan yang tidak terstruktur.

Dengan mengetahui jawabannya dengan benar atau salah, pasti langsung ketahuan dia pernah pegang database untuk OLAP Big Data atau belum. Yuk, kita pelajari sebentar, bedanya apa sih.

Structured big data dapat disimpan di dalam database tradisional. Seperti apa? OracleDB, MySQL, PostgreSQL, SQL Server, dll. Dapat disimpan dalam bentuk baris dan kolom. Sebagian besar transaksi dari aplikasi adalah data yang terstruktur. Data dengan bentuk ini akan sangat mudah didefinisikan dalam sebuah data model.

Unstructured data tidak dapat disimpan dalam rupa kolom dan baris. Sedemikian sehingga sistem database tradisional tidak dapat menyimpannya. Secara umum, memiliki ukuran dan konten yang sangat bervariasi. Beberapa contoh data tidak terstruktur adalah file logs, cuitan Twitter, Facebook likes, gambar, video, pencarian di mesin Google. Sebagian besar data dari Internet of Things adalah data yang tidak terstruktur. Sangat sulit untuk mendefinisikan data tidak terstruktur ini ke dalam data model. Beberapa tool yang mendukung data tidak terstruktur ini adalah MongoDB, Cassandra, GeoJS, dll. Seperti yang pernah saya tulis di sini tentang NoSQL.

Kalau ada kandidat yang mencampuradukkan antara structured data dengan data input supervised learning, yang katanya didefinisikan sebagai data yang ada label. Yo wes, salah kaprah!

Berdasarkan kisah nyata.

Kalideres, 18 Mei 2021.

Referensi:

Buku Top 200 Data Engineer Interview Questions Answers

BICARA TENTANG NOSQL

Not only SQL

Tantangan Menulis Hari ke-155

Oleh: Bernardus Ari Kuncoro

NoSQL merupakan singkatan dari Not Only Structured Query Language. Database NoSQL menyediakan mekanisme untuk penyimpanan dan pengambilan data yang dimodelkan dengan cara yang berbeda dari relasi tabular yang digunakan pada relational databases. Istilah NoSQL mulai digunakan sejak 1970, tetapi baru naik daun pada 2000-an.

Bermacam-macam variasi No-SQL mulai dari Document store, graph, key-value, dan wide-column.

Ada banyak variasi NoSQL. Apa saja?

  1. Apache Cassandra (Partition Row store). Data didistribusikan berdasarkan partisi ke dalam beberapa node atau server. Diatur dalam format kolom dan baris.
  2. MongoDB (Document store). Merupakan database berorientasi dokumen. Selain adanya Key Lookups yang dilakukan oleh key-value store, database ini juga menawarkan API atau query language yang akan mengeluarkan dokumen berdasarkan apa yang ada di dalam database. Bayangkan Anda memaknai proses ini sebagai pencarian dari kumpulan dokumen-dokumen.
  3. DynamoDB (Key-value store). Database yang terkumpul berdasarkan pasangan-pasangan antara key dan value.
  4. Apache HBase (Wide Column Store). Menariknya dari database ini selain kolomnya ‘melebar’ adalah nama kolom dari baris ke baris dapat berbeda-beda.
  5. Neo4J (Graph Database). Dalam database ini, data direpresentasikan oleh nodes dan edges.

Perlu diingat bahwa Anda tidak perlu menghafal semua variasi NoSQL di atas. Peruntukannya berbeda-beda tergantung kebutuhan. Anda dapat memulainya dengan Apache Cassandra, karena memiliki kedekatan dengan Relational Database. Mengingat bentuknya masih tabel. Selebihnya, tetap harus belajar untuk memahami masing-masing karakteristiknya, namun proses belajar jadi lebih mudah.

Sebagai pengayaan, Anda dapat merenungi gambar berikut.

Penggunaan NoSQL dan SQL yang bervariasi

Disadur dan diterjemahkan dari Data Engineering Nanodegree by Udacity.

Kalideres, 2 Januari 2021

Import from a Database in R

Importing database to R
Importing database to R

When you use R for data analysis, sometimes you have to import data from a Database (e.g. SQL), instead of just import data by reading the csv, excel, or mat file. To do this, we have to do several steps. Good thing Datacamp course provide us step-by-step guidance.

There are 5 steps you need to do if you did not install RMySQL package yet. If you have installed the package, you could skip step 1. In step 2, you need to establish connection with database with dbconnect() function. Then, in step 3 you can list the database tables using dbListTables(), in which three tables are available: users, tweats, and comments. In Step 4, you can import the table and assign into a data frame variable. Last but not least, if you have finish importing data, the polite way must be performed is disconnecting the database using dbDisconnect() function.

You can find the R-script described as follow:

#Step 1, install the RMySQL package (only if you did not install the package) 
install.packages("RMySQL")


#Step 2, Establish a connection 
library(DBI)
con <- dbConnect(RMySQL::MySQL(), 
dbname = "tweater", 
host = "courses.csrrinzqubik.us-east-1.rds.amazonaws.com", 
port = 3306,
user = "student",
password = "datacamp")


#Step 3, List the database tables
tables <- dbListTables(con)
str(tables) #display structure of tables

#Step 4, Import data from a table
users <- dbReadTable(con,"users")
users #print users

tweats <- dbReadTable(con,"tweats")
tweats #print tweats

comments <- dbReadTable(con,"comments")
comments #print comments

#Step5, disconnect database 
dbDisconnect(con)

Hope it helps! ;D