DBMS SQLite 3.42 සහ DuckDB 0.8.0 නිකුත් කිරීම. SQLite සඳහා ගබඩා කර ඇති ක්‍රියා පටිපාටි ක්‍රියාත්මක කිරීම සමඟ CG/SQL

ප්ලග්-ඉන් පුස්තකාලයක් ලෙස නිර්මාණය කරන ලද සැහැල්ලු DBMS SQLite 3.42 නිකුත් කිරීම ප්‍රකාශයට පත් කර ඇත. SQLite කේතය පොදු වසමක් ලෙස බෙදා හරිනු ලැබේ, i.e. සීමාවකින් තොරව සහ ඕනෑම කටයුත්තක් සඳහා නොමිලේ භාවිතා කළ හැක. Adobe, Oracle, Mozilla, Bentley සහ Bloomberg වැනි සමාගම් ඇතුළත් SQLite සංවර්ධකයින් සඳහා මූල්‍ය ආධාර සපයනු ලබන්නේ විශේෂයෙන් නිර්මාණය කරන ලද සමුහයක් මගිනි.

ප්රධාන වෙනස්කම්:

  • FTS5 සම්පූර්ණ පෙළ දර්ශක සඳහා, ආරක්ෂිත-මකන්න විධානය ක්‍රියාත්මක කර ඇති අතර, මකාදැමීමෙන් පසු ඉතිරිව ඇති සියලුම දත්ත සම්පූර්ණයෙන්ම ඉවත් කරයි.
  • JSON දත්ත සැකසීම සඳහා වන කාර්යයන් දැන් JSON5 දිගු සඳහා සහය දක්වයි.
  • වැඩි දියුණු කළ විමසුම් සැලසුම්කරු. පෙරනිමියෙන්, ගණන් බැලීම් ප්‍රශස්තකරණය සක්‍රීය කර ඇත. උප විමසුම්වල භාවිතා නොකළ තීරු සැකසීම ඉවත් කරනු ලැබේ. තල්ලු-පහළ ප්‍රශස්තකරණය වැඩිදියුණු කළ ක්‍රියාත්මක කිරීම.
  • විධාන රේඛා අතුරුමුහුණතට “--unsafe-testing” විකල්පය එක් කරන ලදී, එය පරීක්‍ෂණයේදී භාවිතා කිරීමට අදහස් කරන “.testctrl” වැනි භයානක විධාන භාවිතා කිරීමට ඉඩ සලසයි. ආරක්ෂිත මාදිලියේ ("-safe"), ".log on" සහ ".log off" විධාන භාවිතා කිරීමට අවසර ඇත. විකල්ප සැකසීම අක්‍රිය කර ඇති තර්ක සඳහා “—” පරිසීමකය සඳහා සහය එක් කරන ලදී. අනන්තය සහ NaN අගයන් හා සම්බන්ධ ":inf" සහ ":nan" පරාමිති එකතු කරන ලදී.
  • යෙදුම්-නිර්වචනය කරන ලද SQL ශ්‍රිත නාමයන් CROSS, FULL, INNER, LEFT, NATURAL, OUTER, සහ RIGHT යන මූල පද සමඟ අතිච්ඡාදනය වීමට ඉඩ දෙනු ලැබේ.
  • PRAGMA integrity_check හි හැකියාවන් පුළුල් කර ඇත. NOT NULL කොන්දේසිය සහිත තීරු වල NaN අගයන් සඳහන් කිරීම සඳහා පරීක්ෂා කිරීම එක් කරන ලදී. දෝෂ පණිවිඩවල වැඩි දියුණු කළ තොරතුරු අන්තර්ගතය.
  • සැසි ඇඩෝනය ROWID නොමැතිව වගු වලින් සිදුවන වෙනස්කම් වලට බාධා කිරීමට ඉඩ දෙයි.
  • තත්පර භාග භාවිතා කිරීම සඳහා වේලාවන් සහ දිනයන් සමඟ වැඩ කිරීම සඳහා "subec" modifier කාර්යයට එක් කර ඇත.
  • අරා සහ JSON වස්තු සඳහා පෙරනිමි පුනරාවර්තන ගැඹුර 2000 සිට 1000 දක්වා අඩු කර ඇත.

