Една от най-критичните грешки, които пречат на компаниите да предоставят жизненоважна информация за вземане на решения на бизнес потребителите, е липсата на надеждни данни от един или повече източници на данни, събрани на едно място, организирани и подготвени за използване.
Представете си този сценарий - вие сте ИТ мениджър на компания за кейсове за мобилни телефони с търговски обекти в цяла САЩ. Вашият съвет на директорите се мъчи да взема решения въз основа на продажбите, тъй като информацията е налична, но тя е на различни места и формати. Един от директорите ви моли да генерирате табло с информация за продажбите от всички точки на продажба, за да го представите на следващото заседание на борда.
Вече знаете, че е почти невъзможно консолидирането на информацията поради различни формати и структури. Някои от павилионите за продажба на дребно все още използват собствена система в база данни на Oracle. По-големите магазини използват нова система Salesforce. Най-новите павилиони, започнали работа по време на системния преход, имат споделени електронни таблици, използвани за изчисляване на продажбите.
Как ще съберете всички данни от различни местоположения, формати и структури в уникален база данни готови да бъдат достъпни за генериране на табло?
ETL означава Извличане, трансформиране, и Заредете . ETL е група от процеси, предназначени да превърнат това сложно хранилище от данни в организиран, надежден и възпроизводим процес, за да помогнат на вашата компания да генерира повече продажби с данните, които вече имате.
В нашия случай ще получаваме данни от база данни на Oracle (повечето павилиони), от Salesforce (магазини) и от електронни таблици (по-нови павилиони), извличаме данните, трансформираме, когато е необходимо, и зареждаме в един база данни на хранилище за данни да бъдат достъпни чрез инструменти за отчитане и използвани за генериране на табла за управление и карти с резултати.
Нека да се потопим в трите стъпки на ETL, за да разгледаме по-подробно процеса.
Извличането е процес на получаване на данни от един или няколко източника. Източниците могат да имат различни формати и структури, като документи, електронни таблици, CSV файлове, плоски файлове, релационни бази данни като Oracle, MySQL, SQL Server, нерелационни бази данни и т.н.
Има два основни вида екстракция: пълен и частично .
В допълнение към тези аспекти, някои други съображения са необходими при избора между пълно или частично извличане и искам да опиша един от тях: наличност и цялост на данните .
Това означава, че само завършени транзакции ще бъдат взети предвид за извличане, като се елиминират данни, които могат да причинят повреда в целостта. Например онлайн тест за идентифициране на знанията на инженера с 10 въпроса. Ако инженер е в средата на теста и е отговорил на няколко въпроса, но все още не е завършил, процесът на извличане не може да прочете въпросите от незавършени тестове. Това може да причини повреда в целостта.
След извличане на данните можем да започнем процеса на трансформация: почистваме, манипулираме и трансформираме данните в съответствие с бизнес правилата и техническите критерии, за да поддържаме приемливо ниво на качеството на данните.
В зависимост от редица фактори може да се наложи използването на място за подреждане. Областта на подреждане е междинно пространство за съхранение, използвано за временно съхраняване на данни, извлечени от източници на данни, които трябва да бъдат трансформирани.
В някои проекти, обикновено тези с малко количество данни, няма нужда да се използват подредени области, но повечето проекти го използват.
Има набор от задачи, изпълнявани по време на фазата на трансформация:
Ето някои често срещани типове трансформация:
Не на последно място, последният процес в ETL е зареждането на данните в дестинацията. Зареждането е актът за вмъкване на трансформирани данни (от променителна зона или не) в хранилището, обикновено база данни на хранилище за данни.
Има три основни типа зареждане на данни: пълно или първоначално, постепенно и опресняване.
В обобщение, всяка компания, независимо от нейния размер, може да използва ETL процеси, за да интегрира информация, която вече съществува, и да генерира още по-голямо богатство от информация за вземане на решения, превръщайки данни, които преди това не са могли да бъдат използвани, в нов източник на приходи.
Тестването е една от най-важните фази на ETL и въпреки това една от най-пренебрегваните.
Трансформирането на данни от различни източници и структури и зареждането им в хранилище за данни е много сложно и може да генерира грешки. Най-често срещаните грешки са описани във фазата на трансформация по-горе.
Точността на данните е ключът към успеха, докато неточността е рецепта за бедствие. Следователно, Професионалисти от ETL имат мисия да гарантират целостта на данните по време на целия процес. След всяка фаза трябва да се направи тест. Независимо дали извличате данни от един източник или от множество източници, данните трябва да бъдат проверени, за да се установи, че няма грешки.
Същото трябва да се направи след всяка трансформация. Например, когато обобщавате данни по време на фазата на трансформация, данните трябва да бъдат проверени, за да се гарантира, че няма загубени данни и сумите са верни.
След зареждане на трансформираните данни в хранилището на данни, процесът на тестване трябва да се приложи отново. Заредените данни трябва да се сравняват с трансформираните данни и след това с извлечените данни.
В нашия пример за компания за мобилни телефони работим с три различни източника (собствена база данни на Oracle, Salesforce и електронни таблици) и различни формати. Фазата на тестване може да използва примерни данни от оригиналните източници и да ги сравнява с данните, намиращи се в етапната зона, за да гарантира, че извличането е станало без грешки.
Примерните данни - които в този случай могат да бъдат информация за продажби от три различни места (магазини, стари павилиони, нови павилиони) - трябва да бъдат сравнени с оригиналния източник. Разликите, ако има такива, трябва да бъдат анализирани, за да се види дали са приемливи или грешки.
Ако бъдат открити грешки, те трябва да бъдат отстранени и трябва да се вземат няколко решения, ако трябва да ги поправите: Трябва ли да се променят оригиналните данни? Възможно ли е да го направя? Ако грешките не могат да бъдат отстранени в оригиналния източник, могат ли да бъдат отстранени чрез някаква трансформация?
В някои случаи данните с грешки трябва да бъдат премахнати и да се задейства предупреждение за информиране на отговорниците.
Някои примери за тестване:
Регистрацията на ETL процеси е ключовата гаранция, че имате поддържани и лесни за поправяне системи.
ETL с правилния процес на регистриране е важно, за да се поддържа цялата работа на ETL в състояние на постоянно подобрение, помагайки на екипа да управлява грешки и проблеми с източници на данни, формати на данни, трансформации, дестинации и т.н.
Надеждният дневник помага на екипите да спестят време, позволявайки им да идентифицират проблемите по-бързо и лесно, а водещите инженери се нуждаят от по-малко време, за да определят директно проблема. Понякога възникват грешки в средата на извличане на тонове данни и без регистрационен файл идентифицирането на проблема е трудно - понякога почти невъзможно. Без регистрационни файлове целият процес трябва да бъде стартиран отново. Използвайки дневници, екипът може бързо да идентифицира файла и реда, който е причинил проблема, и може да поправи само тези данни.
Единственият случай, който мога да си представя, когато регистрационните файлове не са толкова важни, е с много малки неавтоматизирани системи, където процесът се изпълнява ръчно и има малко количество данни, които могат да бъдат наблюдавани на ръка.
Дневниците подобряват автоматизацията. ETL процесите с голямо количество данни, които се изпълняват автоматично, се нуждаят от регистрационни системи. Ако те са добре планирани и изпълнени, всички усилия, положени за изграждане на система за регистриране, ще изплатят дивиденти под формата на по-бързо идентифициране на грешки, по-надеждни данни и точки за подобрение, намерени в регистрационните файлове.
Има три основни стъпки при създаването на регистрационна система: генериране, архивиране, и анализирам .
ETL процесите могат да работят с тонове данни и могат да струват много - както по отношение на времето, прекарано за настройването им, така и на изчислителните ресурси, необходими за обработката на данните. Когато планират интеграция, инженерите трябва да имат предвид необходимостта от всички използвани данни. Най-доброто нещо, което трябва да направите, е да работите с минимално количество данни, за да постигнете целите, вместо да харчите време и пари само за мигриране на безполезни данни. Освен това имайте предвид, че количеството данни обикновено се увеличава с времето, така че се опитайте да вземете предвид бъдещите ви нужди.
Колко усилия трябва да се положат за проектиране на система за регистрация?
Това зависи от редица различни фактори като количеството и честотата на данните, които трябва да бъдат обработени. Малки системи с малко данни могат да се управляват ръчно, без да е необходимо да се инвестира в усъвършенствани системи за регистриране.
Компаниите с голямо количество данни, много различни процеси, различни източници на данни и формати и сложни тръбопроводи трябва да инвестират в създаването на системи за регистриране. Както вече споменахме, добрата регистрационна система може да спести много време и пари.
За по-очевиден подход, независимо от размера на компанията, количеството данни и честотата на интеграция, трябва да бъде процес на ETL изгодно . Инвестицията във време, пари и технически ресурси трябва да генерира възвръщаемост - както каза икономистът Милтън Фридман: „Няма безплатен обяд“.
В обобщение, ETL процесът може да помогне на компаниите да увеличат печалбата си с данни, които вече имат, но това не се използва по правилния начин. ETL тръбопроводите могат да интегрират различни системи, тези електронни таблици с важна информация и други части от данни, които се разпространяват в различни отдели и клонове, което позволява на организациите да се възползват максимално от своите данни.
ETL означава Extract, Transform и Load.
ETL не е единичен процес, а група процеси, предназначени да превърнат сложното хранилище на данни в организиран, надежден и възпроизводим процес, за да ви помогнат ефективно да използвате повече от данните, които вече имате.
Тъй като ETL консолидира данни от различни източници, след това ги трансформира във формат, използван в хранилището за данни, подобрявайки качеството и последователността на данните.
Като гарантираме, че данните се консолидират и трансформират в общ формат, независимо от оригиналния източник и формата.