piątek, marca 05, 2010

Inne, ale satre podjeście do bazy

Raport Kimball group

Although columnar RDBMSs have been in the market since the 1990s, the recent BI requirements to track rapidly growing customer demographics in enormous terabyte databases have made some of the advantages of columnar databases increasingly interesting.

Remember that a columnar RDBMS is a “standard” relational database supporting the familiar table and join constructs we are all used to. What makes a columnar RDBMS unique is the way data is stored at the physical level. Rather than storing each table row as a contiguous object on the disk, a columnar RDBMS stores each table column as a contiguous object on the disk. Typically, these column specific data objects are sorted, compressed, and heavily indexed for access. Even though the underlying physical storage is columnar, at the user query level (SQL), all tables appear to be made up of familiar rows. Applications do not have to be recoded to use a columnar RDBMS. The beneath-the-cover twist from a row orientation to a column orientation is the special feature of a columnar RDBMS.

A columnar RDBMS offers the application designer and the DBA some design advantages, including:

· Significant database compression. Dimension tables filled with many low cardinality repeated attributes compress significantly, sometimes by 95% or even more. Fact tables with numeric measurement values also compress surprisingly well, often by 70% or more. Columnar databases are very supportive of the dimensional modeling approach.

· The query and storage penalties for very wide tables with many columns are greatly reduced. A single column, especially one with low cardinality, adds very little to the overall storage of a table. More significantly, when a table row is fetched in a query, only the named columns are actually fetched from the disk. Thus if three columns are requested from a 100 column dimension, only about 3% of the row content is retrieved. In a conventional row oriented RDBMS, typically the entire row must be fetched when any part of the row is needed. (More exactly, the disk blocks containing the requested data are fetched into the query buffer and much un-requested data in these blocks comes along for the ride).

· Adding a column to a fact or dimension table in a columnar RDBMS is not an especially big deal since the system doesn’t care about row widths. No more block splits when you expand a “row.” Now the designer can be much more profligate about adding columns to an existing table. For instance, you can now be comfortable with wider fact table designs, where many of the fields in a “row” have null values. In this way, the designer can regularly add new demographics columns to a customer dimension because each column is an independent compressed object in the physical storage. Be aware, however, that as you add more columns to your fact and dimension tables, you have increased responsibility to keep the BI tool user interfaces simple. A tried and true way to keep the user interfaces simple is to deploy multiple logical views for different BI use cases, where each view exposes a set of relevant fields used together. And, we should point out that adding more columns to a table is not an excuse for adding data to a table that violates the grain!

· As I mention in my design classes, SQL is horribly asymmetric in that it allows very complex computations and constraints within records, but makes it virtually impossible to apply computations or constraints across records. Columnar RDBMSs remove some of this applications pressure, not only because they encourage far wider table designs (thereby exposing many fields within the same row to SQL), but also because columnar RDBMSs specialize in cross column access through bitmap indexes and other special data structures. BI tool designers welcome the extended width of fact and dimension tables because within-row constraints and computations are a hundred times easier to set up than the corresponding cross-row versions.

Columnar databases pose provocative tradeoffs for IT. In particular, these databases have had a reputation for slow loading performance, which the vendors have been addressing. Before investing in a columnar database, make sure to carefully prototype loading and updating back room tasks. But in any case, these databases offer some interesting design alternatives.

Ciekawe

  1. Edytory OnLine - http://aviary.com/tools/phoenix
  2. Wybieracz kolorów - http://ajaxian.com/archives/color-picker-works-even-in-ie6?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ajaxian+%28Ajaxian+Blog%29
  3. Wybierz swój kolor - http://raphaeljs.com/picker/

Czego nas uczy witryna WebDesign?

  1. CSS - http://webdesign.about.com/cs/css/a/aa012599.htm?nl=1
  2. Zdrowie - http://altmedicine.about.com/cs/mindbody/a/Meditation.htm
  3. Programowanie aplikacji webowych - http://webdesign.about.com/od/javascriptandcgi/p/bl_pros.htm
  4. AJAX - http://webdesign.about.com/od/javascript/JavaScript_and_Ajax.htm
  5. DOM/JS - http://javascript.about.com/library/blunobtrusive2.htm

Serwisy społecznościowe wolą inne bazy…

Kolejne potwierdzenie odchodzenia serwisów społecznościowych od tradycyjnych (relacyjnych) baz danych w kierunku ‘NoSQL’. We wrześniu ubr. Digg, a teraz Twitter mówi o planach odejścia od MySQL w kierunku bazy Cassandra. Mówi się, że obecnie nacisk należy położyć na odczycie danych (szybkim dostępie) niż na zapisie. Dzieje się tak dlatego, że serwisy przechowują często pobierane dane w pamięci podręcznej (cache lub memcache) tak, że są one natychmiast dostępne a jedynie zapis (utrwalenie - zapewnienie spójności w bazie) jest ważny. Dlatego główny atut MySQL – niesamowicie szybki odczyt, dobie ogromnej pojemności pamięci RAM, odchodzi na drugi plan. Takimi nie-SQL–owymi bazami są: HBase, Voldemort, MongoDB, MemcacheDB, Redis, Cassandra, HyperTable, Tokyo Cabinet/Tyrant, and Dynomite. Źródło – ITWorld.

