Що таке великі дані, частина 2


першої частини цієї серії статей ви дізналися про даних і про те, як можна використовувати комп'ютери щоб добувати смислове значення з великих блоків таких даних. Ви навіть бачили щось схоже на великі дані у Amazon.com середини дев'яностих, коли компанія запустила технологію для спостереження і запису в реальному часі все, що багатотисячна аудиторія клієнтів одночасно робила на їх сайті. Досить вражаюче, але назвати це великими даними можна з натяжкою, пухкі дані — більше підійде. Організації на зразок Агентства національної безпеки США (NSA) та Центру урядового зв'язку Великобританії (GCHQ) вже збирали великі дані в рамках шпигунських операцій, записуючи цифрові повідомлення, хоча у них і не було простого способу розшифрувати їх і знайти в них сенс. Бібліотеки урядових записів були переповнені наборами бессвязних даних.
Те, що зробив Amazon.com, було простіше. Рівень задоволеності їхніх клієнтів міг бути легко визначений, навіть якщо він охоплював всі десятки тисяч продуктів і мільйони споживачів. Дій, які клієнт може вчинити в магазині, він реальний або віртуальний, не так вже й багато. Клієнт може подивитися що в доступі, запросити додаткову інформацію, порівняти продукти, що покласти у кошик, купити або піти. Все це було в межах можливостей реляційних баз даних, де відносини між усіма видами дій можливо задати заздалегідь. І вони повинні бути задані заздалегідь, з чим у реляційних баз даних проблема — вони не так легко розширювана.
Заздалегідь знати структуру такої бази даних — як скласти список всіх потенційних друзів вашого ненароджену дитину… на все життя. У ньому повинні бути перераховані всі ненароджені друзі, тому що як тільки список буде складений, яке додавання нової позиції вимагає серйозного хірургічного втручання.
Пошук зв'язків і закономірностей у даних вимагає більш гнучких технологій.
Перша велика технологічна задача інтернету 90-х — справлятися з неструктурованими даними. Простими словами — з даними, які оточують нас щодня і раніше не розглядалися як щось, що можна зберігати у вигляді бази даних. Друга задача — дуже дешева обробка таких даних, оскільки їх обсяг був високим, а інформаційний вихлоп — низьким.
Якщо вам потрібно прослухати мільйон телефонних розмов в надії виявити хоча б одне згадування Аль-Каїди, вам знадобиться або вагомий бюджет, або новий, дуже дешевий спосіб обробки цих даних.
Комерційний інтернет тоді мав дві дуже схожі завдання: пошук всякої всячини у Всесвітній павутині і плата за рекламою можливість щось знайти.
Задача пошуку. 1998 році загальна кількість веб-сайтів досягла 30 мільйонів (сьогодні їх більше двох мільярдів). 30 мільйонів місць, кожне з яких містить безліч веб-сторінок. Pbs.org наприклад, це сайт, що містить більше 30 000 сторінок. Кожна сторінка містить сотні або тисячі слів, зображень та інформаційних блоків. Щоб щось знайти в інтернеті, потрібно було проіндексувати весь інтернет. Ось вже великі дані!
Для індексації спочатку потрібно було прочитати весь веб, всі 30 мільйонів хостів в 1998 році або 2 мільярди сьогодні. Це зробили за допомогою так званих павуками (spiders) або пошукових роботів — комп'ютерних програм, які методично шукають в Інтернеті нові веб-сторінки, читають їх, а потім копіюють і перетягують назад в індекс їх вміст. Всі пошукові системи використовують пошукових роботів, і вони повинні працювати безперервно: оновлювати індекс, утримувати його в актуальному стані з появою нових веб-сторінок, їх зміною або зникненням. Більшість пошукових систем підтримує індекс не тільки поточного веба, але, як правило, і всіх старих версій, так що при пошуку більш ранніх модифікацій можна повернутися в минуле.
Індексація означає запис всіх метадані — дані про дані — слів, зображень, посилань та інших типів даних, таких як відео або аудіо, вбудовані у сторінку. Тепер помножте це на стопятьсот мільйонів. Ми робимо це тому, що індекс займає приблизно один відсоток обсягу сервера, який він представляє — еквівалент 300 тисяч сторінок даних з 30 мільйонів в 1998 році. Але індексація — це не пошук інформації, а лише запис метаданих. Пошук корисної інформації з індексу ще складніше.
У перше десятиліття інтернету існували десятки пошукових систем, але чотири були найбільш важливими, і кожна мала свій технічний підхід щодо отримання смислового значення з їх всіх цих сторінок. Альта-Віста була першим реальним пошукачем. Вона з'явилася в лабораторії Digital Equipment Corporation, в Пало-Альто. Digital Equipment Corporation насправді була лабораторією інформатики в XEROX PARC, перевезеної майже в повному обсязі на відстань двох миль Бобом Тейлором, який звів їх обох і найняв більшість старих співробітників.
Альта-Віста використовувала лінгвістичний інструмент для пошуку по своєму веб-індексом. А індексувала вона всі слова в документі, наприклад, в веб-сторінці. Якщо ви давали йому запит "пошук золотих дублонів", Альта-Віста сканувала свій індекс на наявність документів, що містять слова "пошук", "золотих" і "дублонов", і виводила список сторінок, впорядкованих за кількістю згадок запитаних слів.
Але навіть тоді лайна в інтернеті було багато, а значить Альта-Віста, індексувала все це лайно і не вміла відрізняти хороше від поганого. Це були лише слова, в кінці кінців. Природно, погані документи часто піднімалися вгору, а систему було легко надути, вставляючи приховані слова щоб спотворити пошук. Альта-Віста не могла відрізнити реальні слова від прихованих.
У той час, як перевагою Альта-Вісти було використання потужних комп'ютерів DEC (що було важливим моментом, так як DEC були провідними виробниками комп'ютерної техніки), перевагою Yahoo! було використання людей. Компанія наймала працівників для того, щоб вони весь день буквально переглядали веб-сторінки, індексували їх вручну (і не дуже ретельно), а потім відзначали найцікавіші з кожної теми. Якщо у вас є тисяча людино-індексатори і кожен може індексувати 100 сторінок на день, то Yahoo могла індексувати 100 000 сторінок на день або близько 30 мільйонів на рік — вся всесвіт інтернету 1998. Це працювало на ура у Всесвітній павутині, поки веб не розрісся до міжгалактичних масштабів і став непідвладний Yahoo. Рання система Yahoo з їх людськими ресурсами не масштабировалась.
Незабаром з'явився Excite, він був заснований на лінгвістичному трюку. Трюк в тому, що система не шукала те, що чоловік написав, а те, що йому було потрібно, тому що не кожен міг точно сформулювати запит. Знову ж таки, ця задача сформувалася в умовах дефіциту обчислювальних можливостей (це головний момент).
Excite використовував той же індекс, що і Альта-Віста, але замість того, щоб підраховувати як часто зустрічаються слова "золотий" або "дублон", шість працівників Excite використовували підхід, заснований на геометрії векторів, де кожен запит визначався як вектор, що складається з умов запитів та їх частоти. Вектор — це просто стрілка в просторі, з початковою точкою, напрямком і завдовжки. У всесвіті Excite початковою точкою була повна відсутність шуканих слів (нуль "пошук," нуль "золотих" і нуль "дублонов"). Сам пошуковий вектор починався з точки нуль-нуль-нуль з цими трьома пошуковими умовами, а потім розширювався, скажімо, до двох одиниць "пошук", бо стільки разів слово "пошук" зустрічалося в цільовому документі, тринадцять одиниць "золотих" і може бути, п'ять — "дублонов". Це був новий спосіб індексування індексу і кращий спосіб для опису даних, що зберігаються, так як час від часу він приводив до результатів, які не використовували жоден з шуканих слів — те, чого Альта-Віста не змогла зробити.
Веб-індекс Excite не був просто списком слів та частоти їх використання, він був багатовимірним векторним простором, в якому пошук розглядався як напрямок. Кожен пошук був однією колючкою в еже даних і геніальної стратегією Excite (генієм Грема Спенсера) було захопити не одну, а всі колючки по сусідству. Охоплюючи не тільки повністю відповідали умовам запиту документи (як Альта-Віста), але і всі схожі за сформульованим умовам в багатовимірному векторному просторі, Excite був більш корисним інструментом пошуку. Він працював по індексу, для обробки використовував математику векторів і, що більш важливо, майже не вимагав обчислень для отримання результату, оскільки обчислення вже були зроблені в процесі індексації. Excite давав результати краще і швидше, використовуючи примітивне залізо.
Але Google був ще кращим.
Google вніс два удосконалення пошук — PageRank і дешеве залізо.
Просунутий векторний підхід Excite допомагав виводити потрібні шукані результати, але навіть його результати часто були марні. Ларрі Пейдж з Google придумав спосіб оцінки корисності за допомогою ідеї, заснованої на довірі, який приводив до більшої точності. Пошук Google на початку використовував лінгвістичні методи, подібні Альта-Віста, але потім додав додатковий фільтр PageRank (названо на честь Ларрі Пейджа, помітили?), який звертався до перших результатів і вибудовував їх за кількістю сторінок, з яким вони були пов'язані. Ідея полягала в тому, що чим більше авторів сторінок заморачивалось дати посилання на дану сторінку, тим більш корисною (чи, принаймні, цікавою, нехай навіть у поганому сенсі) була сторінка. І вони були праві. Інші підходи стали відмирати, а Google швидко вийшов в тренд зі своїм патентом PageRank.
Але була ще одна деталь, яку Google реалізував інакше. Альта-Віста з'явилася Digital Equipment і працювала на величезному скупченні міні-комп'ютерів VAX від DEC. Excite використовував не поступається їм по потужності залізо UNIX від Sun Microsystems. А Google запускався лише з допомогою вільного програмного забезпечення з відкритим вихідним кодом, на комп'ютерах трохи більш потужних, ніж особисті. А взагалі, вони були менше, ніж ПК, тому що у саморобних комп'ютерів Google не було ні корпусів, ні джерел живлення (вони харчувалися, буквально, від автомобільних акумуляторів і заряджалися від автомобільних зарядних пристроїв). Перші модифікації були прикручені до стін, а пізніше ними фарширували стелажі, як листами зі свіжою випічкою в промислових печах.
Amazon створив бізнес-кейс для великих даних і розробив незграбний спосіб реалізувати його на залозі і софті, ще не пристосованих для великих даних. Пошукові компанії сильно розширили розмір практичних наборів даних, поки освоювали індексацію. Але справжні великі дані не могли працювати з допомогою індексу, їм були потрібні фактичні дані, а для цього потрібні дуже великі і дорогі комп'ютери, як Amazon, або спосіб використовувати дешеві ПК, які виглядають як гігантський комп'ютер Google.
Бульбашка доткомів. Давайте уявимо ейфорію і дитячість інтернету кінця 1990-х років, у період так званого міхура доткомів. Всім було ясно, починаючи від Білла Гейтса, що майбутнім персональних комп'ютерів і, можливо, бізнесу був інтернет. Тому венчурні капіталісти інвестували мільярди доларів в інтернет-стартапи, не сильно замислюючись над тим, як ці компанії насправді будуть заробляти гроші.
Інтернет розглядався як гігантська територія, де було важливо створювати настільки великі компанії, наскільки можливо, настільки швидко, наскільки можливо, і захоплювати і зберігати частку в бізнесі незалежно від того, є у компанії прибуток чи ні. Вперше в історії компанії почали виходити на фондовий ринок, не заробивши ні копійки прибутку за весь час їх існування. Але це сприймалося як норма — прибуток з'явиться у процесі.
Результатом всього цього ірраціонального достатку було відродження ідей, більшість з яких не реалізувалася б у інші часи. Broadcast.com наприклад, замислювався для трансляції телебачення через dial-up на величезну аудиторію. Ідея не спрацювала, але Yahoo! все-таки купив його за $5,7 мільярда в 1999 році, що зробило Марка Кубана мільярдером, яким він і сьогодні залишається.
Ми вважаємо, що Кремнієва долина побудована за законом Мура, завдяки чому комп'ютери постійно дешевшали і ставали більш потужними, але ера доткомів тільки вдавала, що використовувала цей закон. Насправді вона будувалася на галасі.
Галас і закон Мура. багато з цих махінацій інтернету 90-х могли досягти успіху, вартість обробки даних повинна була сильно впасти нижче тієї, що була можлива в реальності, згідно із законом Мура. Все тому, що бізнес-модель більшості доткомовских стартапів була заснована на рекламі, і суми, яку вони були готові заплатити, був суворий ліміт.
Якийсь час це не мало значення, тому що венчурні капіталісти, а потім інвестори з Волл-стріт були готові компенсувати різницю, але в кінці кінців стало очевидним, що Альта-Віста з його величезними центрами обробки даних не зможе отримувати прибуток тільки від пошуку. Як і Excite, і будь-який інший пошуковик того часу.
Доткоми в 2001 розвалилися з-за того, що у стартапів закінчилися гроші довірливих інвесторів, які підтримували їх рекламні компанії на Суперкубку. Коли останній долар останнього дурня був витрачений на останнє офісне крісло від Herman Miller, майже всі інвестори вже продали свої частки і пішли. Тисячі компаній впали, деякі з них за ніч. Amazon, Google і кілька інших вижили завдяки тому, що зрозуміли як заробляти гроші в інтернеті.
Amazon.com відрізнявся тим, що бізнес Джеффа Безоса був електронною комерцією. І це був новий вид торгівлі, який повинен був замінити цеглу електронами. Для Amazon економія на нерухомості і зарплати зіграли велику роль, так як прибуток компанії вимірюється в доларах за одну транзакцію. А для пошукача — першого застосування великих даних і реального інструменту інтернету — рекламний ринок окупався вартістю менше цента за транзакцію. Єдиним способом здійснити таке було зрозуміти, як порушити закон Мура і сильніше знизити вартість обробки даних, і в той же час зв'язати пошуковик з рекламою і цим збільшити продажі. Google впорався з обома завданнями.
Настав час для Другого Чудесного Пришестя великих даних, яка повністю пояснює, чому Google сьогодні коштує $479 мільярдів, а більшість інших пошукових компаній давно мертві.