මීට අමතරව, DuckDB 0.8.0 DBMS නිකුතුව නිර්මාණය කර ඇති අතර, එය SQLite අනුවාදයක් සංවර්ධනය කරයි, ගබඩා කර ඇති දත්තවල සැලකිය යුතු කොටසක් ආවරණය වන පරිදි විශ්ලේෂණාත්මක විමසුම් ක්‍රියාත්මක කිරීම සඳහා හැකියාවන් සහ ප්‍රශස්තිකරණයන් සමඟ පුළුල් කර ඇත, උදාහරණයක් ලෙස, සම්පූර්ණ අන්තර්ගතය එකතු කිරීම සිදු කිරීම. වගු හෝ විශාල වගු කිහිපයක් ඒකාබද්ධ කිරීම. ඉතා සංකීර්ණ සහ කාලය ගතවන විමසුම් සැකසීම සඳහා අමතර හැකියාවන් ඇතුළත් SQL හි උසස් උපභාෂාවක් සපයන අතර, සංකීර්ණ වර්ග (අරාවන්, ව්‍යුහයන්, වෘත්තීය සමිති), එකවර බහුවිධ විමසුම් ධාවනය කිරීම සහ CSV, JSON, සහ Parquet ගොනු වෙතින් සෘජුවම විමසුම් ධාවනය කිරීම සඳහා සහය දක්වයි. . PostgreSQL DBMS වෙතින් ආනයනය කළ හැක.

SQLite වෙතින් ෂෙල් කේතයට අමතරව, ව්‍යාපෘතිය වෙනම පුස්තකාලයක PostgreSQL වෙතින් විග්‍රහයක් භාවිතා කරයි, MonetDB වෙතින් Date Math සංරචකය, කවුළු ශ්‍රිතයන් තමන්ගේම ක්‍රියාත්මක කිරීම (Segment Tree Aggregation algorithm මත පදනම්ව), සාමාන්‍ය ප්‍රකාශන ප්‍රොසෙසරයක් RE2 පුස්තකාලය, එහිම විමසුම් ප්‍රශස්තකාරකය සහ MVCC පාලන යාන්ත්‍රණයක් එකවර කාර්යයන් ක්‍රියාත්මක කිරීම (බහු-අනුවාද සමගාමී පාලනය), මෙන්ම විශාල අගයන් සැකසීමට ඉඩ සලසන Hyper-Pipelining Query Execution ඇල්ගොරිතම මත පදනම් වූ දෛශික විමසුම් ක්‍රියාත්මක කිරීමේ එන්ජිමක්. එක් මෙහෙයුමකදී එකවර සැකසීමට. ව්යාපෘති කේතය MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ.

