selamün aleyküm dostlar kısaca anlatmam gerekirse big data ile ilgileniyorum bu datayı olusturmak icin basite bir hesaplama ile 1.6 m luk bir data olusturuyorum ve ramde saklıyorum her işlem yaptıgımda bu datayı bastan olusturmam gerekiyor bunu ram den sqlite ye nasıl aktarabilirim yardımcı olursanız cok sevinirim simdiden tesekkürler.
Py dosyasına kaydettigim 2d arrayi veri tabanına taşıyabiliyorum ama ram e atınca hata veriyor cozemedigim konu bu
Merhaba,
Oncelikle: Soru Sorarken Sıkça Düşülen Hatalar
Bunun cozumu datayi diskte saklamak. Neye benziyor?
sqlite3
modulu ve INSERT
ve SELECT
query’leri kullanarak.
bkz: Soru Sorarken Sıkça Düşülen Hatalar #13
İşlemi direk SQL e atincada SQL kilitlendi hatası alıyorum
Olusturdugum data 17 kolon 1.568.352 sütun
Bu çıkan sonucunda ayrı bir pogramdan geçiriyorum oda bana 1.568.352x85 lik bir sonuç veriyor.
Yani bu sorunu aşarsam ikinci işleminde otomatik olarak aşmış olucam ve çıkan son sonuçta da istediğim aramaları yapabilecegim. Bana bir yol gösterirseniz müteşekkir olurum. Çünkü bu sorunla 1 aydır uğraşıyorum ve asamadigim için sizden yardım istiyorum
Dosyalarım bilgisayarımda şuan disaridayim akşama gerekli örnekleri buraya koyarim
SQL olarak ne kullanıyorsunuz ?
1.6M * 17’lik bir data olusturuluyor?
Icerigi ve yaklasik boyutu nedir bu datanin?
Program girdiyi nasil aliyor, sonucu nereye veriyor?
Boyle bir hata hic duymadim, tam metni nedir?
Yukaridakilerin cevabi orneklerde olabilir. Bekliyorum…
Sqlite3 kullanıyorum hafif ve basit olduğu icin
tesekkürler hocam dediğiniz gibi islemleri direk sqliteye attım ve sorun ortadan kalktı
def InData(nms, sonuc_0, sonuc_1, sonuc_2, sonuc_3, sonuc_4, sonuc_5, sonuc_6, sonuc_7, sonuc_8, sonuc_9, sonuc_10, sonuc_11, sonuc_12, sonuc_13 ,sonuc_14):
try:
Connection = sqlite3.connect('bigdata.sqlite')
cursor = Connection.cursor()
sqlite_insert = """INSERT INTO hsp
(id ,nms, sonuc_0, sonuc_1, sonuc_2, sonuc_3, sonuc_4, sonuc_5, sonuc_6, sonuc_7, sonuc_8, sonuc_9, sonuc_10, sonuc_11, sonuc_12, sonuc_13 ,sonuc_14)
VALUES (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"""
data_tuple = (nms, sonuc_0, sonuc_1, sonuc_2, sonuc_3, sonuc_4, sonuc_5, sonuc_6, sonuc_7, sonuc_8, sonuc_9, sonuc_10, sonuc_11, sonuc_12, sonuc_13 ,sonuc_14)
cursor.execute(sqlite_insert, data_tuple)
Connection.commit()
cursor.close()
except sqlite3.Error as error:
print("SQL import Error :", error)
sys.exit()
finally:
if Connection:
Connection.close()
cözüm kodum da bu isteyen kullanabilir.
Veri bayağı çoksa
execute
yerine executemany kullanın. İşlem hızınızda bayağı bir fark olur.
Bende bu saatte hız ile ilgili araştırma yapıyordum ilaç oldunuz resmen çok teşekkürler