Yorumları: 617
Konuları: 66
Kayıt Tarihi: 05-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.300
Uzman
online satış sitelerininden, b2b yazılımlarından gelen çoğunlukla xml dosyaları var ve bazılarında da json, bir kaç örneğe baktım birinde 10K birinde 20K kadar ürün çeşidi var 30-35 kadar da fieldı var bu xmllerin hergün güncellenmesi gerekiyor.
Sorular
1) Bu xml dosyaları hergün download edildikten sonra insert or update işlemini seçtiğim birincil anahtar alandan en hızlı şekilde nasıl gerçekleştirebilirim.
2) Hergün X saate şu dosyayı çek yükle Y saate şu dosyayı çek yükle işlemini nasıl yapmamı tavsiye edersiniz
3) xml dosyasını önce memorytabla a (fdmemtable,kbmmemtable) yükleyip daha sonra veritabanına yazmak bana hız kazandırırmı
postgresql kullanmayı düşünüyorum.
“Do. Or do not. There is no try.”
Yorumları: 953
Konuları: 124
Kayıt Tarihi: 06-07-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 6.383
Üstad
Merhabalar,
Öncelikle b2b sistemleri hakkındaki bildiklerimi ve tavsiyelerimi söylemem gerekirse;
1) Yaygın b2b sistemlerinin veri alma-verme işlemleri kendi belirledikleri zaman ve sıklıkta gerçekleşiyor.
2) İstedikleri xml şablonlarına göre ürün node yapısını oluşturmanız isteniliyor.
3) Sipariş gibi b2b sistemlerden toplanacak bilgileri onların xml servislerinden alabiliyorsunuz.
4) Kategori yapısı her sistem için farklı işliyor. Tasarlayacağınız yapılarda B2b sistemi ve karşılığını (key-value olarak) tutmalısınız.
5) Ortaya bir havuz veritabanı oluşturup verileri orada muhafaza edin. Saat bazlı olarak yada günde x kez indir ve/veya yükle şeklinde.
İyi çalışmalar.
Yorumları: 617
Konuları: 66
Kayıt Tarihi: 05-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.300
Uzman
(30-09-2017, Saat: 10:22)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Merhabalar,
Öncelikle b2b sistemleri hakkındaki bildiklerimi ve tavsiyelerimi söylemem gerekirse;
1) Yaygın b2b sistemlerinin veri alma-verme işlemleri kendi belirledikleri zaman ve sıklıkta gerçekleşiyor.
2) İstedikleri xml şablonlarına göre ürün node yapısını oluşturmanız isteniliyor.
3) Sipariş gibi b2b sistemlerden toplanacak bilgileri onların xml servislerinden alabiliyorsunuz.
4) Kategori yapısı her sistem için farklı işliyor. Tasarlayacağınız yapılarda B2b sistemi ve karşılığını (key-value olarak) tutmalısınız.
5) Ortaya bir havuz veritabanı oluşturup verileri orada muhafaza edin. Saat bazlı olarak yada günde x kez indir ve/veya yükle şeklinde.
İyi çalışmalar.
Teşekkür ederim xml parse işlemi ve insert or update işlemi için de önerilerinizi bekliyorum.
“Do. Or do not. There is no try.”
Yorumları: 617
Konuları: 66
Kayıt Tarihi: 05-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.300
Uzman
(30-09-2017, Saat: 10:43)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Manüel parse yerine, XML Importer aracı yardımıyla, her XML için ayrı bir parser sınıfı oluşturabilirsiniz. (XML yapısı değiştiğinde sınıfı yeniden oluşturursunuz.)
C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\xmlmapper.exe aracını çalıştırdığımda Access violation hatası veriyor.
bahsetiğiniz farklı bir araçmı
“Do. Or do not. There is no try.”
Yorumları: 253
Konuları: 16
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.279
Uzman
10K veya 20K ürün olan dosyadaki tüm kayıtlar değişiyor mu ?
Eğer tüm kayıtlar değişmiyorsa, sadece değişenleri tespit ettikten sonra, sadece değişen kayıtar için insert/update/delete vs SQL kodu üretip güncellenebilir.
Değişen kayıtları tespit edip karşılaştırma yapmak için, veritabanında ki tabloyu sorgulamak yerine, belki internetteki dosya ile diskteki dosya hafızaya alınıp karşılaştırılabilir.
Tabi size uygun mu bilmiyorum.
Yorumları: 617
Konuları: 66
Kayıt Tarihi: 05-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.300
Uzman
(30-09-2017, Saat: 12:56)ismailkocacan Adlı Kullanıcıdan Alıntı: 10K veya 20K ürün olan dosyadaki tüm kayıtlar değişiyor mu ?
Eğer tüm kayıtlar değişmiyorsa, sadece değişenleri tespit ettikten sonra, sadece değişen kayıtar için insert/update/delete vs SQL kodu üretip güncellenebilir.
Değişen kayıtları tespit edip karşılaştırma yapmak için, veritabanında ki tabloyu sorgulamak yerine, belki internetteki dosya ile diskteki dosya hafızaya alınıp karşılaştırılabilir.
Tabi size uygun mu bilmiyorum.
Günlük olarak örnek vermek gerekirse
1 gün önce alınan xml ile bugun ki xml arasında :
20 yeni ürün kaydı
200 adet güncelleme
15 fiyat değişikliği
45 resim_url alanında değişiklik
gibi oluyor bazende daha fazla
aklımdaki fikir daha önce benzer mantıkla kullandığım stox_xml tablosuna xml yüklemek değişen alanları trigerla stok tablosunda güncelleme yada yeni kayıt olarak eklemek
if (new.kalanmiktar IS DISTINCT FROM old.kalanmiktar) then
şeklinde
amacım buradan stok_xml tablosuna insert or update işlemini en hızlı şekilde yaptırmak o tabloda değişiklik olduğunda trigerlar stok tablomda değişikliği yapacak zaten quickimport componenti var xml i açamadı ama excel olarak istediğim işlemi yapıyor tek sorun yavaş olması birde xml dosyasını manuel excel dosyasına çevirmem.
“Do. Or do not. There is no try.”