- HBase'de yeniyim, HBase istemci API'sinde buluyorum, güncelleme işlemi desteklenmiyor mu? Bu doğru mu?
- Öyleyse, belirli bir satır anahtarının değerlerini güncellemek için önerilen en iyi yöntemler nedir?
cevap
Herhangi bir hücrenin değerini oluşturacak veya güncelleyecek olan PUT'u kullanabilirsiniz. 'un yeni sürümünün eski hücrelerden bazılarını içermesini istemediğiniz sürece silmeniz gerekmez. f1: c1 yeni değer ve almak istiyorum:
Eğer r1 koyabilirsiniz biz
r1:f1:c1:value1
r1:f1:c2:value2
söylüyorlar aslında her hücre rowkey, kolon aile olarak depolanır
r1:f1:c1:new value
r1:f1:c2:value2
Not, hücre, zaman damgası, sürüm ve değer. Dolayısıyla, sürüm oluşturmayı (sütun ailesi başına) nasıl ayarlayacağınıza bağlı olarak, silinen değerleri görmek için zaman sorgusunda bir nokta yapmak da dahil olmak üzere eski değerlere de erişebilirsiniz.
Yapmak istediğiniz şeyin bir Kola işlemi gerçekleştirmesi olduğunu düşünüyorum. HBase'nin Put API client docs'un yanı sıra bazı örnekler için Java Example Code using HBase Data Model Operations başlıklı bu blog yazısına ve işlemlerin açıklamalarına bakabilirsiniz.
Bir satırı güncellemek için, tek bir Mutasyonda "Sil" ve "Koy" sekansı yayınlamanız gerekir, böylece bunlar harici olarak bir güncelleme olarak görülür. Böyle bir çağrıyı nasıl oluşturacağınıza ilişkin Class RowMutations documentation numaralı telefona bakın.
Merhaba tonio, yanılıyorsam düzeltin. Herhangi bir Put API desteği güncelleme işlemi göremiyorum veya örnek kodda. Güncelleme için, bir HBase tablosunda zaten bir satır var, örneğin satır anahtarı r1, ve c1 adında bir sütun var ve r1/c1 hücresinde değer var. Güncelleme için demek istiyorum ki, r1/c1 hücresinin değerini başka bazı değerlere değiştirmek istiyorum. Yanılıyorsam lütfen beni düzeltmekten çekinmeyin. –
Doğru, bir satırdaki değerleri değiştirmek istiyorsanız, silme işlemini birleştirip atomik bir çağrı yapmanız gerekir. Güncellenmiş cevaba bakınız. – tonio
Teşekkürler, sorumu yanıtladı. –
- 1. besteci güncelleme "işlemi öldürdü"
- 2. HBase
- 3. Hbase
- 4. hbase
- 5. HBase
- 6. HBase ORM
- 7. SingleColumnValueFilter, HBASE hatası veriyor
- 8. Hbase kabuk komutunu koydu
- 9. Hbase ofset ile ofset
- 10. Hbase şeması nasıl tasarlanır?
- 11. System from Hbase MapReduce
- 12. Hbase kabukta geçersiz tanımlayıcı
- 13. Java nesneleri Hbase için
- 14. HBase: NotServingRegionException nedir?
- 15. Düzenleme ve güncelleme eylemini güncelleme rails_admin içinde
- 16. HBASE 0.94.1 uyumluluk hadoop ile
- 17. hbase sütun ailesine sütun ekleme
- 18. HBase Kerberos bağlantı yenileme stratejisi
- 19. güncelleme
- 20. GÜNCELLEME
- 21. Güncelleme
- 22. GÜNCELLEME daima İşte lastrowid
- 23. eclipse 3.7.1 güncelleme hatası
- 24. Veritabanı işlemi nasıl izlenir?
- 25. Toplama işlemi, akış işlemi gerçekleştirilirken güncelleniyor java 8
- 26. Kiril başlıklı silme işlemi
- 27. HBase kabuk tarama baytını dize dönüşümü
- 28. Hbase 0.96, Spark v 1.0+ ile
- 29. hbase, Master çıkış hatası nedeniyle başlatılmıyor
Teşekkürler, cevabınız açıktır ve HBase'yi daha iyi anlama konusunda bana yardımcı oldu (ki sadece araştırmaya başlamam mümkün değil). – tonio
Merhaba @Arnon, sorum, atomik şekilde güncellenme hakkında daha fazla. Bir atomik işlem sırasına göre okuma (GET) yapmak ve güncellemek istiyorum. Güncellemenin nasıl yapıldığına bakılması, okunan değere bağlı olduğundan okuma ve güncelleme arasında herhangi bir güncellemeden kaçınmak istiyorum. Örneğinizde, hedefe nasıl ulaşılır? –
, HTable API'sinde checkAndPut veya checkAndDelete'yi kullanabilirsiniz http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut (byte [], byte [], byte [] , byte [], org.apache.hadoop.hbase.client.Put) –