GFS, Map Reduce і BigTable. Оскільки Пейдж і Брін були першими, хто зрозумів, що створювати власні супер-дешеві сервери — це ключ до виживання компанії, Google довелося побудувати нову інфраструктуру обробки даних, щоб змусити тисячі дешевих ПК виглядати і працювати як один суперкомп'ютер.
Коли інші компанії, здається, звикли до збитками в надії на те, що закон Мура в якийсь момент спрацює і перетворить їх у прибуткові, Google знайшов спосіб зробити прибутковим свій пошуковик вже в кінці 90-х. Сюди входило винахід нових комп'ютерних, програмних і рекламних технологій. Діяльність Google в цих областях безпосередньо і привела нас у світ тих великих даних, формування якого можна спостерігати сьогодні.
Давайте спочатку поглянемо на масштаби сьогоднішнього Google. Коли ви шукаєте щось через їх пошуковик, ви спочатку взаємодієте з трьома мільйонами веб-серверів в сотнях центрів обробки даних по всьому світу. Все, що роблять ці сервери — посилають образи сторінок на екран вашого комп'ютера, в середньому, 12 мільярдів сторінок в день. Веб-індекс зберігається додатково на двох мільйонах серверів, а ще три мільйони серверів містять фактичні документи, об'єднані в систему. Всі разом — вісім мільйонів серверів, без урахування YouTube.
Три ключові компоненти "копійчаної" архітектурі Google, це їх файлова система або GFS, яка дозволяє всім цим мільйонам серверів звертатися до того, що вони вважають звичайною пам'яттю. Звичайно, це не просто пам'ять, а її подрібнені копії, звані фрагментами, але вся фішка в їх спільності. Якщо змінити файл, він повинен бути змінений на всіх серверах одночасно, навіть на тих, які знаходяться за тисячі кілометрів один від одного.
Виходить, величезна проблема для Google — це швидкість світла.
MapReduce розподіляє велику задачу по сотням чи тисячам серверів. Він віддає завдання декількох серверів, а потім збирає безліч відповідей в один.
BigTable — це база даних компанії Google, яка містить всі дані. Вона не реляційна, тому що реляційна не зможе працювати в такому масштабі. Це старомодна плоска база даних, яка, як і GFS, повинна бути когерентної.
Перед тим, як були розроблені ці технології, комп'ютери функціонували як люди, працюючи над одним завданням із обмеженою кількістю інформації в один момент часу. Можливість змусити тисячі комп'ютерів виконувати спільну роботу над величезним обсягом даних стала потужним проривом.
Але Google для досягнення своїх фінансових цілей цього було недостатньо.
Великий брат починав як рекламщик. Google було досить просто зробити обробку даних дешевше, щоб наблизитися до розмірів прибутку Amazon.com. Решту різницю між центом і доларом за транзакцію можна було покрити, якщо знайти більш прибутковий спосіб продажу інтернет-реклами. Google це зробив через ефективну індексацію користувачів, як раніше він це зробив з інтернетом.
Вивчаючи нашу поведінку і передбачаючи наші споживчі потреби, Google пропонував нам рекламу, за якою ми б перейшли з вірогідністю в 10 або 100 разів більше, що збільшувало ймовірний дохід Google з такого кліка в 10 або 100 разів.
Тепер нарешті ми говоримо в масштабах великих даних.
Працювали інструменти Googlе з внутрішнім або зовнішнім світом — не важливо, все працювало однаково. І на відміну від системи SABRE, наприклад, це були інструменти загального призначення — вони могли бути використані практично для будь-якого роду завдання, застосовані до майже будь-якого виду даних.
GFS і MapReduce першими не накладала ніяких обмежень на розмір бази даних і масштабованість пошуку. Все, що було потрібно — це більше усередненого заліза, яке поступово призвело б до мільйонів дешевих серверів, ділять завдання між собою. Google постійно додає сервери в свою мережу, але робить це розумно, тому що, якщо тільки центр обробки даних не відключиться цілком, сервери після поломки не замінять. Це занадто складно. Їх просто залишать мертвими в стійках, а MapReduce буде займатися обробкою даних, уникаючи неробочі сервери і використовуючи діючі поблизу.
Google опублікував статтю про GFS в 2003 році і про MapReduce 2004. Один з чарівних моментів цього бізнесу: вони навіть не намагалися зберігати в таємниці свої методи, хоча, цілком імовірно, що інші коли-небудь дійшли б до подібних рішень самостійно.
Yahoo!, Facebook і інші швидко відтворили відкриту версію Map Reduce, яка називається Hadoop (в честь іграшкового слона — слони нічого не забувають). Це і дозволило з'явитися того, що ми сьогодні називаємо хмарними обчисленнями. Це просто платна послуга: розподіл вашої задачі між десятками або сотнями орендованих комп'ютерів, іноді орендованих на кілька секунд, а потім об'єднання декількох відповідей в одне логічно пов'язане рішення.
Великі дані перетворили хмарні обчислення в необхідність. Сьогодні важко їх розмежувати ці два поняття.
Не тільки великі дані, але і соціальні мережі стали можливими завдяки MapReduce і Hadoop, оскільки вони зробили економічно обґрунтованим можливість мільярду користувачів Facebook створювати динамічні веб-сторінки безкоштовно, а компанії отримувати прибуток тільки від реклами.
Навіть Amazon перейшов на Hadoop, і сьогодні практично немає жодних обмежень для зростання їх мережі.
Amazon, Facebook, Google і NSA не можуть функціонувати без MapReduce або Hadoop, які, до речі, назавжди знищили необхідність індексу. Пошук сьогодні проводиться не по індексу, а з сирим даними, які змінюються від хвилини до хвилини. Точніше, індекс оновлюється від хвилини до хвилини. Не суть важливо.
Завдяки цим інструментам Amazon та інші компанії надають послуги хмарових обчислень. Озброєні тільки кредитною карткою розумні програмісти можуть у межах декількох хвилин використовувати потужність одного, тисяча чи десять тисяч комп'ютерів, і застосувати їх для вирішення якої-небудь задачі. Саме тому інтернет-стартапи більше не купують сервери. Якщо хочете ненадовго роздобути обчислювальні ресурси більші, ніж у всій Росії, вам знадобиться лише карта для оплати.
Якщо Росія захоче отримати більше обчислювальних ресурсів, ніж у Росії, вона теж може скористатися пластиковою карткою.
Велике питання без відповіді: чому Google поділився своїми секретами з конкурентами і зробив публічними свої дослідження? Було це дурним зарозумілістю з боку засновників Google, які в той час ще захищали докторські дисертації в Стенфорді? Немає. Google поділився своїми секретами, щоб створити галузь. Йому було потрібно не виглядати в очах конкурентів монополією. Але що ще більш важливо, дозволяючи тисячам інших кольорів зацвісти, Google сприяв зростанню інтернет-індустрії, чим збільшив свій дохід на 30-40 відсотків.
Поділившись своїми секретами, Google отримав менший шматок більшого пирога.
Ось так, в двох словах, і з'явилися Великі Дані. Google відстежує кожен ваш клацання мишею, і мільярд або більше кліків інших людей. Так само і Facebook і Amazon, коли ви знаходитесь на їх сайті або користуєтеся Amazon Web Services на будь-якому іншому сайті. А вони охоплюють третину обробки даних всього інтернету.
Задумайтесь на хвилину, яке значення це має для суспільства. Якщо в минулому бізнеси використовували маркетингові дослідження і думали, як продати товари споживачам, то тепер вони можуть використовувати великі дані для знати про ваших бажаннях і про те, як вам це продати. Саме тому я тривалий час бачив оголошення в інтернеті про дорогих еспресо-машини. А коли я, нарешті, купив її, реклама майже миттєво припинилася, тому що система дізналася про моє придбання. Вона перейшла до спроби продати мені кавові зерна і, чомусь, підгузники для дорослих.
Коли-то у Google буде сервер на кожного інтернет-користувача. Вони та інші компанії будуть збирати більше типів даних про нас і краще передбачати нашу поведінку. До чого це призведе, залежить від того, хто буде користуватися цими даними. Це може перетворити нас в ідеальних споживачів або спійманих терористів (або в більш успішних терористів — це ще один аргумент).
Немає завдання, яка була б непереборно великий.
І в перший раз, завдяки Google, у NSA і ЦПС, нарешті, є інструменти пошуку по збереженим даними розвідки, і вони можуть відшукати всіх нехороших хлопців. Або, може бути, назавжди поневолити нас.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.