Преглед: Kinetica анализира милиарди редове в реално време

През 2009 г. бъдещите основатели на Kinetica излязоха празни, когато се опитваха да намерят съществуваща база данни, която би могла да даде на командването на разузнаването и сигурността на армията на Съединените щати (INSCOM) във Форт Белвоар (Вирджиния) способността да проследява милиони различни сигнали в реално време за оценка на заплахите за националната сигурност. Така те създадоха нова база данни от нулата, съсредоточена върху масивна паралелизация, съчетаваща мощта на GPU и CPU за изследване и визуализиране на данни в пространството и времето. До 2014 г. те привличат други клиенти, а през 2016 г. се включват като Kinetica.

Текущата версия на тази база данни е сърцето на Kinetica 7, сега разширена по обхват, за да бъде Kinetica Active Analytics Platform. Платформата съчетава исторически и поточни анализи на данни, разузнаване на местоположението и машинно обучение във високопроизводителен пакет, готов за облак.

Като референтни клиенти Kinetica има, наред с други, Ovo, GSK, SoftBank, Telkomsel, Scotiabank и Caesars. Ovo използва Kinetica за персонализиране на дребно. Telkomsel, световният безжичен оператор, използва Kinetica за информация за мрежата и абонатите. Anadarko, наскоро придобит от Chevron, използва Kinetica, за да ускори анализа на петролните басейни до точката, в която компанията не трябва да намалява своите 90-милиардни редови набори от данни за 3D визуализация и анализ.

Kinetica често се сравнява с други бази данни на GPU, като OmniSci, Brytlyt, SQream DB и BlazingDB. Според компанията обаче те обикновено се конкурират с много по-широка гама от решения, от поръчкови SMACK (Spark, Mesos, Akka, Cassandra и Kafka) стекови решения до по-традиционните платформи за разпределена обработка на данни и съхранение на данни.

Основни характеристики и архитектура на Kinetica

Kinetica комбинира своята разпределена, в паметта, ускорена с GPU база данни с поточна аналитика, разузнаване на местоположението и машинно обучение. Базата данни е векторизирана, колонна, с първоначална памет и е предназначена за аналитични (OLAP) натоварвания, като автоматично разпределя всяко работно натоварване между CPU и GPU. Kinetica използва SQL-92 за език на заявки, подобно на PostgreSQL и MySQL, и поддържа разширен набор от възможности, включително търсене на текст, анализ на времеви редове, разузнаване на местоположението и анализ на графики.

Kinetica може да работи върху целия корпус от данни, като интелигентно управлява данни в GPU памет, системна памет, диск или SSD, HDFS и облачно съхранение като Amazon S3. Според компанията тази способност за управление на всички нива на съхранение е уникална за Kinetica сред GPU бази данни.

Със своите разпределени паралелни възможности за поглъщане, Kinetica може да извършва едновременно високоскоростно поглъщане на поточни набори от данни (с Kafka) и сложен анализ на поточни и исторически данни. Можете да обучите модели TensorFlow срещу данни директно в Kinetica или да импортирате предварително обучени модели TensorFlow или „черна кутия“, за да изпълнявате изводи чрез групова обработка, обработка на потоци или публична уеб услуга.

Kinetica разполага със стабилна и ускорена от GPU библиотека от геопространствени функции за извършване на филтриране по заявка, агрегиране, времеви редове, пространствено присъединяване и анализ на геозоната. Той може също така да показва неограничена геометрия, топлинни карти и контури, използвайки технология за рендиране от страна на сървъра (тъй като рендирането на големи масиви данни от страна на клиента е много отнемащо време).

Можете да използвате релационните си данни в контекст на естествена графика (чрез изрично създаване на възли, ръбове и други обекти на графики от релационни данни) за разбиране на геопространствени и негеопространствени връзки и можете да извършвате оптимизация на маршрути в реално време и дори анализ на социалната мрежа с помощта на графичните алгоритми на ускорените графични процесори на Kinetica (с помощта на kinetica.solve_graphфункцията).

Kinetica Kinetica

Опции за инсталиране и конфигуриране на Kinetica

Има три метода за инсталиране на Kinetica. Сега предпочитаният метод е KAgent, който автоматизира инсталирането и конфигурирането на Kinetica, Active Analytics Workbench (AAW) и Kubernetes, пръстени (висока наличност) и др. Двата алтернативни метода са използването на Docker (за преносими инсталации на Kinetica) и ръчно инсталиране чрез командния ред, като се използват общи Linux-базирани мениджъри на пакети като yumи apt.

Управление на ресурси.  Kinetica поддържа пет нива на съхранение: VRAM, RAM, кеш на диска, персистиране и студено съхранение. Всички операции, които използват GPU, изискват данните, върху които работят, да бъдат разположени в нивото на VRAM. Управлението на данни в тези пет слоя е нетривиален проблем.

Изселването е принудително преместване на данни от по-високо ниво на по-ниско ниво, за да се направи място за други данни да бъдат преместени в това по-високо ниво. Всеки обект в системата има ниво на изгонване, което зависи от вида на обекта и наличните нива под него, в които може да бъде изгонен. Изселването може да се извърши в отговор на заявка, която може да причини много движение на данни, или активно във фонов режим на базата на високи и ниски нива на воден знак и приоритети за изселване, което обикновено създава по-малко движение на данни.

