DuckDB 0.6.0 خپور شوی، د تحلیلي پوښتنو لپاره د SQLite اختیار

د DuckDB 0.6.0 DBMS خوشې کول شتون لري، د SQLite داسې ملکیتونه لکه د کمپیکیت سره یوځای کول، د یو ځای شوي کتابتون په بڼه د نښلولو وړتیا، په یوه فایل کې ډیټابیس ذخیره کول او د CLI یو مناسب انٹرفیس، د اجرا کولو لپاره د وسیلو او اصلاح کولو سره. تحلیلي پوښتنې چې د ذخیره شوي ډیټا یوه مهمه برخه پوښي، د بیلګې په توګه چې د میزونو ټول منځپانګې راټولوي یا ډیری لوی میزونه یوځای کوي. د پروژې کوډ د MIT جواز لاندې ویشل شوی. پراختیا لاهم د تجربوي ریلیزونو رامینځته کولو په مرحله کې ده ، ځکه چې د ذخیره کولو فارمیټ لاهم نه دی مستحکم شوی او له نسخې څخه نسخې ته بدلیږي.

DuckDB یو پرمختللی SQL ډیلیټ چمتو کوي چې د خورا پیچلي او وخت مصرف کونکو پوښتنو اداره کولو لپاره اضافي وړتیاوې پکې شاملې دي. د پیچلو ډولونو کارول (ارې، جوړښتونه، اتحادیې) او د خپل سري او نیست شوي اړونده فرعي پوښتنو د اجرا کولو وړتیا ملاتړ کیږي. دا په ورته وخت کې د ډیری پوښتنو چلولو ملاتړ کوي ، مستقیم د CSV او پارکیټ فایلونو څخه پوښتنې پرمخ وړي. دا ممکنه ده چې د PostgreSQL DBMS څخه وارد کړئ.

د SQLite څخه د شیل کوډ سربیره، پروژه په جلا کتابتون کې د PostgreSQL څخه پارسر کاروي، د MonetDB څخه د نیټې ریاضی برخه، د خپل کړکۍ دندو پلي کول (د برخې د ونې راټولولو الګوریتم پر بنسټ)، د منظم بیان پروسیسر پراساس. د RE2 کتابتون، د دې خپل د پوښتنې اصلاح کوونکی، او د MVCC کنټرول میکانیزم په ورته وخت کې د دندو اجرا کول (د څو نسخو همغږي کنټرول)، په بیله بیا د ویکٹر شوي پوښتنو اجرا کولو انجن چې د هایپر پایپلینینګ پوښتنې اجرا کولو الګوریتم پر بنسټ والړ دی، کوم چې لوی ارزښت ته اجازه ورکوي. په یوه عملیات کې یوځل پروسس شي.

