αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ DBMS SQLite 3.42 αž“αž·αž„ DuckDB 0.8.0 αŸ” CG/SQL αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αžΈαžαž·αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SQLite

αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ SQLite 3.42 αžŠαŸ‚αž›αž‡αžΆ DBMS αž‘αž˜αŸ’αž„αž“αŸ‹αžŸαŸ’αžšαžΆαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αž‡αžΆαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸ„αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αŸ” αž€αžΌαžŠ SQLite αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αž“αž»αž„αžŠαŸ‚αž“αžŸαžΆαž’αžΆαžšαžŽαŸˆ ឧ. αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαžšαžΉαžαžαŸ’αž”αž·αž αž“αž·αž„αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŽαžΆαž˜αž½αž™αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ SQLite αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αž„αŸ’αž€αžΎαžαž–αž·αžŸαŸαžŸ αžŠαŸ‚αž›αžšαž½αž˜αž˜αžΆαž“αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαžΌαž…αž‡αžΆ Adobe, Oracle, Mozilla, Bentley αž“αž·αž„ Bloomberg αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž·αž”αž·αž€αŸ’αžšαž˜αž’αžαŸ’αžαž”αž‘αž–αŸαž‰ FTS5 αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž›αž»αž”αžŠαŸ„αž™αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αžŠαŸ‚αž›αžŸαž˜αŸ’αž’αžΆαžαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αžΌαžœαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž›αž»αž”αŸ”
  • αž˜αž»αžαž„αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ JSON αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ JSON5 αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαŸ€αž”αž…αŸ†αžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ‚αž›αž˜αŸ’αž’αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž˜αžΎαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž˜αž·αž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ†αžŽαž½αžšαžšαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αž…αŸ„αž›αŸ” αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αŸ†αžšαž»αž‰αž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ "--unsafe-testing" αž‘αŸ…αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαžΌαž…αž‡αžΆ ".testctrl" αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ†αžŽαž„αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– (β€œ-safe”) αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ β€œ.log on” αž“αž·αž„ β€œ.log off” αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆαž€αŸ†αžŽαžαŸ‹ β€œβ€”β€ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αž˜αŸ’αžšαžΎαžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš ":inf" αž“αž·αž„ ":nan" αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžαž˜αŸ’αž›αŸƒαž‚αŸ’αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž“αž·αž„ NaN αŸ”
  • αžˆαŸ’αž˜αŸ„αŸ‡αž˜αž»αžαž„αžΆαžš SQL αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžαŸ’αžšαž½αžαž›αžΎαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™ CROSS, FULL, INNER, LEFT, NATURAL, OUTER, αž“αž·αž„αžŸαŸ’αžαžΆαŸ†αŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹ PRAGMA integrity_check αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒ NaN αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒ NOT NULL αŸ” αž˜αžΆαžαž·αž€αžΆαž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸƒαžŸαžΆαžšαž€αŸ†αž αž»αžŸαŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸαž™αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαžαžΆαžšαžΆαž„αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ ROWID αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ‚αž”αŸ’αžšαŸ‚ "subsec" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž˜αž»αžαž„αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαž”αŸ’αžšαž—αžΆαž‚αž“αŸƒαžœαž·αž“αžΆαž‘αžΈαŸ”
  • αž‡αž˜αŸ’αžšαŸ…αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αžΎαž„αžœαž·αž‰αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαžšαŸ αž“αž·αž„αžœαžαŸ’αžαž» JSON αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž–αžΈ 2000 αž‘αŸ… 1000αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ DuckDB 0.8.0 DBMS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„ αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαŸ‚ SQLite αž–αž„αŸ’αžšαžΈαž€αžŠαŸ„αž™αžŸαž˜αžαŸ’αžαž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαž½αžšαžœαž·αž—αžΆαž‚αžŠαŸ‚αž›αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ αž§αž‘αžΆαž αžšαžŽαŸ αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž“αŸƒαž˜αžΆαžαž·αž€αžΆαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αžαžΆαžšαžΆαž„ αž¬αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαžαžΆαžšαžΆαž„αž’αŸ† αŸ— αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‚αŸ’αžšαžΆαž˜αž—αžΆαžŸαžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž“αŸƒ SQL αžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŸαž˜αžαŸ’αžαž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž“αž·αž„αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“ αž αžΎαž™αž€αŸαž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαž—αŸαž‘αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ (ធអរេ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžŸαž αž‡αžΈαž–) αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž–αžΈαž―αž€αžŸαžΆαžš CSV, JSON αž“αž·αž„ Parquet . αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αž–αžΈ PostgreSQL DBMS αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΌαžŠαžŸαŸ‚αž›αž–αžΈ SQLite αž‚αž˜αŸ’αžšαŸ„αž„αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž‰αŸ‚αž€αž–αžΈ PostgreSQL αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŸαž˜αžΆαžŸαž—αžΆαž‚αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆαž–αžΈ MonetDB αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαž”αž„αŸ’αž’αž½αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αžœαžΆ (αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ Segment Tree Aggregation) αžŠαŸ‚αž›αž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ RE2 αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαŸ†αžŽαž½αžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž“αž·αž„αž™αž“αŸ’αžαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ MVCC αž’αž“αž»αžœαžαŸ’αžαž—αžΆαžšαž€αž·αž…αŸ’αž…αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ (αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž…αŸ’αžšαžΎαž“αž€αŸ†αžŽαŸ‚) αž€αŸαžŠαžΌαž…αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαžœαŸ‰αž·αž…αž‘αŸαžš αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžš Hyper-Pipelining αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αžαž˜αŸ’αž›αŸƒαž’αŸ†αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž€αŸ’αž“αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αŸ” αž›αŸαžαž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ MIT αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹ DuckDBαŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αž“αŸ’αžŸαŸ„αž˜αžαŸ’αž˜αžΈ "PIVOT" αž“αž·αž„ "UNPIVOT" αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‡αž½αžšαžŠαŸαž€αž‘αŸ…αž‡αžΆαž‡αž½αžšαžˆαžš αž“αž·αž„αž…αŸ’αžšαžΆαžŸαž˜αž€αžœαž·αž‰αŸ”
  • αž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸ…αž–αŸαž›αž“αžΆαŸ†αž…αžΌαž› αž“αž·αž„αž“αžΆαŸ†αž…αŸαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž€αžΆαžšαž’αžΆαž“αž–αž αž»αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž–αžΈαž―αž€αžŸαžΆαžš CSV αž“αž·αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž–αž αž»αžαŸ’αžŸαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž‘αž˜αŸ’αžšαž„αŸ‹ Parquet, CSV αž“αž·αž„ JSON αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "**" αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž‘αžΎαž„αžœαž·αž‰αž˜αŸ’αžŠαž„αž‘αŸ€αžαžαžΆαž˜αžšαž™αŸˆαžαžαž“αŸ…αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαž―αž€αžŸαžΆαžš (αž§αž‘αžΆαž αžšαžŽαŸ FROM "'data/glob/crawl/stackoverflow/**/*.csv';")αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ (JOIN) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαžŸαŸŠαŸαžšαžΈαž–αŸαž›αžœαŸαž›αžΆ (αž”αŸ†αžŽαŸ‚αž€αž“αŸƒαžαž˜αŸ’αž›αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž“αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹) αžŠαŸ‚αž›αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž‚αžΊαž˜αž·αž“αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž€αžΆαžšαž…αŸƒαžŠαž“αŸ’αž™αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αž“αŸƒαžαž˜αŸ’αž›αŸƒαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž›αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆ (αž§αž‘αžΆαž αžšαžŽαŸαž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αžαž»αžŸαž‚αŸ’αž“αžΆαž˜αž·αž“αž›αžΎαžŸαž–αžΈ 1 αž“αžΆαž‘αžΈ) αŸ”
  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžαŸ’αž‡αž·αž›αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ DBMS αžšαžΆαž”αŸ‹αžŸαž·αž”αžŠαž„αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ Python αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ADBC ​​​​(αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αŸ’αžšαž½αž‰) API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ Apache Arrow αŸ”
  • αž€αžΆαžšαž…αž„αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž€αžΌαžŠ Swift αŸ”
  • αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž₯αžšαž·αž™αžΆαž”αžαžšαž”αžŸαŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž•αŸ’αž“αŸ‚αž€ ("/") αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžŽαž“αžΆαž…αŸ†αžŽαž»αž…αž’αžŽαŸ’αžαŸ‚αžαž‘αžΉαž€ αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αŸ†αž“αž½αž“αž‚αžαŸ‹αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžαŸ’αž˜αžΈ β€œ//” αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž…αŸ†αž“αž½αž“αž‚αžαŸ‹αŸ” αž₯αžšαž·αž™αžΆαž”αžαž…αžΆαžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ„αž™αž€αŸ†αžŽαžαŸ‹ β€œSET integer_division=true;β€αŸ”
  • αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαž™αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαžŸαžΌαž“αŸ’αž™αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž“αŸ…αž–αŸαž›αžαž˜αŸ’αžšαŸ€αž”αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈ "NULLS FIRST" αž‘αŸ… "NULLS LAST" i.e. αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαž˜αŸ’αž›αŸƒ NULL αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž‡αžΆαž‡αžΆαž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž”αž‰αŸ’αž‡αžΈαŸ” αž₯αžšαž·αž™αžΆαž”αžαž…αžΆαžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ β€œSET default_null_order='nulls_first';” αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„ CG/SQL αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Facebook αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžΎαž“αžΈαžαž·αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆαž˜αž½αž™ SQLite αŸ” CG/SQL αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž“αžΈαžαž·αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαžΆαž˜αž—αžΆαžŸαžΆαž–αž·αžŸαŸαžŸαž“αŸƒ T-SQL (Transact-SQL) αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž αŸ…αž˜αž»αžαž„αžΆαžšαž“αŸƒαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ C αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž“αž·αž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„ SQLite αŸ” αž“αžΈαžαž·αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αž‡αžΆαž€αžΌαžŠ C αžŠαŸ‚αž›αž”αŸ’αžšαžΎ SQLite C API αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αž‘αž»αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ C, Java, αž“αž·αž„ Objective-CαŸ” αž›αŸαžαž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆ C αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ MIT αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