DuckDB හි නව අනුවාදයේ:

  • පේළි තීරු බවට පරිවර්තනය කිරීමට සහ අනෙක් අතට "PIVOT" සහ "UNPIVOT" යන නව ප්‍රකාශන එක් කරන ලදී.
  • දත්ත ආනයනය සහ අපනයනය කිරීමේදී වැඩි දියුණු කරන ලද සමාන්තරකරණය. පෙරනිමියෙන්, Parquet, CSV සහ JSON ආකෘති භාවිතා කරන විට CSV ගොනු වලින් බහු-නූල් කියවීම සහ බහු-නූල් ලිවීම ක්රියාත්මක වේ.
  • ගොනු මාර්ග නිර්ණය කිරීමේදී නාමාවලි හරහා පුනරාවර්තනය කිරීමට "**" ක්‍රියාකරු එක් කරන ලදී (උදාහරණයක් ලෙස, "'data/glob/crawl/stackoverflow/**/*.csv';" වෙතින්).
  • වාර්තා ඒකාබද්ධ කිරීමේ නිර්ණායකය නිශ්චිත නොවන නමුත් අගයන්හි ආසන්න අහඹු සිදුවීමක් වන කාල ශ්‍රේණියක (නිශ්චිත කාල පරතරයන්හි පරාමිති අගයන් පෙති) දත්ත සඳහා ඒකාබද්ධ මෙහෙයුම් (JOIN) සඳහා සහය එක් කරන ලදී. කාලය සහිත ක්ෂේත්‍රයක (උදාහරණයක් ලෙස, ඔබට වාර්තා ඒකාබද්ධ කළ හැකිය, කාලය විනාඩි 1 කට වඩා වෙනස් නොවේ).
  • දත්ත සමුදා පාර-දත්ත කම්මැලි ලෙස පැටවීම ක්‍රියාත්මක කරන ලද අතර එමඟින් DBMS දියත් කිරීම දස ගුණයකින් වේගවත් කිරීමට හැකි විය.
  • Python හි අභිරුචි කාර්යයන් සම්බන්ධ කිරීම සඳහා සහය එක් කරන ලදී.
  • Apache Arrow භාවිතයෙන් දත්ත මාරු කිරීම සඳහා ADBC ​​(Arrow Database Connectivity) API සඳහා සහය එක් කරන ලදී.
  • Swift කේතය සමඟ ඒකාබද්ධ කිරීම සඳහා බැඳීමක් ක්රියාත්මක කර ඇත.
  • පෙරනිමියෙන් පූර්ණ සංඛ්‍යා මෙහෙයුම් වෙනුවට පාවෙන ලක්ෂ්‍ය ගණනය කිරීම් සිදු කිරීමට බෙදීම් ක්‍රියාකරුගේ ("/") හැසිරීම වෙනස් කරන ලදී. පූර්ණ සංඛ්‍යා බෙදීම සඳහා නව ක්‍රියාකරු "//" යෝජනා කෙරේ. "SET integer_division=true;" සැකසීමෙන් පැරණි හැසිරීම ආපසු ලබා දිය හැක.
  • වර්ග කිරීමේදී ශුන්‍ය වාර්තා සැලකිල්ලට ගැනීමේ ක්‍රමය "NULLS FIRST" සිට "NULLS LAST" දක්වා වෙනස් කර ඇත, i.e. දැන් ලැයිස්තුවේ ආරම්භයට වඩා අවසානයේ NULL අගයන් මුද්‍රණය කෙරේ. “SET default_null_order='nulls_first';” සැකසීමෙන් පැරණි හැසිරීම ආපසු ලබා දිය හැක.

අතිරේකව, SQLite සමඟ ගබඩා කර ඇති ක්‍රියා පටිපාටි භාවිතා කිරීම සඳහා කේත උත්පාදකයක් සපයන Facebook විසින් සංවර්ධනය කරන ලද CG/SQL ව්‍යාපෘතිය අපට සටහන් කළ හැක. CG/SQL මඟින් ඔබට T-SQL (Transact-SQL) හි විශේෂ උපභාෂාවකින් ගබඩා කළ ක්‍රියා පටිපාටි ලිවීමට ඉඩ සලසයි, එමඟින් සම්මත C පුස්තකාලයේ කාර්යයන් ඇමතීමට සහ SQLite හි දත්ත වෙත ප්‍රවේශ වීමට ඉඩ සලසයි. ජනනය කරන ලද ගබඩා කර ඇති ක්‍රියා පටිපාටි නිශ්චිත ක්‍රියා සිදු කිරීමට සහ සංකීර්ණ විමසුම් සැකසීමට SQLite C API භාවිතා කරන C කේතයට සම්පාදනය කෙරේ. සම්පාදනය කරන ලද ගබඩා කර ඇති ක්‍රියා පටිපාටි C, Java සහ Objective-C වැඩසටහන් වලට සම්බන්ධ කළ හැක. ව්යාපෘති කේතය C වලින් ලියා ඇති අතර MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න