په نوي ریلیز کې د بدلونونو په منځ کې:

  • د ذخیره کولو بڼه ښه کولو لپاره کار دوام لري. د خوشبین ډیسک لیکلو حالت پلي شوی ، په کوم کې چې کله په یوه لیږد کې د ډیټا لوی سیټ بار کول ، ډیټا کمپریس کیږي او د ډیټابیس څخه فایل ته په سټرینګ حالت کې لیکل کیږي ، پرته لدې چې د COMMIT کمانډ سره د لیږد تایید کیدو ته انتظار وباسي. . کله چې د COMMIT کمانډ ترلاسه شي، ډاټا لا دمخه په ډیسک کې لیکل کیږي، او کله چې ROLLBACK اجرا کیږي، دا رد کیږي. مخکې، ډاټا په پیل کې په بشپړه توګه په حافظه کې خوندي شوي، او کله چې ژمن وي، دا ډیسک ته خوندي شوي.
  • په جلا جدولونو کې د ډیټا موازي بارولو لپاره ملاتړ اضافه شوی ، کوم چې تاسو ته اجازه درکوي په ملټي کور سیسټمونو کې د پام وړ د بارولو سرعت ډیر کړي. د مثال په توګه ، په تیرو خپرونو کې ، په 150 کور CPU کې د 10 ملیون قطارونو سره ډیټابیس پورته کول 91 ثانیې وخت نیسي ، مګر په نوې نسخه کې دا عملیات په 17 ثانیو کې بشپړیږي. د بارولو دوه موازي موډلونه شتون لري - د ریکارډونو ترتیب ساتلو سره او پرته د نظم ساتنه.
  • د ډیټا کمپریشن لپاره، د FSST (چټک جامد سمبول جدول) الګوریتم کارول کیږي، کوم چې تاسو ته اجازه درکوي د عادي میچونو یو عام لغت په کارولو سره د تارونو دننه ډاټا بسته کړئ. د نوي الګوریتم کارولو دا ممکنه کړې چې د ازموینې ډیټابیس اندازه له 761MB څخه 251MB ته راټیټ کړي.
  • د چیمپ او پیتاس الګوریتم وړاندیز شوی ترڅو د فلوټینګ پوائنټ شمیرو (ډوبل او فلوټ) کمپریس کړي. د پخوانی ګوریلا الګوریتم په پرتله، چیمپ د کمپریشن لوړه کچه او ګړندی کمپریشن چمتو کوي. د پټاس الګوریتم د کمپریشن تناسب کې د چیمپ څخه وروسته پاتې دی ، مګر د ډیکمپریشن سرعت کې خورا ګړندی دی ، کوم چې نږدې د غیر کمپریس شوي ډیټا لوستلو څخه توپیر نلري.
  • د CSV فایلونو څخه ډیری موازي جریانونو (SET experimental_parallel_csv=true) ته د ډیټا بارولو لپاره تجرباتي وړتیا اضافه کړه ، کوم چې د لوی CSV فایلونو پورته کولو لپاره د پام وړ وخت کموي. د مثال په توګه، کله چې دا اختیار فعال شو، د 720 MB CSV فایل ډاونلوډ وخت له 3.5 څخه 0.6 ثانیو ته راټیټ شو.
  • د شاخص جوړولو او مدیریت عملیاتونو موازي اجرا کولو امکان پلي شوی. د مثال په توګه، د 16 ملیون ریکارډونو سره په کالم کې د CREATE INDEX عملیات له 5.92 څخه 1.38 ثانیو ته راټیټ شوي.
  • په هغو پوښتنو کې چې د "COUNT(DISTINCT col)" جملې لري د راټولولو عملیاتو موازي کول فعال شوي.
  • SQL د UNION ډول لپاره ملاتړ اضافه کړی، کوم چې ډیری ډولونو ته اجازه ورکوي چې یو عنصر ته پابند شي (د مثال په توګه، "UNION(num INT، تېروتنه VARCHAR))").
  • SQL د پوښتنو رامینځته کولو وړتیا چمتو کوي چې د "SELECT" پرځای د "FROM" کلمې سره پیل کیږي. په دې حالت کې، داسې انګیرل کیږي چې پوښتنه د "SELECT *" سره پیل کیږي.
  • SQL د COLUMNS بیان لپاره ملاتړ اضافه کړی، کوم چې تاسو ته اجازه درکوي په څو کالمونو کې عملیات ترسره کړئ پرته له دې چې بیان نقل کړي. د مثال په توګه، "د obs څخه MIN(کالم(*)) وټاکئ؛" د MIN فعالیت به د دې لامل شي چې د obs جدول کې د هر کالم لپاره اجرا شي، او "له obs څخه COLUMNS('val[0-9]+') غوره کړئ؛" د کالمونو لپاره د نوم سره چې "val" او شمیرې لري.
  • په لیستونو کې د عملیاتو لپاره ملاتړ اضافه شوی، د بیلګې په توګه، "د x لپاره [x + 1 په [1, 2, 3]] AS l کې غوره کړئ؛".
  • د حافظې مصرف اصلاح شوی. په ډیفالټ ، د لینکس پلیټ فارم د حافظې مدیریت لپاره د جیمالوک کتابتون کاروي. کله چې حافظه محدوده وي د هش یوځای کولو عملیاتو کې د پام وړ ښه شوی فعالیت.
  • د کمانډ لاین انٹرفیس ته د ".mode duckbox" محصول حالت اضافه شوی، کوم چې د ټرمینل کړکۍ عرض په پام کې نیولو سره منځني کالمونه ردوي (د ډیری کالمونو سره د پوښتنو پایلې په چټکۍ سره د لید ارزولو لپاره مناسب دي، لکه "SELECT * FROM tbl”، کوم چې په نورمال حالت کې په څو کرښو کې خپریږي). د ".maxrows X" پیرامیټر په کارولو سره، تاسو کولی شئ د ښودل شوي قطارونو شمیر هم محدود کړئ.
  • CLI د شرایطو په پام کې نیولو سره د آخذې اتوماتیک بشپړتیا چمتو کوي (د کلیدي کلمو داخلول، د جدول نومونه، افعال، د کالم نومونه او د فایل نومونه بشپړ شوي).
  • CLI د پوښتنې پرمختګ شاخص لري چې د ډیفالټ لخوا فعال شوی.

سرچینه: opennet.ru

Add a comment