DBMS SQLite 3.42 āĻāĻŦāĻ‚ DuckDB 0.8.0 āĻāϰ āϰāĻŋāϞāĻŋāϜāĨ¤ SQLite-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻžā§āϚāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻš CG/SQL

SQLite 3.42 āĻāϰ āϰāĻŋāϞāĻŋāϜ, āĻāĻ•āϟāĻŋ āĻĒā§āϞāĻžāĻ—-āχāύ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ DBMS, āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ SQLite āϕ⧋āĻĄ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āĻĄā§‹āĻŽā§‡āύ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝ⧇āĻŽāύ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻ›āĻžāĻĄāĻŧāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āϝ⧇āϕ⧋āύ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ SQLite āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āφāĻ°ā§āĻĨāĻŋāĻ• āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āύāϏ⧋āĻ°ā§āϟāĻŋāϝāĻŧāĻžāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ Adobe, Oracle, Mozilla, Bentley āĻāĻŦāĻ‚ Bloomberg āĻāϰ āĻŽāϤ⧋ āϕ⧋āĻŽā§āĻĒāĻžāύāĻŋ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āĻ…āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž:

  • FTS5 āĻĒā§‚āĻ°ā§āĻŖ-āĻĒāĻžāĻ ā§āϝ āϏ⧂āĻšā§€āϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āϏ⧁āϰāĻ•ā§āώāĻŋāϤ-āĻŽā§āϛ⧁āύ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻĒāϰ⧇ āϏāĻŽāĻ¸ā§āϤ āĻ…āĻŦāĻļāĻŋāĻˇā§āϟ āĻĄā§‡āϟāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇āĨ¤
  • JSON āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāϪ⧇āϰ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āĻāĻ–āύ JSON5 āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋāϕ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇⧎
  • āωāĻ¨ā§āύāϤ āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āĻĒā§āĻ˛ā§āϝāĻžāύāĻžāϰāĨ¤ āĻ•āĻžāωāĻ¨ā§āϟ-āĻ…āĻĢ-āĻ­āĻŋāω āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāĻžāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻ•ā§āώāĻŽāĨ¤ āϏāĻžāĻŦāϕ⧋āϝāĻŧ⧇āϰāĻŋāϤ⧇ āĻ…āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ•āϞāĻžāĻŽāϗ⧁āϞāĻŋāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ āĻŦāĻžāĻĻ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āωāĻ¨ā§āύāϤ āĻĒ⧁āĻļ-āĻĄāĻžāωāύ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāĻžāύ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύāĨ¤
  • āĻ•āĻŋāϛ⧁ āĻŦāĻŋāĻĒāĻœā§āϜāύāĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϝ⧇āĻŽāύ ".testctrl" āĻĒāϰ⧀āĻ•ā§āώāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ CLI-āϤ⧇ "--unsafe-testing" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŽā§‹āĻĄā§‡ ("--āύāĻŋāϰāĻžāĻĒāĻĻ"), ".āϞāĻ— āĻ…āύ" āĻāĻŦāĻ‚ ".āϞāĻ— āĻ…āĻĢ" āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ⧎ "—" āĻŦāĻŋāĻ­āĻžāϜāϕ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϝāĻžāϰ āĻĒāϰ⧇ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āχāύāĻĢāĻŋāύāĻŋāϟāĻŋ āĻāĻŦāĻ‚ NaN āĻŽāĻžāύ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ ":inf" āĻāĻŦāĻ‚ ":nan" āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ-āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ SQL āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϰ āύāĻžāĻŽāϗ⧁āϞāĻŋāϕ⧇ āĻ•ā§āϰāϏ, āĻĒā§‚āĻ°ā§āĻŖ, āĻ­āĻŋāϤāϰ⧇āϰ, āĻŦāĻžāĻŽ, āĻĒā§āϰāĻžāĻ•ā§ƒāϤāĻŋāĻ•, āĻŦāĻžāχāϰ⧇āϰ āĻāĻŦāĻ‚ āĻĄāĻžāύ āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϛ⧇āĻĻ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇⧎
  • āĻĒā§āϰāϏāĻžāϰāĻŋāϤ PRAGMA āĻ…āĻ–āĻŖā§āĻĄāϤāĻž_āĻšā§‡āĻ• āĻ•ā§āώāĻŽāϤāĻžāĨ¤ NOT NULL āĻļāĻ°ā§āϤ āϏāĻš āĻ•āϞāĻžāĻŽā§‡ NaN āĻŽāĻžāύ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻšā§‡āĻ• āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āωāĻ¨ā§āύāϤ āϤāĻĨā§āϝ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁.
  • āϏ⧇āĻļāύ āϏāĻ‚āϝ⧋āϜāύ ROWID āĻ›āĻžāĻĄāĻŧāĻžāχ āĻŸā§‡āĻŦāĻŋāϞ āĻĨ⧇āϕ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻŦāĻžāϧāĻž āĻĻ⧇āϝāĻŧāĨ¤
  • "āϏāĻžāĻŦāϏ⧇āĻ•" āϏāĻ‚āĻļā§‹āϧāĻ•āϟāĻŋ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻ­āĻ—ā§āύāĻžāĻ‚āĻļ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϰāĻŋāϖ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāĻ‚āĻļāύ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • 2000 āĻĨ⧇āϕ⧇ 1000 āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ…ā§āϝāĻžāϰ⧇ āĻāĻŦāĻ‚ JSON āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤ āĻ—āĻ­ā§€āϰāϤāĻž āĻšā§āϰāĻžāϏ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, DuckDB 0.8.0 DBMS āϰāĻŋāϞāĻŋāϜ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž SQLite āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āϰ⧇, āϏāĻžā§āϚāĻŋāϤ āĻĄā§‡āϟāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻ…āĻ‚āĻļāϕ⧇ āĻ•āĻ­āĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāĻžāĻ¤ā§āĻŽāĻ• āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻāĻŦāĻ‚ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āϏāĻš āωāĻ¨ā§āύāϤ āĻ•āϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻž āĻŦāĻž āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŽāĻžāĻ°ā§āϜ āĻ•āϰāĻž āĻŦāĻĄāĻŧ āĻŸā§‡āĻŦāĻŋāϞāĨ¤ āĻāϏāĻ•āĻŋāωāĻāϞ āĻ­āĻžāώāĻžāϰ āĻāĻ•āϟāĻŋ āĻŦāĻ°ā§āϧāĻŋāϤ āωāĻĒāĻ­āĻžāώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϜāϟāĻŋāϞ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘāĻŽā§‡āϝāĻŧāĻžāĻĻā§€ āĻĒā§āϰāĻļā§āύāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•ā§āώāĻŽāϤāĻž, āϏ⧇āχāϏāĻžāĻĨ⧇ āϜāϟāĻŋāϞ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ (āĻ…ā§āϝāĻžāϰ⧇, āĻ•āĻžāĻ āĻžāĻŽā§‹, āχāωāύāĻŋāϝāĻŧāύ), āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāĻļā§āύ⧇āϰ āĻāĻ•āϝ⧋āϗ⧇ āϏāĻžā§āϚāĻžāϞāύ, āĻāĻŦāĻ‚ āϏāϰāĻžāϏāϰāĻŋ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻļā§āύāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāĻž CSV, JSON āĻāĻŦāĻ‚ Parquet āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻĢāĻžāχāϞāĨ¤ PostgreSQL DBMS āĻĨ⧇āϕ⧇ āφāĻŽāĻĻāĻžāύāĻŋ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤

SQLite āĻĨ⧇āϕ⧇ āĻļ⧇āϞ āϕ⧋āĻĄ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ PostgreSQL āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϏāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϤ⧇ āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, MonetDB āĻĨ⧇āϕ⧇ āϤāĻžāϰāĻŋāĻ– āĻ—āĻŖāĻŋāϤ āωāĻĒāĻžāĻĻāĻžāύ, āωāχāĻ¨ā§āĻĄā§‹ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ (āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āĻŸā§āϰāĻŋ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āĻļāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇), āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻĒā§āϰāϏ⧇āϏāϰāĨ¤ RE2 āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇, āĻāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻžāϰ, MVCC āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻŽā§‡āĻ•āĻžāύāĻŋāϜāĻŽ āĻāĻ•āϝ⧋āϗ⧇ āĻ•āĻžāĻ°ā§āϝ āϏāĻŽā§āĻĒāĻžāĻĻāύ (āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻ­āĻžāĻ°ā§āϏāύ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ), āϏ⧇āχāϏāĻžāĻĨ⧇ āĻšāĻžāχāĻĒāĻžāϰ-āĻĒāĻžāχāĻĒāϞāĻžāχāύāĻŋāĻ‚ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰāĻžāχāϜāĻĄ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ āχāĻžā§āϜāĻŋāύ, āϝāĻž āĻŦāĻĄāĻŧ āϏ⧇āϟ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāϪ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧāĨ¤ āĻāĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇ āĻāĻ•āĻŦāĻžāϰ⧇ āĻŽāĻžāύāĨ¤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϕ⧋āĻĄ MIT āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

