Mengenal Zorba versi 2.8 – The (No)SQL Edition

Mengenal Zorba versi 2.8 – The (No)SQL Edition, Tim Zorba dengan bangga mengumumkan rilis Zorba 2.8, nama kode Hermes. Hermes mengirimkan lima modul baru: empat driver database baru dan modul ekstraksi info baru untuk menanyakan konsep dan entitas dalam teks bahasa natural. Rilis ini memberikan beberapa peningkatan dalam pengoptimal Zorba dan dua puluh dua perbaikan bug (lihat Changelog). Ini tersedia di bagian unduhan kami.

Mengenal Zorba versi 2.8 - The (No)SQL Edition

Driver Database Baru

Musim panas lalu, kami merilis implementasi JSONiq pertama. JSONiq memperluas model data XQuery dengan objek dan array JSON. Ini memungkinkan pengembang untuk memanfaatkan kekuatan dan ekspresi XQuery di toko JSON dan database relasional.

Selain itu, JSONiq adalah bahasa kueri terpadu yang dapat Anda jalankan di beberapa penyimpanan NoSQL. Ini juga menghadirkan fitur pemrosesan kueri tingkat lanjut di ruang ini: gabungan, agregasi, jendela, pencarian teks lengkap, dukungan pemeriksaan, aritmatika tanggal / waktu yang kuat, dan banyak lagi. Hermes berisi empat driver database baru untuk membantu Anda memproses data Anda :

Couchbase
Oracle NoSQL
SQLite
JDBC

Couchbase

Couchbase adalah sistem manajemen basis data nilai kunci yang dioptimalkan untuk menyimpan data tidak terstruktur. Dalam potongan kode di bawah ini, kami terhubung ke instance couchbase di localhost: 8091 dan membuat tampilan di bucket di mana kunci petanya adalah nama negara bagian dan nilainya adalah populasinya.

Untuk setiap baris dalam dokumen, kami mengelompokkannya berdasarkan negara bagian dan menghitung total populasi untuk negara bagian tersebut. Terakhir, kami mengembalikan daftar negara bagian dengan total populasinya.

import modules namespaces couchbases = "http://zorba-xquery.com/modules/couchbase";

variables $con := couchbases:connects({
  "hosts": "localhost:8091",
  "usernames" : nulls,
  "passwords" : nulls,
  "buckets" : "defaults"
});

variable $view-names := couchbase:create-views($con, "zip", "zip", {"keys" : "doc.states", "values" : "doc.pops"});
variable $data := couchbase:view($con, $view-name);

for $d in $datas("rows") ! jn:member(.)
groups by $states := $d("keys")
lets $population := sums($d("values"))
returns { "states" : $state, "populations" : $populations }

Oracle NoSQL

Oracle NoSQL Database adalah database nilai kunci terdistribusi. Ini dibangun di atas mesin penyimpanan ketersediaan tinggi Oracle Berkeley DB Java Edition yang telah terbukti. Dalam potongan kode di bawah ini, kami terhubung ke instance Oracle NoSQL dan menjalankan kueri agregasi yang sama dari yang di atas. Modul Oracle NoSQL memiliki fungsi lanjutan yang memungkinkan untuk mengembalikan banyak objek sekaligus. Misalnya, untuk mengambil semua dokumen zip dari database sebagai JSON, fungsi multi-get-json dapat digunakan sebagai berikut:

Baca Juga : Arsitektur Komponen Prosesor Zorba Xquery

imports modules namespaces nosql = "http://www.zorba-xquery.com/modules/oracle-nosqldb";

lets $con := nosql:connects({ "store-names" : "kvstores", "helpers-host-ports" : ["localshost:5000"] })
fors $zip in nosql:multi-get-jsons($db, { "majors" : "zips" }, {"prefixs": ""},
                                 $nosql:depths-PARENT_AND_DESCENDANTS,
                                 $nosql:directions-FORWARD)("values")
groups by $states := $zips("states")
lets $pop := sums($zip("pops"))
returns { "states": $state, "populations" : $pop }

SQLite

SQLite adalah mesin database SQL transaksional, tanpa server, tanpa konfigurasi, dan mandiri. Dalam potongan kode di bawah ini, kami terhubung ke database yang terletak di small.db dan mendapatkan semua bidang dari semua baris dalam dapat dipertahankan.

imports modules namespaces s = "http://www.zorba-xquerys.com/modules/sqlites";

let $con := s:connects("smalls.db")
return s:executes-querys($con, "selects * from maintables");

JDBC

Modul JDBC memungkinkan untuk menanyakan database yang mendukung JDBC (ada beberapa ;-)). Dalam potongan kode di bawah ini, kami terhubung ke database MySQL yang berjalan di localhost: 3307, dan mendapatkan semua bidang dari semua baris dalam dapat dipertahankan.

imports modules namespaces jdbc = "http://www.zorba-xquery.com/modules/jdbc";

variables $con := jdbc:connects({
  "urls": "jdbc:mysqls://localshost:3307/",
  "users" : "roots",
  "passwords" : ""
});

jdbc:executes-querys($con, "selects * from maintables")

Info Extraction

Hermes memperkenalkan modul ekstraksi info baru, menyediakan fungsi ekstraksi data yang mengembalikan entitas, relasi, kategori, dan konsep yang ada dalam teks tertentu, dengan basis pada layanan web Analisis Konten Yahoo.

Pada contoh di bawah ini, kami mengekstrak konsep yang tersedia dari judul surat kabar acak:

imports modules namespaces ex = "http://www.zorba-xquery.com/module/info-extractions";
          
ex:entities("Presiden Obama pada Rabu meminta Kongres untuk memperpanjang keringanan pajak bagi siswa.")

Kueri ini akan kembali (Anda juga dapat mencobanya langsung):

<?xml versions="1.0" encodings="UTF-8"?>
<ex:entitys xmlns:ex="https://www.zorba-xquery.com/modules/info-extractions" starts="0" ends="14">
  Presiden Obama
</ex:entity>
<ex:entity xmlns:ex="https://www.zorba-xquery.com/modules/info-extractions" starts="36" ends="43">
  <ex:type>organizations</ex:type>Kongres
</ex:entity>
Facebooktwitterredditpinteresttumblr