Висока наличност.  Kinetica HA елиминира единичната точка на повреда в стандартен клъстер Kinetica и осигурява възстановяване от повреда. Той е внедрен външно за Kinetica, за да използва множество реплики на данни и осигурява евентуално последователно съхранение на данни. Решението Kinetica HA се състои от четири компонента: челен балансьор на товара, мениджъри на процеси с висока наличност, един или повече клъстери Kinetica и разпределена опашка за съобщения.

Администрация.  Можете да администрирате Kinetica с графичния инструмент GAdmin, командния ред на Linux serviceили KAgent. Екранната снимка по-долу показва табло за управление на GAdmin за клъстер с 6 възела.

Демонстрации на Kinetica

В допълнение към GAdmin и KAgent, Kinetica предлага уеб базиран инструмент за визуализация Reveal и Active Analytics Workbench (AAW), който е за интегриране на модели и алгоритми за машинно обучение.

Клъстерът с шест възела, показан на екранната снимка по-горе, е този, който използвах за изследване на няколко демонстрации на Kinetica. Клъстерът се състои от g3.8xlarge екземпляри, всеки от които съдържа два графични процесора на Nvidia Tesla M60 и 32 процесора Intel Xeon E5 2686 v4. Всеки екземпляр има 244 GiB RAM и 16 GiB VRAM на графичен процесор. Тази настройка може да бъде намалена, нагоре и надолу, за да побере всеки случай на употреба. След като завърших тестовете си, базата данни съдържаше 413 таблици и 2,2 милиарда записи.

Демонстрациите, които изследвах, бяха за прогнозиране на финансов риск, използвайки опции, застрахователен риск за наводнения в Тексас, оценка на сигурността на мрежата, базирана на инспекция на трафика, и таксита в Ню Йорк. В процеса забелязах, че за разлика от демонстрациите на OmniSci (вижте моя преглед), които всички използваха единични сплескани таблици (за скорост), демонстрациите на Kinetica често използваха множество таблици, изгледи и аналитични табла за управление.

Прогнозиране на финансовия риск с опции

Това приложение по същество е доказателство за концепцията за управление на финансовия риск в реално време с Kinetica. Мобилното приложение React и две уеб табла позволяват на мениджъра на риска да вижда всички „гърци“ (фактори за измерване на риска) за неговото или нейното портфолио и да добавя живи плетове. Зад кулисите транзакциите се вливат в базата данни и моделът на риска за машинно обучение на Black Scholes се актуализира непрекъснато върху данните на живо. За разлика от това, традиционното управление на риска включва копиране на данните за транзакциите в отделен клъстер, който изпълнява рискови модели всяка вечер.

Застрахователен риск от катастрофални наводнения в Тексас

Целта на това приложение е да се оцени излагането на риска на застрахователна компания на катастрофални наводнения в Тексас от таблица на притежателите на полици и зоните на наводненията на урагана Харви. Приложението прави тежки геопространствени изчисления в SQL заедно със статистически изчисления.

Оценка на мрежовата сигурност

Това приложение е предназначено да помогне на служителя по мрежовата сигурност да защити мрежата от прониквания. Основната таблица на Kinetica съчетава около 1,8 милиарда исторически мрежови заявки с емисия в реално време.

Разходки с такси в Ню Йорк

Базата данни за пътуване с такси в Ню Йорк е нещо, което също разгледах в OmniSci. Kinetica го предоставя като набор от данни, който можете да заредите; това отне около минута. Първоначално отне повече време за актуализиране на всички диаграми след всяка операция за мащабиране на картата в Kinetica, отколкото си спомних от OmniSci; след това промених настройка, така че Kinetica да не нанася данни извън увеличената карта на другите графики, а времето за реакция спадна до подсекундния диапазон.

Резени и табла на Kinetica

Отделните графики в Kinetica Reveal се наричат ​​филийки. Резените са организирани в табла.

Дизайнерът на срезове е доста подобен на дизайнерите, които ще намерите в OmniSci и редица BI продукти, като Tableau.

Не тествах частта за анализ на графики на Kinetica, но ми харесва начина, по който е проектиран. Ако графичните бази данни са само малка част от това, което трябва да направите с вашите данни, тогава повторното използване на съхранени редове от релационните таблици като ръбове и възли е напълно логично. Използването на графични процесори за ускоряване на графичните алгоритми също е напълно логично.

Виждайки как Kinetica интегрира машинното обучение със своята GPU база данни, анализ в реално време и географска информация ме кара да разбера къде OmniSci иска да отиде, но Kinetica вече е там. Също така, виждането как Kinetica управлява своите нива на съхранение ме кара да разбера защо Kinetica обикновено се конкурира с големи данни и системи за съхранение на данни.

Като цяло Kinetica е много впечатляваща. Той прави това, което твърди, прескачайки високи бази данни с един-единствен ... Искам да кажа, анализирайки бази данни с милиарди исторически редове и емисии в реално време. Иска ми се да усетя разходите за абонамент, но това е патентовано, както често се случва със системи от този мащаб.

-

Цена: Kinetica таксува годишен абонамент въз основа на броя терабайта в паметта; не таксува за съхранение на данни в други нива. Абонаментният лиценз ви позволява да стартирате Kinetica навсякъде - локално или в облака. Абонаментните разходи са напълно предвидими. 30-дневен безплатен пробен период.

Платформа: RHEL, CentOS, Ubuntu, Suse или Debian Linux сървър с най-малко осем CPU ядра и 8 GB RAM; Nvidia K40 или по-нови графични процесори; локално, в облака или на ръба на вградено устройство Jetson TX2. Kinetica също работи на Docker, със или без графични процесори.