Yalnızca veritabanını ekleyerek Soft, Ruby on Rails ve sadece bir veritabanı (Google BigQuery) kullanarak, yumuşak silme işlemleri için en iyi uygulama hangisidir? Benim düşündüğüm model her güncelleme/silme için yeni bir satır eklemek ve sadece en yeni kaydı toplamak. Ama bunu Aktif Kayıt ile yapmak için temiz bir yol olduğundan emin değilim. Önerilen diğer modeller/en iyi uygulamalar?Sadece Ruby on Rails
cevap
Büyük Sorgu, büyük veri kümelerine karşı analiz amaçlıdır.
Eğer durum buysa - yeni güncelleme/silme satırları ekleyerek ve tarihi satırları "saklayarak" potansiyel olarak ortaya çıkacak olan yavaşlığı göz ardı edebilirsiniz.
BigQuery'ye yılında window function kullanarak aralıksız en son sürümünü almak için oldukça basittir. işte gidiyoruz - - "id" varsayarak
Örneğin, zaman damgası
SELECT <fields list> FROM (
SELECT <fields list>, ROW_NUMBER() OVER(PARTITION BY id ORDER BY ts DESC) AS num
FROM YourTable
)
WHERE num = 1
Eğer tarihsel verileri kullanarak tarihsel analiz yapmak gerekirse kayıt/satır ve "ts" tanımlayan birincil anahtar olduğunu kolaydır o zamandaki satırın ilgili versiyonunu temsil edecek seçimi yapmak. Eğer tarihsel sürümleri gerekmiyorsa
periyodik temizlik yapabilirsiniz - bunun için (sizin durumda tarafından bölünebilen veya ay ya da her türlü lese dimantion daha iyi uyuyor) size gündüz bölümlenmiş verileri tutmak için daha iyidir
BigQuery var BigQuery'yi ile sopa istiyorsanız Table wildcard functions
- - bölümlenmiş tablolar sorgulamak için mükemmel destek bu ben o daha
Burada göz önünde bulundurulması gereken iki şey var. Düzeltme geçmişinizi ne kadar otantik ve performansınız ne kadar önemli?
Bunu yapmanın hızlı ve kirli yolu, kaydınızın bir JSON kopyasını bir geçmiş tablosuna kaydetmek. Bu işlemin yapılması kolaydır, ancak buradaki verilerin, çizelgenin gelecekteki sürümleriyle uyumlu şema olması garanti edilemez, yani kolayca geri yükleyemeyebilirsiniz.
Silinmiş veya geçmiş sürümleri olan birincil tablonuzu kirletmeyin. Bu hiçbir şeyden başka bir şeye yol açmaz ve sorgulamayı acımasız bir şekilde yavaşlatır.
Satırlar nadiren silinmiş veya güncellenmiş olsa bile sorgulama yavaş olabilir mi? – Gregology
Ne kadar sık gerçekleştiğine bakılmaksızın, tablodaki her sorguda silinmesi veya gözden geçirilmesi için sınamanız gerektiğinden, yavaştır. 'SELECT * sayfalardan WHERE = 1 =, SELECT * gibi sayfalardan WHERE instance_id = 1 olur ve delete_at ISITILIRSIZ SINIRLANDIRILMIŞTIR. – tadman
- 1. Ruby & Ruby on Rails
- 2. Ruby vs Ruby On Rails
- 3. Ruby on Rails
- 4. Ruby on Rails ilişkiler
- 5. Ruby on Rails örneği
- 6. Docsplit Ruby on Rails
- 7. Ruby on Rails
- 8. Ruby on Rails
- 9. Ruby on Rails Dragonfly
- 10. Ruby on Rails,
- 11. Ruby on Rails IE
- 12. Flexbox'ı Ruby on Rails
- 13. Ruby on Rails Switch
- 14. Ruby on Rails
- 15. Filtreleme Sonuçları - Ruby on Rails
- 16. Oturumlar geçiyor. Ruby on Rails
- 17. Ruby On Rails:: alt model
- 18. Ruby on Rails I18n enterpolasyonu
- 19. Button on Ruby on Rails bozuk rota
- 20. Ruby on Rails: form select
- 21. Ruby On rails projesiz testler
- 22. Metin alanına Ruby on Rails
- 23. Ruby on Rails CoffeeScript başarısız
- 24. Ruby on Rails ActiveRecord: çoğullaşma
- 25. Ruby on Rails tablo ilişkisi
- 26. Node.js vs Ruby on Rails
- 27. Ruby On Rails onlu sütun
- 28. Ruby on Rails auto_complete eklentisi
- 29. Alan Doğrulama Ruby on Rails
- 30. Ruby on Rails - Farklı sınıf
@MikhailBerlyant keşfetmek için tavsiye edersiniz
iyi bir yaklaşım olacaktır, Active kayıt üzerinde Ruby için bir sorgu arayüzü Raylar. – Gregology