Porzucenie MySQL może przyjąć masowy charakter z uwagi na przejęciu SUN-a (właściciela praw do MYSQL) przez firmę Oracle.

czwartek, marca 04, 2010

Ciekawe oprogramowanie

  1. Oprogramowanie do przesyłania dużych plików – WeTransfer – bez żadnych ceregieli.
  2. Mary Jo-Foley z serwisu Zdnet twierdzi, że najpopularniejszym serwerem na świecie jest Windows – opiera się  na podstawie raportu IDC

    Units (Q3 2009/Q4 2009)

    Windows    1,248,200 (73.9%)     1,434,225 (73.9%)
    Unix                72,001 ( 4.3%)           84,851 ( 4.4%)
    Linux            357,491 (21.2%)         412,041 (21.2%)

    Total          1,688,859                   1,941,966

  3. Coś dla Oli:
    1. Wykorzystanie kart graficznych (GPU) jako odciążenie procesora głównego (CPU) przez firme NVIDIA.
    2. Lista TOP 500 najszybszych superkomputerów świata - http://www.top500.org/2007_overview_recent_supercomputers/main_architectural_classes
  4. Lista (ponad 100) darmowych aplikacji wspomagających pracę pod Windows - http://www.itworld.com/software/98271/112-best-free-downloads-sites-and-services-full-list?source=ITWNLE_nlt_today_2010-03-02
  5. Przykłady z tej listy:
    1. Muzyka -  http://www.zendesk.com/external/wall/ ale najlepszym serwisem jest GrooveShark
    2. Ubuntu Remix - http://www.pcworld.com/downloads/file/fid,83385/description.html?loomia_ow=t0:s0:a38:g26:r7:c0.005652:b30704536:z0
    3. 3-D Pulpit  - http://www.pcworld.com/downloads/file/fid,83352-order,4/description.html

środa, marca 03, 2010

Pożyteczne

  1. ComputerWorld zebrał ciekawy słownik pojęć informatycznych - http://www.itworld.com/security/98458/cisco-develops-vpn-client-pcs-smartphones?source=ITWNLE_nlt_today_2010-03-02 – trochę stary ale zawsze coś.
  2. Cisco na Targach Cebit – pokazało nowego klienta VPN na bazie starej technologii AnyConnect. Nic więcej nie wiadomo, poza terminem ukazania się oprogramowania – czerwiec tego roku. Mają być wersje na urządzenia mobilne (komórki, smartphony) oraz PC (Windows/Linux) i Mac-ki.
  3. Najgorsze błędy popełniane podczas obsługi sieci - http://www.eweek.com/c/a/Security/Top-25-Programming-Errors-That-Kill-Network-Security-535619/?kc=EWKNLEDP03032010A

wtorek, marca 02, 2010

Bardzo pożyteczne wideo – prosto z sieci

  1. Niezmordowany prof. Lewin - http://ocw.mit.edu/OcwWeb/Physics/8-03Fall-2004/VideoLectures/detail/embed05.htm
  2. Jego lekcje - http://ocw.mit.edu/OcwWeb/Physics/8-03Fall-2004/VideoLectures/
  3. Lekcje Crockforda i inne - http://www.catonmat.net/blog/learning-javascript-programming-language-through-video-lectures/
  4. Trudności z metodami statycznymi - http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1395284,00.html?track=NL-150&ad=752477&asrc=EM_USC_10977589&uid=267959
  5. Sieć domowa pod Windows 7 - http://blogs.techrepublic.com.com/itdojo/?p=1561&tag=nl.e101
  6. Cauche Resin - http://refcardz.dzone.com/assets/request/express/18899/03278200902014164c163?oid=weekly-030110
  7. Analiza wykonania skryptów JS - http://carlos.bueno.org/2010/02/measuring-javascript-parse-and-load.html?v=2
  8. Moja grupa w DIIGO - http://groups.diigo.com/group/coders

Po naukę do MS

Microsoft oferuje bezpłatne kursy on-line na tej właśnie witrynie. Zabawa zaczyna się właśnie tutaj, można sobie stworzyć profil do nauki jakieś pożytecznej technologii MS.

Kogo boi się Microsoft?

