Data Engineer
რა არის CTE (საერთო მაგიდის გამოთქმა)?
რამდენად ხშირად ითვლებოდა витრინები? იყო ეს ინკრემენტული თუ სრული გამოთვლა?
რა შეიძლება ითქვას შემდეგი შეკითხვის სისწორეზე? select * from sessions where ended_at is null and status != 'pending';
ლოგისტიკის კომპანიისთვის ანგარიში თქვენ ხართ ლოგისტიკური კომპანიის ანალიტიკოსი, რომელიც აკრეფს ოპერაციებს საწყობებში. უნდა მოამზადოთ ანგარიში თითოეული საწყობი ეფექტურობის შესახებ. თითოეული საწყობი გამოითვალეთ: • საერთო ოპერაციების რაოდენობა (count_operations); • საწყობში დამუშავებული საერთო საქონლის რაოდენობა (sum_quantity); • ოპერაციის საშუალო დრო (avg_processing_time), მხოლოდ მითითებული დროის ოპერაციებისთვის (არ NULL), მრგვლივ მთელ რიცხვად; • მაქსიმალური და მინიმალური საქონლის რაოდენობა, რომელიც ერთ ოპერაციაში დამუშავდა (max_quantity, min_quantity); • თითოეული ტიპის ოპერაციების რაოდენობა («მიწოდება», «გაგზავნა», «გადატანა») ცალკე სვეტებში: supply_operations, shipment_operations, transfer_operations. ფილტრეთ საწყობები, რომელთა საერთო ოპერაციების რაოდენობა აღემატება 2-ს და საშუალო დრო არ აღემატება 60 წუთს. შედეგი sort-ით დაალაგეთ საწყობი ID-ის მიხედვით ზრდადობით. შესავალი ფორმატი ოპერაციების სია: • operation_id (int) — ოპერაციის უნიკალური ID • warehouse_id (int) — საწყობის ID • operation_type (text) — ოპერაციის ტიპი: «მიწოდება», «გაგზავნა», «გადატანა»
მიწოდებულია სტრიქონი order, რომელიც აღნიშნავს სასურველ სიმბოლოთა წესრიგს. უნდა გადათარგმნოთ სიმბოლოები სტრიქონში unsorted_str ისე, რომ წესრიგი შესაბამისი იყოს სტრიქონთან order. ორივე სტრიქონი შედგება ინგლისური ალფავიტის პატარა ასოებისგან, ყველა სიმბოლო სტრიქონში order განსხვავებულია. სიმბოლოთა წესრიგი unsorted_str-ში ეწოდება შესაბამისობა სტრიქონთან order, თუ ის, რომ სიმბოლო x იწერება y-წინ, გამოითქმის, რომ ნებისმიერი გამოჩენა x-ის unsorted_str-ში უნდა იყოს y-ის ნებისმიერი გამოჩენის წინ. შესაძლებელია სიტუაციები, როდესაც order-ში არ არის სიმბოლოები unsorted_str-დან და პირიქით. დაბრუნეთ ნებისმიერი დაშვებული permutation. unsorted_str = "abcd" order = "cba" პასუხი = "dcba" ("cdba", "cbda", "cbad") def CustomSort(unsorted_str: str, order: str) -> str: # კოდი აქ
როგორ დავყოთ მოთხოვნა ეტაპებად? ამისთვის რა გავაკეთოთ?
დამუშავებულხარ ფანჯრის ფუნქციებთან? რა სახის ფანჯრის ფუნქციებს იცნობ?
ანგარიში ლოჯისტიკური კომპანიისთვის თქვენ ხართ ლოჯისტიკური კომპანიის ანალიტიკოსი, რომელიც აკონტროლებს საწყობებზე ოპერაციების აღრიცხვას. თქვენ გჭირდებათ თითოეული საწყობის ეფექტიანობის შესახებ ანგარიში მოამზადოთ. თითოეული საწყობისთვის გამოთვალეთ: • საერთო ოპერაციების რაოდენობა (count_operations); • საწყობში დამუშავებული საქონლის საერთო რაოდენობა (sum_quantity); • ოპერაციის საშუალო დრო (avg_processing_time), მხოლოდ მითითებული დროის ოპერაციებისთვის (NULL არ უნდა იყოს), მთელი რიცხვამდე მოხაზული; • ერთ ოპერაციაში დამუშავებული საქონლის მაქსიმალური და მინიმალური რაოდენობა (max_quantity, min_quantity); • თითოეული ტიპის ოპერაციების რაოდენობა («მიწოდება», «გადაზიდვა», «გადანაწილება») ცალკეულ სვეტებში: supply_operations, shipment_operations, transfer_operations. ფილტრეთ საწყობები, სადაც საერთო ოპერაციების რაოდენობა მეტია 2-ზე და საშუალო დრო არ აღემატება 60 წუთს. შედეგი sort-ის მიხედვით დაალაგეთ საწყობის ID-ის მიხედვით ზრდადობით. შესავალი ფორმატი ოპერაციების სია: • operation_id (int) — ოპერაციის უნიკალური იდენტიფიკატორი • warehouse_id (int) — საწყობის იდენტიფიკატორი • operation_type (text) — ოპერაციის ტიპი: «მიწოდება», «გადაზიდვა», «გადანაწილება» • quantity (int) — საქონლის რაოდენობა ოპერაციაში • operation_date (timestamp) — ოპერაციის თარიღი და დრო • processing_time (int) — ოპერაციის დამუშავების დრო processing_time სვეტი შეიძლება შეიცავდეს გამოტოვებულ მნიშვნელობებს. გამოტანის ფორმატი საკითხი უნდა დააბრუნოს ცხრილს შემდეგი სვეტებით: • warehouse_id (int) — საწყობის უნიკალური იდენტიფიკატორი • count_operations (int) — საწყობზე შესრულებული ოპერაციების საერთო რაოდენობა • sum_quantity (int) — საწყობში დამუშავებული საქონლის საერთო რაოდენობა • avg_processing_time (numeric) — ოპერაციის საშუალო დრო (წუთებში), მხოლოდ არა NULL დროსთან ოპერაციებისთვის, მთელი რიცხვამდე მოხაზული • max_quantity (int) — ერთ ოპერაციაში დამუშავებული ყველაზე მეტი საქონლის რაოდენობა • min_quantity (int) — ერთ ოპერაციაში დამუშავებული ყველაზე მცირე საქონლის რაოდენობა • supply_operations (int) — «მიწოდების» ოპერაციების რაოდენობა • shipment_operations (int) — «გადაზიდვის» ოპერაციების რაოდენობა • transfer_operations (int) — «გადანაწილების» ოპერაციების რაოდენობა
დამატებითი მონაცემების ხარისხის შემთხვევებზე მუშაობდი?
რა გიბიძგებთ მუშაობაში? ჩამოთვალეთ თქვენი ძლიერი მხარეები hard skills-ის სფეროში.
სპეციალური თანმიმდევრობა შექმნილია სახელწოდებით even_sequence, რომელიც მხოლოდ ჯამებს ქმნის. რა უნდა ჩასვათ [...]-ის ადგილზე, რათა თუ even_column-ის მნიშვნელობა არ არის მითითებული შეტანაზე, მნიშვნელობა მიიღოს even_sequence-დან? create table some_table( even_column [...] ); integer computed as nextval('even_sequence') integer generated always as identity (start with 2 increment by 2) integer default nextval('even_sequence') integer unique default nextval('even_sequence') integer generated by even_sequence’
რატომ არ არის რეკომენდებული ბევრი პატარა ინსერტის გაკეთება ClickHouse-ში?
შენ შექმენი დashboard-ებს და მუშაობდი მონაცემთა ვიზუალიზაციის ინსტრუმენტებთან (BI ინსტრუმენტები)?
სტატისტიკა რა არის მონაცემთა ბაზების მართვის სისტემებში და სარეკლამო ოპტიმიზაციაში?
როგორ არის დაკავშირებული Spark-ის განყოფილებები და ცხრილების განყოფილებები (მაგალითად, Iceberg-ში)?
რომელი გუნდი და რომელ ხელმძღვანელობით მუშაობა თქვენთვის ყველაზე კომფორტულია?
რა ხდებოდა, როდესაც მონაცემების ხარისხის შეზღუდვა აქტიურდებოდა: გაფრთხილება, ჩამოვარდნა, გადატვირთვა?
რა არის ინდექსი? რა განსხვავებაა კლასტერული ინდექსისა და კლასტერული არქივის შორის?
## მოდის პრობლემა # რიცხვების სიაა. დაწერეთ ფუნქცია, რომელიც ამ სიაში მოდას იპოვის. # find_mode([1, 2, 3, 3, 4, 5]) #> 3
რა დააბრუნებს find_mode ფუნქცია სიის [1, 2, 3, 3, 4, 5]თვის? ნაბიჯ-ნაბიჯ ახსენი.