Data Engineer
Ավելին պատմիր Spark-ի մասին՝ ինչն է կոնկրետ իրականացվել, ինչ մեթոդներ են օգտագործվել
Ի՞նչ է տարբերությունը WHERE և HAVING-ի միջև։
GIL (Global Interpreter Lock) ինչ է և ինչպես է դա աշխատում Python-ում։
Մենք պետք է ունենանք pipeline շարժիչ՝ մեխանիզմ, որը թույլ կտա շատ արագ ստեղծել հոսքեր՝ մատակարարելով պայմանագրեր և պարամետրեր։ Ինչպե՞ս կիրականացնեիր դա վերին մակարդակում։
Ի՞նչ առավելություններ և թերություններ կարող ենք նշել ACID-ի, բացի ընթերցման արագությունից։
Ինչու հաջորդ հարցումը չի օգտագործի ինդեքսը, եթե տաբլո record-ների (id) վրա ստեղծված է սովորական B-Tree ինդեքս? select * from records where id % 2 = 0 - Id-ի համար անհրաժեշտ է GIN տեսակի ինդեքս - Ինդեքսները չեն աշխատում WHERE արտահայտությունների հետ - % համեմատական գործողություն է, ոչ թե ֆիլտր - limit և offset պարտադիր են ինդեքսով օպտիմիզացման համար - Հարցումը վերաբերում է թվային դաշտին, ոչ թե տեքստային
Ինչպես աշխատեցիք CI/CD-ով?
Ի՞նչ տեսակների JOIN-ներ գիտես: (գործնական)
Ի՞նչ Airflow օպերատորներ եք օգտագործել: Ինչպե՞ս աշխատեցիք dbt- ի հետ Airflow-ով:
-- Օրիգինալ stretch աղյուսակը -- Անհրաժեշտ է լրացնել NULL արժեքները նախորդ (ոչ NULL) արժեքով id-ի հիման վրա - ներքևի լրացում id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | NULL 1 | 16:12 | NULL 2 | 09:42 | 133 2 | 15:20 | NULL 2 | 21:33 | NULL 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | NULL 3 | 16:17 | NULL 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | NULL 4 | 16:31 | 7 4 | 17:44 | NULL id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | 10 1 | 16:12 | 10 2 | 09:42 | 133 2 | 15:20 | 133 2 | 21:33 | 133 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | 8 3 | 16:17 | 8 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | 312 4 | 16:31 | 7 4 | 17:44 | 7 -- SQL հարցում ցանկալի աղյուսակը ստանալու համար SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Իմացեք ձեր աշխատանքային փորձի մասին
Որ հետևյալ հայտարարությունը արտացոլում է այս գործողությունների հետևանքները ընդլայնված Git Flow-ի և փոփոխությունների պատմության կառավարման տեսանկյունից:
Ինչքան եք հետաքրքրված այս դերում, հաշվի առնելով վերլուծաբանների հետ սերտ համագործակցությունը, նրանց կոդի վերանայումը և խորհրդատվությունը։
Հարցման առումով մենք կարող ենք տեսնել, թե ինչ է տեղի ունենում տվյալների հետ, այդ թվում՝ ինչ տեսակի միացումներ — ինչ տեսակի միացումներ կարող ենք տեսնել այնտեղ?
Պատմեք ինձ Airflow-ի օգտագործման մասին՝ ինչ ոչ ստանդարտ տարրեր եք կիրառել
Greenplum-ում ինչ տեսակի ընթերցում է օգտագործվում՝ տողային կամ սյունակային:
Օգտագործողների ակտիվության վերլուծություն գովազդային արշավներում Ընկերությունը վարում է գովազդային արշավների հետ կապված իրադարձությունների հաշվառում։ Մուտքային աղյուսակները՝ • campaigns — գովազդային արշավների ցանկ՝ նրանց նույնականացուցիչներով և անվանումներով; • events — օգտագործողների իրադարձություններ արշավների վերաբերյալ՝ իրադարձության տեսակի (օրինակ՝ 'click' (կլիկ գովազդի վրա)) և ժամանակի մասին տեղեկություններով։ Անհրաժեշտ է կազմել հաշվետվություն յուրաքանչյուր գովազդային արշավի համար՝ հետևյալ ցուցանիշներով՝ • Ընդհանուր իրադարձությունների քանակը։ • Միայն այն օգտագործողների քանակը, ովքեր կատարել են իրադարձություններ։ • Արշավի առաջին և վերջին իրադարձության ժամանակը։ • Արշավի ընդհանուր իրադարձությունների քանակով նվազման կարգով։ Ռանգը — թիվ, որը նշանակվում է յուրաքանչյուր տողի՝ տվյալների տրված կարգի հիման վրա։ Եթե երկու կամ ավելի տողեր ունեն նույն արժեքը, նրանց տրամադրվում է նույն ռանգը, բայց հաջորդ ռանգը բացակայում է։ Ներառել միայն այն արշավները, որոնց ունեցել են իրադարձություններ՝ առանց իրադարձությունների արշավները հաշվի չեն առնվում։ Վերջնական հաշվետվությունը պետք է նախ դասավորել ռանգով աճման կարգով, ապա՝ campaign_name-ի ըստ ալֆաբետային կարգի։ Մուտքային ձևաչափ • campaign_name (string) — գովազդային արշավի անվանում • start_date (timestamp) — գովազդային արշավի մեկնարկի ժամանակը • end_date (timestamp) — ավարտի ժամանակը Իրադարձությունների աղյուսակը՝ • event_id (int) — իրադարձության եզակի նույնականացուցիչ • user_id (int) — օգտագործողի եզակի նույնականացուցիչ, ով կատարել է իրադարձությունը • campaign_id (int) — գովազդային արշավի եզակի նույնականացուցիչ • event_type (string) — իրադարձության տեսակը, օրինակ՝ 'click' (կլիկ) կամ 'conversion' (փոխանցում՝ հաջողված գործողություն, օրինակ՝ գնում) • event_time (timestamp) — իրադարձության կատարման ժամանակը Տվյալները չեն պարունակում բացթողումներ կամ սխալ արժեքներ։ Ելքային ձևաչափ Հարցը պետք է վերադարձնի աղյուսակ՝ հետևյալ դաշտերով՝ • campaign_name (string) — գովազդային արշավի անվանում • total_events (int) — ընդհանուր իրադարձությունների քանակը • unique_users (int) — եզակի օգտագործողների քանակը, ովքեր կատարել են իրադարձություններ • first_event_time (timestamp) — առաջին իրադարձության ժամանակը • last_event_time (timestamp) — վերջին իրադարձության ժամանակը • campaign_rank (int) — արշավի ռանգը ընդհանուր իրադարձությունների քանակով նվազման կարգով Տվյալները դասավորել ռանգով աճման կարգով, ապա՝ campaign_name-ի ըստ ալֆաբետային կարգի։
Ի՞նչ տեսակների JOIN-ներ գիտես: բացատրի 2-3 հիմնակաները։
Ինչպե՞ս գտնել Linux-ում լոգ ֆայլի կոնկրետ սյունակում ենթատեքստ (օրինակ, երրորդ սյունակում ամսաթիվ):
Ի՞նչ տվյալների որակի ստուգումներ են կատարվել Data Vault-ում։