Oto 10 firm stanowiących zagrożenie dla MS:

  1. MapQuest – mimo, że usługa Bing Map jest o niebo lepsza od Google Map to mapy tej firmy są jeszcze lepsze (w kontekście terytorium USA)
  2. Google – wiadomo dlaczego, pierwsza witryna na świecie
  3. Yahoo – mimo podpisanej umowy o współpracy
  4. Facebook – druga pod względem popularności witryna w Stanach
  5. YouTube – mimo, że część Google ale generuje inny rodzaj ruchu sieciowego
  6. Twitter – za wchodzenie w układy z Yahoo i Google
  7. Ubuntu – doskonale naśladuje przyjazne GUI MS Windows
  8. HP – w rozwoju i rywalizacji  w zakresie obliczeń  w chmurze
  9. Mozilla – zagrożenie dla IE oraz reklam z sieci
  10. Amazon – chyba sojusznik MS ale nadal niezależny i nieobliczalny

Źródło - eweek

Co to NoSQL?

Taka baza danych w odróżnieniu od relacyjnych nie udostępnia języka SQL do manipulacji danymi. Zwykle organizuje dane w sposób inny od tradycyjnego (nie w postaci tabel). Dzieli się na trzy kategorie wg przyjętej orientacji :

    1. kolumnowe
    2. klucz-wartość (takie były pierwotne rozwiązania bazodanowe
    3. dokumentowe

W PHP można bazę “document-oriented” zapisać tak:

$person = array(
    "name" => "Cesar Rodas",
    "country" => "Paraguay",
    "languages" => array("Spanish", "English", "Guarani"),
);

Jednym z przedstawicieli takich baz jest MongoDB. Cechuje się ona stosowaniem JSON (zamiast XML), dużą szybkością, wsparciem dla indeksów, transformacji typu map-reduce oraz rozszerzeniami dla PHP

Na podstawie: http://www.phpclasses.org/blog/post/118-Developing-scalable-PHP-applications-using-MongoDB.html

Ciekawostki

  1. Google wykupuje Picnic – Picassa jest aplikacją podobną, ale wymaga instalacji. Picnic już nie – używa technologii Flash.
  2. Intel mówi poważnie o przejściu swych pracowników (80 tyś) z Windows XP na Windows 7 z pominięciem Vista, ciągle jednak narzeka na braki w zarządzaniu taką ilością użytkowników (UAC)
  3. W serwisie PHPClasses: MongoDB baza typu NOSQL – łakomy kąsek dla PHP
  4. Serwis blogowy TechRepublic: jak stworzyć punkt dostępowy w Windows 7 przy pomocy Connectify (program do wirtualizacji adaptera bezprzewodowego, wspiera tylko nowe kart będące na liście) – potencjalna dziura w bezpieczeństwie
  5. Wg badań Computer World  najwszechstronniejszym programem zabezpieczającym komputer jest Comodo – zawiera także firewall.
  6. Programy do zabezpieczania zasobów na komputerze – BitLocker (windows 7) lub EncryptOnClick
  7. Fajne wideo - (jedno z wielu)

         

        1. Rzeczy, które możesz robić w chwilach wolnych - http://www.thegeekstuff.com/2010/03/30-things-to-do-when-you-are-bored-and-have-a-computer/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29
        2. Jak stworzyć sieć domową w oparciu o Windows 7 - http://blogs.techrepublic.com.com/itdojo/?p=1561&tag=nl.e101 i jak udostępnić jej zasoby “starym” klientom (Windows XP i Vista) - How do I make Windows 7 HomeGroup content accessible to Vista and XP-

        No to HipHop

        Wg. CIO - Poważny portal jakim jest FaceBook ogłosił, że w celu zoptymalizowania wydajności swych aplikacji (napisanych w PHP) będzie używał zamiast serwera Apache inny tzw. HipHop for PHP. Jest to serwer tłumaczący PHP w zoptymalizowany kod C++ z wbudowanym w siebie serwerem www. Zbudowany został własnymi siłami przez Facebook. Ilość kodu PHP jest ogromna ok. 4 mln wierszy. Proces został zainicjowany, nie wiadomo nic o harmonogramie przejście z Apache na HipHop. Dotychczas Facebook używał tradycyjnego modelu LAMP ale z uwagi na ilość użytkowników zaczyna “robić” bokami i odczuwa potrzebę poprawienia wydajności  i skalowalności. Próbuje także innych środków np. przechodzi z Apache 1.3 na 2.2, stosuje nowy serwer www o nazwie Tornado (napisany w języku Python). Innymi technologiami typu open_source używanymi przez F jest memcache oraz baza Hadoop. Tutaj mamy przegląd wszystkich technologii otwartych stosowanych przez ten portal - http://developers.facebook.com/opensource.php. Obciążenie tego serwisu jest ogromne – średnio użytkownik siedzi w nim dziennie ok. 30 minut (więcej niż w aplikacjach Google) i ma ok. 150 znajomych.

        Wojna przeglądarek

        Badanie rynku przegladarek internetowych wykazały spadek udziału FireFox’a -http://www.netmarketshare.com/browser-market-share.aspx?qprid=1