Bot Trafiğinin Payı Sahtecilik önleme ekibi, mağaza sitesinde bot trafiğini tespit etmek için bir mekanizma geliştirdi: Bir bot siteye giriş yaptığında, URL parametrelerine "bot" alt dizisi (büyük/küçük harf fark etmeksizin) eklenir. Eğer user_id Aralık ayında en az bir kez bot olarak tanımlandıysa, her zaman bot olarak kabul edilmelidir. Kullanıcıların site ziyaretleriyle ilgili veri kümesini inceleyin ve Aralık 2024'te toplam kullanıcı sayısına göre botların oranını hesaplayın (bir ondalık basamağına yuvarlayın). Giriş formatı Tablo visits: - event_date (date) — ziyaret tarihi - user_id (int) — benzersiz kullanıcı kimliği - url (string) — ziyaretin gerçekleştirildiği bağlantı Verilerde eksik veya yanlış değer yoktur. Çıkış formatı Sorgu, aşağıdaki alanlara sahip bir tablo döndürmelidir: - share (float) — Aralık ayındaki toplam kullanıcı sayısına göre botların oranı, bir ondalık basamağına yuvarlanmış.
Data Engineer
İki işlem vardır. İlk işlem bir komut çalıştırır. Daha sonra ikinci işlem bir komut çalıştırır. Ardından ilk işlem devam eder. Hangi sıralama karşılıklı kilitlenmeye yol açar? ```sql -- ilk işlem update accounts set balance = balance + 100 where id = ?; -- ikinci işlem update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```
Uzaktaki bir daldan çalışmayı nasıl geri yükleriz? `git checkout hotfix/missing-footer` komutunu denediğinizde dal bulunamadı hatası alıyorsanız.
Projede, tüm dallarda güvenlik açığını en az riskle giderme stratejisi nedir? - Sorunlu commit ve kısmen düzeltmiş olan tüm commitler için revert commitleri oluşturmak, ardından tam düzeltme ile yeni bir commit yapmak - Sorunlu commit'ten önceki bir noktadan hotfix dalı oluşturmak, düzeltmeleri yapmak ve bu dalı tüm etkilenmiş dallarla birleştirmek - Ana dalda git revert abc123 kullanarak tek bir düzeltici commit oluşturmak ve ardından bu commit'i tüm sürüm dallarına cherry-pick yapmak - Sorunlu kodu tam olarak belirlemek için git bisect kullanmak, bir yama oluşturmak ve bunu git am ile tüm dallara uygulamak - Her dalda sorunlu commit'i düzenlemek için git rebase -i kullanmak, ardından zorunlu push (force-push) yapmak
Reklam kampanyalarında kullanıcı etkinliği analizi Şirket, reklam kampanyalarıyla ilgili olayların kaydını tutmaktadır. İki tablo sağlanmıştır: • campaigns — reklam kampanyalarının listesi, kimlikleri ve isimleri ile; • events — kampanyalara göre kullanıcı olayları, olay türü (örneğin 'click' (tıklama)) ve zaman bilgisi ile. Her kampanya için aşağıdaki göstergelerle bir rapor oluşturulması gerekmektedir: • Toplam olay sayısı. • Olayları gerçekleştiren benzersiz kullanıcı sayısı. • Kampanya başına ilk ve son olay zamanı. • Toplam olay sayısına göre azalan sırayla kampanya sıralaması. Sıralama, sonuç kümesinde her satıra verilen bir sayıdır. Eğer iki veya daha fazla satır aynı değere sahipse, aynı sıralamayı alırlar, ancak sonraki sıralama atlanır. Sadece olayları olan kampanyalar rapora dahil edilmelidir: olay olmayan kampanyalar dikkate alınmaz. Son rapor, önce kampanya sıralamasına göre artan sırayla, ardından campaign_name'e göre alfabetik sırayla sıralanmalıdır. Giriş formatı • campaign_name (string) — reklam kampanyasının adı • start_date (timestamp) — kampanyanın başlama tarihi ve saati • end_date (timestamp) — kampanyanın bitiş tarihi ve saati events tablosu: • event_id (int) — olayın benzersiz kimliği • user_id (int) — olayı gerçekleştiren kullanıcının benzersiz kimliği • campaign_id (int) — kampanyanın benzersiz kimliği • event_type (string) — olay türü, örneğin 'click' veya 'conversion' • event_time (timestamp) — olayın tarihi ve saati Veriler eksik veya yanlış değer içermemektedir. Çıktı formatı Sorgu, aşağıdaki alanları sırasıyla içeren bir tablo döndürmelidir: • campaign_name (string) — reklam kampanyasının adı • total_events (int) — kampanyayla ilişkili toplam olay sayısı • unique_users (int) — olayları gerçekleştiren benzersiz kullanıcı sayısı • first_event_time (timestamp) — kampanyanın ilk olayı tarihi ve saati • last_event_time (timestamp) — kampanyanın son olayı tarihi ve saati • campaign_rank (int) — toplam olay sayısına göre kampanya sıralaması Verileri, kampanya sıralamasına göre artan sırayla ve ardından campaign_name'e göre alfabetik sırayla sıralayın.
Alt modülün gösterdiği dalı değiştirmek istiyorsanız ne yapmalısınız? - Alt modüller dal değişimini desteklemez - Alt modülü silip tekrar istenen dal ile ekleyin - Alt modülde dalı değiştirip ana depo üzerinde commit yapın - Alt modülde istenen dalda git checkout yapın ve değişiklikleri ana depoda kaydedin - git submodule update --branch komutunu kullanarak yeni dalı belirtin
Şu anda neden iş tekliflerini değerlendiriyorsunuz?
Ne oldu ve çalışmayı nasıl geri getirebilirsiniz?
notifications tablosu, değerleri 'sent', 'delivered', 'read' olan bir alan içeriyor. Hangi sorgu doğrudur? select * from notifications where status like '%sent%' order by created_at desc limit 5 select * from notifications where status = 'read' order by created_at desc limit 5 select * from notifications order by status desc limit 5 select * from notifications where status not in ('sent', 'delivered') order by created_at asc limit 5 select * from notifications where status in ('sent', 'delivered') order by created_at desc limit 5
Bir feature dalı, hatalı şekilde commitlenmiş config.yaml dosyasını içeren birkaç commit içeriyor ve bu dosya daha sonra düzeltildi. Sonuç olarak, ekip, gizli ayarların ifşa edilmesini önlemek için dosyanın tüm değişikliklerini tarihten tamamen kaldırmaya karar verdi. Dalın başlangıç durumu (git log --oneline çıktısı): 1 a4b5c67 (HEAD -> feature) Servis mantığını yeniden yapılandırdı 2 d9f0a11 config.yaml yazım hatasını düzeltti 3 7c1d3f2 Geçici config.yaml ekledi 4 e3a98cd İlk commit 5 Tarihçeyi yeniden yazarak config.yaml dosyasını kaldırdıktan sonra, git log --oneline çıktısı şu hale geldi: 6 b9e7d42 (HEAD -> feature) Servis mantığını yeniden yapılandırdı 7 41f3b60 İlk commit Ekip hangi işlemi gerçekleştirdi? - git revert komutunu config.yaml içeren commit üzerinde çalıştırdı - git filter-branch --index-filter "git rm --cached config.yaml" -- --all komutunu çalıştırdı - git rebase -i komutunu, dosya değişiklikleri içeren commitleri silerek yaptı - git commit --amend ve git push --force komutlarını kullandı - git cherry-pick komutunu, config.yaml olmadan yeni bir dal oluşturmak için kullandı
PostgreSQL'de, satır sürüm başlığı xmax parametresini içerir. Bu, işlemler yönetiminde ne işe yarar? - Tablo içinde benzersiz bir satır kimliği oluşturmak için - Diğer işlemler tarafından satırın görünürlüğünü kontrol etmek için - Satırı silen veya güncelleyen işlemin numarasını göstermek için - Birden fazla işlemin aynı anda yaptığı değişikliklere karşı satırı kilitlemek için - Sayısal bir sütuna yazılabilecek maksimum değeri göstermek için
Resimde gösterilen yapıya sahip tablolar yapısı oluşturuldu. Resimde gösterilen sorguyu çalıştırmak gerekiyor. [...]'in yerine hangi join tipi kullanılmalı ki, sonuçta type = 'table_aw' olan kayıtlar için 'naming' sütunu doldurulsun ve type = 'table2' olan kayıtlar için 'serial_number' sütunu doldurulsun? create table multirelation( type varchar not null, entity_id integer not null ); create table table_aw( id integer primary key, naming varchar not null ); create table table2( id integer primary key, serial_number varchar not null ); -- tablo yapısı select m.type,m.entity_id, ta.naming, t2.serial_number from multirelation m [...] join table_aw ta on m.entity_id = ta.id and m.type='table_aw' [...] join table2 t2 on m.entity_id = t2.id and m.type='table2'; -- sorgu Boş bırakın inner cross right left
Lütfen, bu pozisyona neden ilgi duyduğunuzu anlatın.
Projede kök dizininden hangi komut, docs/ alt modülünü uzak depodaki en son sürüme güncellemek ve bu değişikliği commit'e hazırlamak için kullanılmalıdır? git fetch docs/ && git merge docs/FETCH_HEAD git pull --recurse-submodules git submodule update --remote docs/ cd docs/ && git pull && cd .. && git commit -am "Güncelleme" git submodule update --init docs/
Fitness kulüplerinde ziyaret analizi Bir fitness kulübü zincirinde analist olarak çalışıyorsunuz. Kullanıcıların ziyaretleri ve satın aldıkları üyelikler hakkında bilginiz var. Üyeliklerin kullanım etkinliğini analiz etmeniz gerekiyor. Her üyelik türü için şunları hesaplayın: • Bu üyelik türünü kullanan toplam kullanıcı sayısı. Sadece benzersiz user_id'leri dikkate alın; • Bu üyelikle yapılan toplam ziyaret sayısı. Bu üyelikle olan tüm kullanıcı ziyaretlerini dikkate alın; • Bu üyelik türündeki kullanıcıların toplam kullanıcı sayısına oranını yüzde olarak (bir ondalık basamağıyla yuvarlanmış). Kullanıcı oranını hesaplamak için, bu üyelik türüne sahip kullanıcı sayısını toplam benzersiz kullanıcı sayısına bölün. Her kullanıcı sadece bir üyeliğe sahip olabilir. Sonucu üyelik türüne göre alfabetik sırayla sıralayın. Giriş formatı Tablo memberships: • membership_id (int) — üyelik benzersiz kimliği • user_id (int) — kullanıcının benzersiz kimliği • membership_type (text) — üyelik türü Tablo visits:
Önceki Scala projelerinde hangi projelerde çalıştınız? Bu teknolojideki belirli görevleri ve başarıları paylaşın.
Ne oldu ve çalışmayı nasıl geri alırsın?
Aşağıdaki sorgunun doğruluğu hakkında ne söylenebilir? select * from sessions where ended_at is null and status != 'pending';
Lojistik şirketi için rapor Bir lojistik şirketinde operasyonları kaydeden bir analistsiniz. Her depo için verimlilik raporu hazırlamanız gerekiyor. Her depo için hesaplayın: • toplam operasyon sayısı (count_operations); • depoda işlenen toplam ürün sayısı (sum_quantity); • sadece belirtilen zamanla (NULL olmayan) işlemler dikkate alınarak, yuvarlanmış ortalama işlem süresi (avg_processing_time); • bir işlemde işlenen maksimum ve minimum ürün sayısı (max_quantity, min_quantity); • her işlem türü için («teslimat», «gönderim», «taşıma») ayrı sütunlarda: supply_operations, shipment_operations, transfer_operations. Toplam işlem sayısı 2'den fazla olan ve ortalama işlem süresi 60 dakikayı aşmayan depoları filtreleyin. Sonucu depo ID'sine göre artan sırayla sıralayın. Giriş formatı operations tablosu: • operation_id (int) — işlem kimliği • warehouse_id (int) — depo kimliği • operation_type (text) — işlem türü: «teslimat», «gönderim», «taşıma»
İki ilişkili tablonuz var: first_table ve second_table. TRUNCATE TABLE second_table CASCADE; komutunu çalıştırmak istiyorsunuz; bu, second_table tablosundaki tüm satırları ve onlara bağlı tüm verileri siler. Bu komutun yürütülmesinin olası sonuçları nelerdir? create table first_table ( id integer primary key ); create table second_table ( id serial primary key, first_table_fk integer references first_table(id) ); - second_table_id_seq dizisi başlangıç değerine sıfırlanacaktır. - second_table ile dış anahtar aracılığıyla ilişkili olan first_table'daki tüm kayıtlar silinecektir. - second_table için mevcut indeksler silinecek ve otomatik olarak yeniden oluşturulacaktır. - Daha sonra second_table'a ekleme yaparken, id için varsayılan değer yanlış bir değerle başlayabilir. - Bir hata oluşur, çünkü CASCADE komutu dış anahtar içeren tablolarda yasaktır.