KDB + Mimarisi

Kdb +, en başından itibaren muazzam hacimli verileri işlemek için tasarlanmış yüksek performanslı, yüksek hacimli bir veritabanıdır. Tamamen 64 bittir ve yerleşik çok çekirdekli işleme ve çoklu iş parçacığı vardır. Aynı mimari gerçek zamanlı ve geçmiş veriler için kullanılır. Veritabanı kendi güçlü sorgu dilini içerir,q, böylece analitik doğrudan veriler üzerinde çalıştırılabilir.

kdb+tick gerçek zamanlı ve geçmiş verilerin yakalanmasına, işlenmesine ve sorgulanmasına izin veren bir mimaridir.

Kdb + / tick Mimarisi

Aşağıdaki çizim, tipik bir Kdb + / tick mimarisinin genel bir taslağını ve ardından çeşitli bileşenlerin kısa bir açıklamasını ve veri akışını sağlar.

  • Data Feeds çoğunlukla Reuters, Bloomberg gibi veri akışı sağlayıcıları tarafından veya doğrudan borsalardan sağlanan bir zaman serisi verileridir.

  • Alakalı verileri almak için, veri feed'indeki veriler feed handler.

  • Veriler, feed işleyicisi tarafından ayrıştırıldıktan sonra, ticker-plant.

  • Herhangi bir arızadan verileri kurtarmak için, ticker-plant önce yeni verileri günlük dosyasına günceller / depolar ve ardından kendi tablolarını günceller.

  • Dahili tabloları ve günlük dosyalarını güncelledikten sonra, zamanlı döngü verileri sürekli olarak gerçek zamanlı veri tabanına ve veri talep eden tüm zincirlenmiş abonelere gönderilir / yayınlanır.

  • Bir iş gününün sonunda, günlük dosyası silinir, yenisi oluşturulur ve gerçek zamanlı veri tabanı geçmiş veri tabanına kaydedilir. Tüm veriler geçmiş veritabanına kaydedildikten sonra, gerçek zamanlı veritabanı tablolarını temizler.

Kdb + Tick Mimarisinin Bileşenleri

Veri Beslemeleri

Veri Beslemeleri, herhangi bir pazar veya diğer zaman serisi verileri olabilir. Veri beslemelerini, besleme işleyicisinin ham girdisi olarak düşünün. Beslemeler, doğrudan borsadan (canlı akış verileri), Thomson-Reuters, Bloomberg gibi haber / veri sağlayıcılardan veya diğer herhangi bir harici kurumdan alınabilir.

Yem İşleyici

Bir besleme işleyicisi, veri akışını kdb + 'ya yazmaya uygun bir biçime dönüştürür. Veri beslemesine bağlıdır ve beslemeye özgü formattaki verileri alır ve ticker-plant işlemine yayınlanan bir Kdb + mesajına dönüştürür. Genellikle aşağıdaki işlemleri gerçekleştirmek için bir besleme işleyici kullanılır -

  • Verileri bir dizi kurala göre yakalayın.
  • Bu verileri bir formattan diğerine çevirin (/ zenginleştirin).
  • En yeni değerleri yakalayın.

Ticker Plant

Ticker Plant, KDB + mimarisinin en önemli bileşenidir. Finansal verilere erişmek için gerçek zamanlı veri tabanının veya doğrudan abonelerin (müşterilerin) bağlandığı ticker sistemidir. Faaliyet göstermektedirpublish and subscribemekanizma. Bir abonelik (lisans) edindiğinizde, yayıncıdan (ticker tesisi) bir onay (rutin olarak) yayını tanımlanır. Aşağıdaki işlemleri gerçekleştirir -

  • Verileri besleme işleyicisinden alır.

  • Kayan tesis veriyi aldıktan hemen sonra, bir kopyasını bir günlük dosyası olarak saklar ve kayan tesis herhangi bir güncelleme aldığında onu günceller, böylece herhangi bir arıza durumunda herhangi bir veri kaybı yaşamamış oluruz.

  • Müşteriler (gerçek zamanlı abone), ticker-plant'a doğrudan abone olabilir.

  • Her iş gününün sonunda, yani gerçek zamanlı veri tabanı son mesajı aldığında, bugünün tüm verilerini geçmiş veri tabanına depolar ve aynısını bugünün verilerine abone olan tüm abonelere gönderir. Sonra tüm tablolarını sıfırlar. Günlük dosyası, veriler geçmiş veritabanında veya diğer doğrudan gerçek zamanlı veritabanına (rtdb) doğrudan bağlı abonede depolandığında da silinir.

  • Sonuç olarak, ticker-plant, gerçek zamanlı veritabanı ve tarihsel veritabanı 24/7 esasına göre çalışır.

Ticker-plant bir Kdb + uygulaması olduğundan, tabloları kullanılarak sorgulanabilir qdiğer Kdb + veritabanları gibi. Tüm ticker-plant müşterileri veri tabanına sadece abone olarak erişebilmelidir.

Gerçek Zamanlı Veritabanı

Gerçek zamanlı bir veritabanı (RDB) bugünün verilerini depolar. Doğrudan ticker bitkisine bağlıdır. Tipik olarak, piyasa saatlerinde (bir gün) bellekte depolanır ve günün sonunda tarihsel veritabanına (hdb) yazılır. Veriler (rdb verileri) bellekte depolandığından, işlem son derece hızlıdır.

Kdb +, günlük beklenen veri boyutunun dört veya daha fazla katı RAM boyutuna sahip olmayı önerdiğinden, rdb üzerinde çalışan sorgu çok hızlıdır ve üstün performans sağlar. Gerçek zamanlı bir veritabanı yalnızca bugünün verilerini içerdiğinden, tarih sütunu (parametresi) gerekli değildir.

Örneğin, aşağıdaki gibi rdb sorgularımız olabilir:

select from trade where sym = `ibm

OR

select from trade where sym = `ibm, price > 100

Tarihsel Veritabanı

Bir şirketin tahminlerini hesaplamamız gerekirse, geçmiş verilerini hazır bulundurmamız gerekir. Bir tarihsel veritabanı (hdb) geçmişte yapılan işlemlerin verilerini tutar. Her yeni günün kaydı gün sonunda hdb'ye eklenecekti. Hdb'deki büyük tablolar ya yatay olarak depolanır (her sütun kendi dosyasında saklanır) ya da geçici verilerle bölümlenmiş olarak depolanır. Ayrıca, bazı çok büyük veritabanları kullanılarak daha fazla bölümlenebilirpar.txt (dosya).

Bu depolama stratejileri (bölünmüş, bölümlenmiş vb.), Büyük bir tablodan verilere erişilirken veya arama yapılırken etkilidir.

Bir tarihsel veritabanı, dahili ve harici raporlama amaçları için, yani analitik için de kullanılabilir. Örneğin, belirli bir gün için IBM'in şirket alım satımlarını ticaret (veya herhangi bir) tablo adından almak istediğimizi varsayalım, aşağıdaki gibi bir sorgu yazmamız gerekir -

thisday: 2014.10.12

select from trade where date = thisday, sym =`ibm

Note - Tüm bu tür sorguları, q dil.