DuckDB āĻāϰ āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇:

  • āϏāĻžāϰāĻŋāϗ⧁āϞāĻŋāϕ⧇ āĻ•āϞāĻžāĻŽā§‡ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āύāϤ⧁āύ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ "PIVOT" āĻāĻŦāĻ‚ "UNPIVOT" āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇āĨ¤
  • āĻĄā§‡āϟāĻž āφāĻŽāĻĻāĻžāύāĻŋ āĻāĻŦāĻ‚ āϰāĻĒā§āϤāĻžāύāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āωāĻ¨ā§āύāϤ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāĻŖāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, Parquet, CSV āĻāĻŦāĻ‚ JSON āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ CSV āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻĨ⧇āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ¸ā§āĻŸā§āϰ⧀āĻŽ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āϰāĻžāχāϟāĻŋāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧎
  • āĻĢāĻžāχāϞ āĻĒāĻžāĻĨ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āωāĻĒāϰ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāϤ⧇ "**" āĻ…āĻĒāĻžāϰ⧇āϟāϰ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ (āϝ⧇āĻŽāύ "'data/glob/crawl/stackoverflow/**/*.csv';") āĻĨ⧇āϕ⧇āĨ¤
  • āϟāĻžāχāĻŽ āϏāĻŋāϰāĻŋāϜ (āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽāϝāĻŧ⧇āϰ āĻŦā§āϝāĻŦāϧāĻžāύ⧇ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŽāĻžāύ⧇āϰ āĻ¸ā§āϞāĻžāχāϏ) āφāĻ•āĻžāϰ⧇ āĻĄā§‡āϟāĻžāϰ āϜāĻ¨ā§āϝ āĻŽāĻžāĻ°ā§āϜ āĻ…āĻĒāĻžāϰ⧇āĻļāύ (āϝ⧋āĻ—āĻĻāĻžāύ) āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝ⧇āĻ–āĻžāύ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞāĻŋ āĻŽāĻžāĻ°ā§āϜ āĻ•āϰāĻžāϰ āĻŽāĻžāύāĻĻāĻŖā§āĻĄāϟāĻŋ āϏāĻ āĻŋāĻ• āύāϝāĻŧ, āϤāĻŦ⧇ āĻŽāĻžāύāϗ⧁āϞāĻŋāϰ āφāύ⧁āĻŽāĻžāύāĻŋāĻ• āĻŽāĻŋāϞ āϏāĻŽāϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞāĻŋ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϏāĻŽāϝāĻŧ āϝāĻž 1 āĻŽāĻŋāύāĻŋāĻŸā§‡āϰ āĻŦ⧇āĻļāĻŋ āύāϝāĻŧ)āĨ¤
  • āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻžāϰ āĻŦāĻŋāϞāĻŽā§āĻŦāĻŋāϤ āϞ⧋āĻĄāĻŋāĻ‚ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻ•āϝāĻŧ⧇āĻ• āĻĄāϜāύ āĻŦāĻžāϰ DBMS āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻ—āϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ āϏāĻŽā§āĻ­āĻŦ āĻ•āϰ⧇āϛ⧇āĨ¤
  • āĻĒāĻžāχāĻĨāύ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻĢāĻžāĻ‚āĻļāύ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • Apache āϤ⧀āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§‡āϟāĻž āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ⧇āϰ āϜāĻ¨ā§āϝ ADBC ​​(Arrow Database Connectivity) API-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āϏ⧁āχāĻĢāϟ āϕ⧋āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻĄāĻŋāĻ­āĻŋāĻļāύ ("/") āĻ…āĻĒāĻžāϰ⧇āϟāϰ⧇āϰ āφāϚāϰāĻŖ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāĻ–āύ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻž āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻĢā§āϞ⧋āϟāĻŋāĻ‚ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻ—āĻŖāύāĻž āĻ•āϰ⧇āĨ¤ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻž āĻŦāĻŋāĻ­āĻžāϗ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ…āĻĒāĻžāϰ⧇āϟāϰ "//" āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ "SET integer_division=true;" āϏ⧇āϟ āĻ•āϰ⧇ āĻĒ⧁āϰāĻžāύ⧋ āφāϚāϰāĻŖ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āύāĻžāϞ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻĒāĻĻā§āϧāϤāĻŋ "NULLS FIRST" āĻĨ⧇āϕ⧇ "NULLS LAST" āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇, āĻ…āĻ°ā§āĻĨāĻžā§Ž NULL āĻŽāĻžāύāϗ⧁āϞāĻŋ āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧁āϰ⧁āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻļ⧇āώ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāĻŦ⧇āĨ¤ "SET default_null_order='nulls_first';" āϏ⧇āϟ āĻ•āϰ⧇ āĻĒ⧁āϰāĻžāύ⧋ āφāϚāϰāĻŖ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āωāĻĒāϰāĻ¨ā§āϤ⧁, Facebook āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ•āĻžāĻļāĻŋāϤ CG/SQL āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ, āϝāĻž SQLite-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻžā§āϚāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ CG/SQL āφāĻĒāύāĻžāϕ⧇ T-SQL (Transact-SQL) āĻāϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āωāĻĒāĻ­āĻžāώāĻžāϝāĻŧ āϏāĻžā§āϚāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ C āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āĻ•āϞ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ SQLite-āĻ āĻĄā§‡āϟāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻ‰ā§ŽāĻĒāĻ¨ā§āύ āϏāĻžā§āϚāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āϏāĻŋ āϕ⧋āĻĄā§‡ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāĻž āĻšāϝāĻŧ āϝāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āϜāϟāĻŋāϞ āĻĒā§āϰāĻļā§āύāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāϤ⧇ SQLite C API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϏāĻ‚āĻ•āϞāĻŋāϤ āϏāĻžā§āϚāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āϏāĻŋ, āϜāĻžāĻ­āĻž āĻāĻŦāĻ‚ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāĻŋāĻ­-āϏāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϕ⧋āĻĄāϟāĻŋ āϏāĻŋ āϤ⧇ āϞ⧇āĻ–āĻž āĻāĻŦāĻ‚ āĻāĻŽāφāχāϟāĻŋ āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āωāĻ¤ā§āϏ: opennet.ru

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster