Google BigQuery деректер талдауын қалай демократияландырды. 2 бөлім

Эй Хабр! Дәл қазір OTUS-те жаңа курс ағынына жазылу ашық Деректер инженері. Курстың басталуына орай біз сіздермен пайдалы материалмен бөлісуді жалғастырамыз.

Бірінші бөлімді оқыңыз

Google BigQuery деректер талдауын қалай демократияландырды. 2 бөлім

Деректерді басқару

Күшті деректерді басқару - Twitter инженериясының негізгі қағидасы. BigQuery-ді платформамызға енгізген кезде біз деректерді табуға, кіруді басқаруға, қауіпсіздік пен құпиялылыққа назар аударамыз.

Деректерді табу және басқару үшін біз деректерге қол жеткізу деңгейін кеңейттік DAL) пайдаланушыларымыз үшін бірыңғай интерфейс пен API қамтамасыз ететін жергілікті және Google Cloud деректері үшін құралдарды қамтамасыз ету. Google ретінде Деректер каталогы жалпы қолжетімділікке қарай жылжуда, біз оны пайдаланушыларға баған іздеу сияқты мүмкіндіктермен қамтамасыз ету үшін жобаларымызға қосамыз.

BigQuery деректермен бөлісуді және оларға қол жеткізуді жеңілдетеді, бірақ деректер эксфильтрациясының алдын алу үшін бізге осыны бақылау қажет болды. Басқа құралдардың арасында біз екі функцияны таңдадық:

  • Домен шектелген бөлісу: Пайдаланушылардың BigQuery деректер жиынын Twitter-ден тыс пайдаланушылармен бөлісуіне жол бермеу үшін бета мүмкіндігі.
  • VPC қызметін басқару элементтері: Деректердің эксфильтрациясын болдырмайтын және пайдаланушылардың белгілі IP мекенжайлары ауқымдарынан BigQuery-ге кіруін талап ететін басқару элементі.

Біз қауіпсіздікке арналған аутентификация, авторизация және аудит (AAA) талаптарын төмендегідей орындадық:

  • Аутентификация: біз арнайы сұраулар үшін GCP пайдаланушы тіркелгілерін және өндірістік сұраулар үшін қызмет тіркелгілерін пайдаландық.
  • Рұқсат ету: Біз әрбір деректер жиынының иесіне қызмет көрсету тіркелгісі және оқырмандар тобы болуын талап еттік.
  • Аудит: Біз оңай талдау үшін сұрауды орындау туралы толық ақпаратты қамтитын BigQuery стек драйвері журналдарын BigQuery деректер жинағына экспорттадық.

Twitter пайдаланушыларының жеке деректерінің дұрыс өңделуін қамтамасыз ету үшін біз барлық BigQuery деректер жиынын тіркеуіміз, жеке деректерге аннотациялар енгізуіміз, дұрыс сақтауды сақтауымыз және пайдаланушылар жойған деректерді жоюымыз (қырып тастауымыз) керек.

Біз Google-ды қарадық Cloud Data Loss Prevention API, ол құпия деректерді жіктеу және өңдеу үшін машиналық оқытуды пайдаланады, бірақ дәлдігіне байланысты деректер жиынын қолмен аннотациялауды ұйғарды. Біз пайдаланушылық аннотацияны кеңейту үшін Data Loss Prevention API пайдалануды жоспарлап отырмыз.

Twitter-де біз BigQuery-дегі деректер жиыны үшін сезімталдықтың кему ретімен берілген төрт құпиялылық санатын жасадық:

  • Аса сезімтал деректер жинақтары ең аз артықшылықтар принципіне негізделген қажетінше қолжетімді болады. Әрбір деректер жинағында жеке оқырмандар тобы бар және біз жеке тіркелгілер бойынша пайдалануды бақылаймыз.
  • Орташа сезімталдық деректер жинағы (тұздалған хэшингті пайдаланатын бір жақты бүркеншік аттар) жеке сәйкестендірілетін ақпаратты (PII) қамтымайды және қызметкерлердің үлкен тобына қол жетімді. Бұл құпиялылық мәселелері мен деректер утилитасы арасындағы жақсы теңгерім. Бұл қызметкерлерге нақты пайдаланушылардың кім екенін білмей-ақ, мүмкіндікті пайдаланған пайдаланушылар санын есептеу сияқты талдау тапсырмаларын орындауға мүмкіндік береді.
  • Барлық пайдаланушы идентификациялық ақпараты бар төмен сезімталдық деректер жиыны. Бұл құпиялылық тұрғысынан жақсы тәсіл, бірақ оны пайдаланушы деңгейіндегі талдау үшін пайдалану мүмкін емес.
  • Жалпыға ортақ деректер жинақтары (Twitter-тен тыс шығарылады) Twitter-дің барлық қызметкерлеріне қолжетімді.

Тіркеуге келетін болсақ, BigQuery деректер жиынын санау және оларды деректерге қол жеткізу деңгейінде тіркеу үшін жоспарланған тапсырмаларды қолдандық (DAL), Twitter метадеректер репозиторийі. Пайдаланушылар құпиялылық ақпараты бар деректер жиынына түсініктеме береді, сонымен қатар сақтау мерзімін көрсетеді. Тазалауға келетін болсақ, біз екі нұсқаның өнімділігі мен құнын бағалаймыз: 1. Scalding сияқты құралдарды пайдаланып GCS деректер жиынын тазалау және оларды BigQuery-ге жүктеу; 2. BigQuery DML мәлімдемелерін пайдалану. Біз әртүрлі топтардың және деректердің талаптарын қанағаттандыру үшін екі әдістің комбинациясын қолдануымыз мүмкін.

Жүйе функционалдығы

BigQuery басқарылатын қызмет болғандықтан, Twitter-дің SRE командасын жүйелерді басқаруға немесе үстел міндеттеріне тартудың қажеті болмады. Сақтау және есептеу үшін көбірек сыйымдылықты қамтамасыз ету оңай болды. Google қолдауымен билет жасау арқылы слот брондауын өзгерте аламыз. Өзіне-өзі қызмет көрсететін ұяшықтарды бөлу және бақылау үшін бақылау тақтасын жақсарту сияқты жақсартуға болатын аймақтарды анықтадық және сол сұрауларды Google-ға жібердік.

құны

Біздің алдын ала талдауымыз BigQuery және Presto сұрауларының құны бірдей деңгейде екенін көрсетті. үшін слоттар сатып алдық тіркелген төлемнің орнына тұрақты ай сайынғы шығынға ие болу үшін баға талаптар бойынша өңделген деректердің ТБ үшін. Бұл шешім сонымен қатар әрбір сұрауды жасамас бұрын шығындар туралы ойланғысы келмейтін пайдаланушылардың пікірлеріне негізделген.

BigQuery-де деректерді сақтау GCS шығындарына қосымша шығындар әкелді. Scalding сияқты құралдар GCS деректер жиынын қажет етеді және BigQuery-ге кіру үшін біз бірдей деректер жиынын BigQuery пішіміне жүктеуіміз керек болды. Конденсатор. Біз BigQuery деректер жиынына Scalding қосылымы бойынша жұмыс істеп жатырмыз, бұл деректер жиынын GCS және BigQuery екеуінде де сақтау қажеттілігін болдырмайды.

Ондаған петабайттан тұратын сирек сұрауларды қажет ететін сирек жағдайларда біз BigQuery-де деректер жиынын сақтау үнемді емес деп шештік және GCS жүйесіндегі деректер жиынына тікелей қол жеткізу үшін Presto қолданбасын пайдаландық. Мұны істеу үшін біз BigQuery сыртқы деректер көздерін қарастырамыз.

Келесі қадамдар

Альфа нұсқасы шыққаннан бері біз BigQuery-ге үлкен қызығушылықты байқадық. Біз BigQuery-ге қосымша деректер жиынын және басқа пәрмендерді қосып жатырмыз. BigQuery жадына оқу және жазу үшін Scalding сияқты деректерді талдау құралдары үшін қосқыштарды әзірлейміз. BigQuery деректер жиынын пайдаланып кәсіпорынның сапа есептері мен жазбаларын жасауға арналған Looker және Apache Zeppelin сияқты құралдарды қарастырамыз.

Google-мен ынтымақтастығымыз өте нәтижелі болды және біз бұл серіктестікті жалғастырып, дамытуға қуаныштымыз. Біз Google-мен жұмыс істеп, өзімізді жүзеге асырдық Серіктес мәселесін бақылау құралысұрауларды тікелей Google-ге жіберу үшін. Олардың кейбіреулері, мысалы, BigQuery Parquet жүктегіштерін Google енгізіп қойған.

Міне, Google үшін жоғары басымдықты мүмкіндік сұрауларымыздың кейбірі:

  • Ыңғайлы деректерді қабылдау және LZO-Thrift пішімін қолдау құралдары.
  • Сағаттық сегменттеу
  • Кесте, жол және баған деңгейіндегі рұқсаттар сияқты қатынасты басқару жақсартулары.
  • BigQuery Сыртқы деректер көздері Hive Metastore интеграциясы және LZO-Thrift пішімін қолдау.
  • BigQuery пайдаланушы интерфейсінде жақсартылған деректер каталогын біріктіру
  • Слоттарды бөлу және бақылау үшін өзіне-өзі қызмет көрсету.

қорытынды

Деректерді талдауды, визуализацияны және машиналық оқытуды қауіпсіз жолмен демократияландыру Data Platform командасының басты басымдығы болып табылады. Біз Google BigQuery және Data Studio осы мақсатқа жетуге көмектесетін құралдар ретінде анықтадық және өткен жылы BigQuery Alpha компаниясын шығардық.

BigQuery-тегі сұрауларды қарапайым және тиімді деп таптық. Біз Google құралдарын қарапайым құбырлар үшін деректерді қабылдау және түрлендіру үшін пайдаландық, бірақ күрделі құбырлар үшін өзіміздің Airflow құрылымын құруға тура келді. Деректерді басқару кеңістігінде аутентификация, авторизация және аудитке арналған BigQuery қызметтері біздің қажеттіліктерімізді қанағаттандырады. Метадеректерді басқару және құпиялылықты сақтау үшін бізге көбірек икемділік қажет болды және өз жүйелерімізді құруға тура келді. BigQuery, басқарылатын қызмет болғандықтан, пайдалану оңай болды. Сұрау құны бар құралдарға ұқсас болды. BigQuery-де деректерді сақтау GCS шығындарына қосымша шығындарды талап етеді.

Жалпы, BigQuery жалпы SQL талдауы үшін жақсы жұмыс істейді. Біз BigQuery-ге үлкен қызығушылықты байқап жатырмыз және біз BigQuery көмегімен көбірек деректер жиынын тасымалдау, көбірек команда тарту және көбірек құбырлар салу үшін жұмыс істеп жатырмыз. Twitter Scalding, Spark, Presto және Druid сияқты құралдардың тіркесімін қажет ететін әртүрлі деректерді пайдаланады. Біз деректерді талдау құралдарын нығайтуды жалғастырамыз және пайдаланушыларымызға ұсыныстарымызды қалай тиімді пайдалану керектігі туралы нақты нұсқаулар береміз.

Алғыс сөздері

Мен серіктес авторларым мен командаластарым Анджу Джа мен Уилл Паскуччиге осы жобадағы үлкен ынтымақтастығы және қажырлы еңбегі үшін алғыс айтқым келеді. Бізге көмектескен Twitter және Google-дың бірнеше командаларының инженерлері мен менеджерлеріне және Twitter-дегі BigQuery пайдаланушыларына құнды пікір білдірген алғысымды білдіргім келеді.

Егер сіз осы мәселелермен жұмыс істегіңіз келсе, біздің мақаланы қараңыз бос орындар Data Platform командасында.

DWH ішіндегі деректер сапасы – Деректер қоймасының консистенциясы

Ақпарат көзі: www.habr.com

пікір қалдыру