Sobes.tech

Data Engineer

Fitness kulüplerine ziyaret sıklığı analizi Bir fitness kulübü ağında analist olarak çalışıyorsunuz. Kullanıcı 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 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 ilgili tüm kullanıcı ziyaretlerini dikkate alın; • Bu üyelik türündeki kullanıcıların toplam kullanıcı sayısına oranı yüzde olarak (bir ondalık basamağına yuvarlanmış). Oranı 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ı Memberships tablosu: • membership_id (int) — üyelik benzersiz kimliği • user_id (int) — kullanıcının benzersiz kimliği • membership_type (text) — üyelik türü Visits tablosu: • visit_id (int) — ziyaretin benzersiz kimliği • user_id (int) — kullanıcının kimliği • visit_date (timestamp) — ziyaret tarihi ve saati Verilerde boş veya hatalı değer yoktur. Çıkış formatı Sorgu, aşağıdaki alanları sıralı şekilde içeren bir tablo döndürmelidir: • membership_type (text) — üyelik türü • users_count (int) — bu üyelik türüne sahip benzersiz kullanıcı sayısı • total_visits (int) — bu üyelik türündeki kullanıcıların toplam ziyaret sayısı • user_share (numeric) — bu üyelik türündeki kullanıcıların toplam kullanıcı sayısına oranı yüzde olarak, bir ondalık basamağına yuvarlanmış. Sonuç, üyelik türüne göre alfabetik sırayla sıralanmalıdır.

Junior
250

Domain Driven Design (DDD) metodolojisiyle tanışıyor musunuz? Eğer evet ise, projelerinizdeki uygulama örneklerini paylaşın.

Junior
207

Projeden nasıl alt modül ve onunla ilişkili dosyaları kaldırılır? git submodule remove <alt-modül-yolu> git rm --cached <alt-modül-yolu>; .gitmodules bölümünü sil; git commit git clean --submodules <yol> git submodule delete <yol> git remove submodule <yol>

Junior
201

Eksik yerdeki [...] ifadesi hangi ifade otomatik olarak indeks oluşturur? Mobil platformda yatay kod kaydırması var create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)

Junior
197

git bisect ile çalışırken, gerekli ortamın olmaması nedeniyle doğrulanamayan bir commit ile karşılaştınız. Bu durumda ne yapmalısınız? - Farklı hash'lerle git bisect start komutunu tekrar edin - Bu commit'i git bisect skip komutuyla atlayın - git bisect reset komutuyla bisect'i sıfırlayın - Commit'i git bisect good komutuyla iyi olarak işaretleyin - Commit'i git bisect bad komutuyla kötü olarak işaretleyin

Junior
196

Neden sonraki sorgu, records tablosunda id üzerinde normal bir B-Tree indeksi oluşturulmuşsa indeks kullanmayacaktır? select * from records where id % 2 = 0 - id için GIN tipi bir indeks gerekir - İndeksler WHERE'deki ifadelerle çalışmaz - % karşılaştırma işlemi, filtreleme değil - limit ve offset indeks optimizasyonu için zorunludur - Sorgu sayısal bir alana, metin değil

Junior
196

Git LFS'nin teknik olarak nasıl çalıştığını ve büyük dosyalarla çalışırken standart Git'e göre ne gibi avantajlar sağladığını açıklayın.

Junior
193

Lojistik şirketi için rapor Bir lojistik şirketinde analistsiniz ve depolardaki operasyonları kaydediyorsunuz. Her depo verimliliği hakkında bir rapor 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şlemleri dikkate alarak ortalama işlem süresi (avg_processing_time), en yakın tam sayıya yuvarlanmış; • bir işlemde işlenen maksimum ve minimum ürün sayısı (max_quantity, min_quantity); • her işlem türü için ayrı sütunlarda: tedarik işlemleri (supply_operations), sevkiyat işlemleri (shipment_operations), transfer işlemleri (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ü: «tedarik», «sevkiyat», «transfer» • quantity (int) — işlemdeki ürün adedi • operation_date (timestamp) — işlem tarihi ve saati • processing_time (int) — işlem süresi processing_time sütunu NULL değerler içerebilir. Çıkış formatı Sorgu, aşağıdaki sırayla alanlar içeren bir tablo döndürmelidir: • warehouse_id (int) — depo kimliği • count_operations (int) — depoda gerçekleştirilen toplam işlem sayısı • sum_quantity (int) — depoda işlenen toplam ürün sayısı • avg_processing_time (numeric) — işlem süresinin ortalaması (dakika cinsinden), sadece NULL olmayan işlemler dikkate alınarak, en yakın tam sayıya yuvarlanmış • max_quantity (int) — bir işlemde işlenen maksimum ürün sayısı • min_quantity (int) — bir işlemde işlenen minimum ürün sayısı • supply_operations (int) — «tedarik» türündeki işlem sayısı • shipment_operations (int) — «sevkiyat» türündeki işlem sayısı • transfer_operations (int) — «transfer» türündeki işlem sayısı

Junior
191

Sadece çift sayılar üreten özel bir dizin olan even_sequence oluşturuldu. [...]'ın yerine ne konmalı ki, even_column değeri eklenirken belirtilmemişse, değer even_sequence'ten alınsın? 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’

Junior
191

Takımımızda ne yapmak istersiniz?

Junior
189

Langchain kütüphanesi ile çalışma deneyiminiz var mı? Onun yardımıyla hangi görevleri çözdünüz?

Junior
188

Tüm kullanıcıları ve varsa en son siparişlerini gösteren bir görünüm oluşturuyorsunuz. Tablo: users(id, name) ve orders(id, user_id, created_at). Hangi bağlantı türü kullanılmalı ki, siparişleri olmayan kullanıcılar da listeye dahil olsun? CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN

Junior
181

Git Flow yeni uygulama sürümünü nasıl önerir? - Yeni bir issue dalı oluşturarak - master'dan hotfix dalı oluşturarak - develop'ten ayrı bir release dalı oluşturarak - doğrudan master dalına commit yaparak - master dalını doğrudan develop ile birleştirerek

Junior
179

Bu eylemlerin, genişletilmiş Git Flow ve değişiklik geçmişi yönetimi açısından sonuçlarını yansıtan aşağıdaki ifadelerden hangisidir?

Junior
175

Git ana deposunun tarihinde kritik öneme sahip gizli veriler içeren commitler olduğunu fark ettiniz. Bu verilerin tüm depo geçmişinden tamamen silinmesi gerekiyor. Aşağıdaki stratejiyi kullanmanın ne kadar doğru ve güvenli olacağını değerlendirin: Mevcut dosya sürümünden gizli verileri silen yeni bir commit oluşturun ve bunu main'e gönderin. - Doğru, ama en iyi değil. Commitleri geri almak için git revert kullanmak daha iyidir - Koşullu olarak doğru. Bu, verilerin silinmesi için daha radikal bir yöntem bulunana kadar geçici bir çözümdür - Yanlış ve güvensiz. Veriler mevcut sürümden silinecek, ancak depo geçmişinde erişilebilir kalacaktır - Yanlış. Bu commit, diğer dallarla birleştirme sırasında yeni çatışmalara yol açabilir - Doğru ve güvenli. Bu yöntem, verilerin silindiğinden emin olmanızı sağlar ve tekrar depo üzerinde görünmeyecektir

Junior
173

Bir özellik üzerinde dev dalında çalışıyorsunuz. Aniden, README.md dosyasındaki yazım hatasını hızlıca düzeltmek için main dalına geçmeniz gerekiyor. Birkaç unstaged değişiklik var: src/feature.js (stagesiz) ve styles/main.css (staged). Tüm bu değişiklikleri geçici olarak saklamak ve sonra dev dalına geri dönmek istiyorsunuz. Bunun için hangi komut dizisini kullanmalısınız? git stash save "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash push -m "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash && git checkout main && [fix] && git checkout dev && git stash apply git add . && git stash && git checkout main && [fix] && git checkout dev && git stash drop git commit -m "Temp commit" && git checkout main && [fix] && git checkout dev && git reset HEAD^

Junior
172

Perakende Mağazada Kategoriye Göre Satış Analizi Perakende mağazada analist olarak çalışıyorsunuz. Göreviniz, aşağıdaki hesaplamaları içeren kategori bazında satış raporu hazırlamaktır: • kategoride satılan toplam birim sayısı (total_units_sold); • indirimleri dikkate alarak kategori başına toplam gelir, burada indirim, unit_price × units_sold × (1 − discount/100) olarak hesaplanır. Eğer indirim yoksa (NULL), %0 kabul edilir. İki ondalık basamağına yuvarlayın; • bir satışta satılan ortalama birim sayısı (avg_units_per_sale), iki ondalık basamağına yuvarlanmış; • indirimsiz satışların oranı (no_discount_share) — NULL veya %0 indirimli satışların sayısı, kategori içindeki toplam satış sayısına bölünür ve üç ondalık basamağına yuvarlanır. Sonuçları önce toplam gelir (total_revenue) azalan sırayla, sonra ortalama birim sayısı (avg_units_per_sale) artan sırayla ve en sonunda kategori adına göre alfabetik sıralayın. Giriş Formatı Sales tablosu: • sale_id (int) — satışın benzersiz kimliği • product_id (int) — ürün kimliği • category (text) — ürün kategorisi • sale_date (timestamp) — satış tarihi ve saati • units_sold (int) — satılan birim sayısı • unit_price (numeric) — birim fiyatı • discount (numeric) — ürün üzerindeki indirim yüzdesi, NULL olabiliyor discount sütunu boş değerler içerebilir. Çıkış Formatı Sorgu, aşağıdaki alanları sırasıyla içeren bir tablo döndürmelidir: • category (text) — ürün kategorisi • total_units_sold (int) — bu kategoride satılan toplam birim sayısı • total_revenue (numeric) — kategoriye göre toplam gelir, iki ondalık basamağıyla yuvarlanmış • avg_units_per_sale (numeric) — bir satış başına ortalama birim sayısı, iki ondalık basamağıyla yuvarlanmış • no_discount_share (numeric) — indirim olmadan satışların oranı (0 ile 1 arasında), üç ondalık basamağıyla yuvarlanmış Sonuç, önce total_revenue azalan şekilde, sonra avg_units_per_sale artan şekilde ve en sonunda kategori adına göre alfabetik sıralanır.

Junior
171

Gin web çerçevesi ile çalışma deneyiminiz var mı? Lütfen onunla çözdüğünüz görevleri daha detaylı anlatın.

Junior
167

PostgreSQL'de, işlemlerin performansını en düşük izolasyon seviyesinde optimize etmek gerekir ki: • paralel işlemler birbirlerinin tamamlanmamış değişikliklerini görebilsin; • "kirlilikli okuma" (dirty read) mümkün olsun. Bu hedefe ulaşmak için işlemin hangi izolasyon seviyesini belirtmesi gerekir? PostgreSQL'de dirty read mümkün değildir Repeatable Read Read Uncommitted Read Committed Serializable

Junior
166

[isim] metinde hataları ve stili düzeltti: «Merhaba! Ben [isim], daha önce Telegram'a geçmeni istemiştin» — samimi şekilde, ama saygılı

Junior
165
/3