āĻĄāĻžāĻ•āĻĄāĻŋāĻŦāĻŋ ā§§.⧍.ā§Ļ āϰāĻŋāϞāĻŋāϜ

DuckDB 1.2.0, āĻāĻ•āϟāĻŋ DBMS āϝāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāĻžāĻ¤ā§āĻŽāĻ• āĻĒā§āϰāĻļā§āύ āϏāĻŽā§āĻĒāĻžāĻĻāύ⧇āϰ āωāĻĒāϰ āĻĻ⧃āĻˇā§āϟāĻŋ āύāĻŋāĻŦāĻĻā§āϧ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϧāĻžāϰāĻŖāĻžāĻ—āϤāĻ­āĻžāĻŦ⧇ SQLite-āĻāϰ āĻŽāϤ⧋, āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ DuckDB SQLite-āĻāϰ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ āϏāĻžāχāϜ, āĻĒā§āϞāĻžāϗ⧇āĻŦāϞ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ, āϏāĻŋāĻ™ā§āϗ⧇āϞ-āĻĢāĻžāχāϞ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻāĻŦāĻ‚ CLI āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϕ⧇ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāĻžāĻ¤ā§āĻŽāĻ• āϕ⧋āϝāĻŧ⧇āϰāĻŋ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻ•ā§āώāĻŽāϤāĻž āĻāĻŦāĻ‚ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇ āϝāĻž āϏāĻžā§āϚāĻŋāϤ āĻĄā§‡āϟāĻžāϰ āĻāĻ•āϟāĻŋ āĻŦ⧃āĻšā§Ž āĻ…āĻ‚āĻļāϕ⧇ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āĻ•āϰ⧇, āϝ⧇āĻŽāύ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻž āĻŦāĻž āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŦāĻĄāĻŧ āĻŸā§‡āĻŦāĻŋāϞ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāĨ¤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϕ⧋āĻĄāϟāĻŋ C++ āϤ⧇ āϞ⧇āĻ–āĻž āĻāĻŦāĻ‚ MIT āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

DuckDB SQL āĻ­āĻžāώāĻžāϰ āĻāĻ•āϟāĻŋ āĻŦāĻ°ā§āϧāĻŋāϤ āωāĻĒāĻ­āĻžāώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āϝāĻž āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϜāϟāĻŋāϞ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘāĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻĒā§āϰāĻļā§āύāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•ā§āώāĻŽāϤāĻž āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤ āϜāϟāĻŋāϞ āĻĒā§āϰāĻ•āĻžāϰ (āĻ…ā§āϝāĻžāϰ⧇, āĻ•āĻžāĻ āĻžāĻŽā§‹, āχāωāύāĻŋāϝāĻŧāύ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ, āϏ⧇āχāϏāĻžāĻĨ⧇ āχāĻšā§āĻ›āĻžāĻŽāϤ āĻāĻŦāĻ‚ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āϕ⧋āϰāĻŋāϞ⧇āĻŸā§‡āĻĄ āϏāĻžāĻŦāϕ⧋āϝāĻŧ⧇āϰāĻŋāϗ⧁āϞāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāĻļā§āύ⧇āϰ āĻāĻ•āϝ⧋āϗ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāύ, CSV āĻāĻŦāĻ‚ Parquet āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāĻļā§āύ⧇āϰ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤāĨ¤ PostgreSQL DBMS āĻĨ⧇āϕ⧇ āφāĻŽāĻĻāĻžāύāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āωāĻĒāϞāĻŦā§āϧāĨ¤

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

āύāϤ⧁āύ āĻŦāĻŋāĻļā§āĻŦ⧇:

  • āύāϤ⧁āύ āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ DuckDB-āĻāϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāϤāĻž āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻāϗ⧁āϞāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻĨāĻžāϕ⧇ āύāĻžāĨ¤ āωāĻ¨ā§āύāϤ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĢāĻžāχāϞ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āĻĄāĻžāϟāĻžāĻŦ⧇āϏāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŽā§āĻŦāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇: āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻ–ā§‹āϞāĻžāϰ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ–āύ "STORAGE_VERSION" āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ°ā§āĻŦāύāĻŋāĻŽā§āύ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');")āĨ¤ āύāϤ⧁āύ āĻĢāϰāĻŽā§āϝāĻžāϟāϟāĻŋāϕ⧇ āĻĒ⧁āϰāĻžāύ⧋ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇, āφāĻĒāύāĻŋ COPY SQL āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); COPY FROM DATABASE file1 TO converted_file;
  • āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻŸā§‡āĻŦāĻŋāϞ⧇ āĻĒā§āϰāĻžāχāĻŽāĻžāϰāĻŋ āϕ⧀ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ "ALTER TABLE â€Ļ ADD PRIMARY KEY" SQL āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋāϰ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻāĻ•āϟāĻŋ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻž āĻāĻ•āϟāĻŋ āĻ…āύāĻ¨ā§āϝ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚ āχāύāĻĄā§‡āĻ•ā§āϏ āϏāĻš āφāχāĻĄā§‡āĻ¨ā§āϟāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϗ⧁āϞāĻŋāϕ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻŦāĻžāϧāĻž āĻĻāĻŋāϤ, āϝāĻĻāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϞ⧇āύāĻĻ⧇āύ⧇ āϏ⧇āχ āφāχāĻĄā§‡āĻ¨ā§āϟāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϗ⧁āϞāĻŋ āĻĄā§āϰāĻĒ āĻ•āϰāĻž āĻšāϝāĻŧ⧇ āĻĨāĻžāϕ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ SQL āφāϰ āϕ⧋āύ⧋ āĻ¤ā§āϰ⧁āϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āύāĻž: CREATE TABLE students (id INTEGER PRIMARY KEY, name VARCHAR); INSERT INTO students VALUES (1, 'John Doe'); BEGIN; DELETE FROM students WHERE id = 1; INSERT INTO students VALUES (1, 'Jane Doe');
  • āĻ˛ā§āϝāĻžāϟāĻŋāύ-ā§§ āĻāĻŦāĻ‚ āχāωāϟāĻŋāĻāĻĢ-ā§§ā§Ŧ āĻāύāϕ⧋āĻĄāĻŋāĻ‚-āĻ CSV āĻĢāĻžāχāϞ āϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ (āĻĒā§‚āĻ°ā§āĻŦ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āχāωāϟāĻŋāĻāĻĢ-ā§Ž āĻāύāϕ⧋āĻĄāĻŋāĻ‚ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻ›āĻŋāϞ)āĨ¤ FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');
  • CSV āĻĢāĻžāχāϞ⧇ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻŦāĻžāχāϟ āĻĄāĻŋāϞāĻŋāĻŽāĻŋāϟāĻžāϰ (ā§Ē āĻŦāĻžāχāϟ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ) āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏ⧁āĻŦāĻŋāϧāĻž āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻ•āϞāĻžāĻŽ āĻŦāĻŋāĻ­āĻžāϜāĻ• āĻšāĻŋāϏ⧇āĻŦ⧇ āχāĻŽā§‹āϜāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤ ađŸĻ†b hellođŸĻ†world FROM read_csv('example.dsv', sep = 'đŸĻ†');
  • āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, CSV āĻĢāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϰāĻŋāĻ•ā§āϟ āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚ āĻŽā§‹āĻĄ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇ ("strict_mode = true"), āϝāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻĻ⧇āϖ⧇ āϝ⧇ āĻĢāϰāĻŽā§āϝāĻžāϟāĻŋāĻ‚ RFC 4180 āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻŽā§‡āύ⧇ āϚāϞāϛ⧇ āĻ•āĻŋāύāĻžāĨ¤ āĻ¸ā§āĻŸā§āϰāĻŋāĻ•ā§āϟ āĻŽā§‹āĻĄā§‡, āϞāĻžāχāύ āφāϞāĻžāĻĻāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ•ā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āĻĢāϞ⧇ āĻāĻŽāύ āĻĢāĻžāχāϞ āĻĒāĻžāĻ°ā§āϏ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻž āĻĻ⧇āĻŦ⧇ āϝ⧇āĻ–āĻžāύ⧇ āϞāĻžāχāύ āφāϞāĻžāĻĻāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϞāĻžāχāύ āĻĢāĻŋāĻĄ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāϰ⧇āϜ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ ("\r\n") āωāĻ­āϝāĻŧāχ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤
  • CSV āĻĒāĻžāĻ°ā§āϏāĻžāϰāϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύāĻŋāωāϞāĻžāχāύ āĻļāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āĻāχ āύāϤ⧁āύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽāϟāĻŋ CSV āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ—āϤāĻŋ āĻĒā§āϰāĻžāϝāĻŧ ā§§ā§Ģ% āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧ⧇āϛ⧇āĨ¤
  • CSV āĻĢāĻžāχāϞ⧇āϰ āϞāĻžāχāύ āϏāĻžāχāĻœā§‡āϰ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āϤ⧁āϞ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇ (āĻĒā§‚āĻ°ā§āĻŦ⧇ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ⧇āϰ āϏāĻžāχāϜ ā§Ž āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāĻŸā§‡āϰ āĻŦ⧇āĻļāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰāϤ āύāĻž)āĨ¤
  • āĻĒāĻžāĻ°ā§āϕ⧇āϟ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻĄā§‡āϟāĻž āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻšā§āϝāĻžāĻļ (āĻĄāĻŋāĻ•āĻļāύāĻžāϰāĻŋ) āĻāĻŦāĻ‚ āĻŦā§āϞ⧁āĻŽ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ DELTA_BINARY_PACKED āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻĒāĻžāĻ°ā§āϕ⧇āϟ āĻĢāĻžāχāϞ⧇āϰ āφāĻ•āĻžāϰ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āĻ•āĻŽāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤
  • āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻāĻ•āϟāĻŋ āϏ⧇āĻĢ āĻŽā§‹āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž "-safe" āĻ…āĻĒāĻļāύ āĻ…āĻĨāĻŦāĻž ".safe_mode" āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāχ āĻŽā§‹āĻĄā§‡ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĢāĻžāχāϞāϟāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝ āĻĢāĻžāχāϞ āĻ–ā§‹āϞāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϞ⧇ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻž āĻĻ⧇āĻŦ⧇āĨ¤
  • āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϕ⧋āĻĄāϟāĻŋāϕ⧇ āĻĒāĻŋāχāϜāĻŋ (āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻ—ā§āϰāĻžāĻŽāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦāĻĄāĻŧ āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞ⧋āϰ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇; āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, 100000000 āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϏāĻŽāϝāĻŧ, āĻāϰ āϏāĻžāĻĨ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤāĻ­āĻžāĻŦ⧇ “(100 āĻŽāĻŋāϞāĻŋāϝāĻŧāύ)” āϝ⧋āĻ— āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤
  • SQL āĻāĻ–āύ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ "expression AS name" āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇, āϝ⧇ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋āϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž āĻšāϝāĻŧ āϏ⧇āϗ⧁āϞ⧋āϰ āφāϗ⧇ āĻŸā§‡āĻŦāĻŋāϞ āĻāĻŦāĻ‚ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇āϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āύāĻžāĻŽ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āϝāĻžāϝāĻŧ: SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name, t2: short_s.tbl;
  • "SELECT" āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻāĻ–āύ "RENAME" āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇, āϝāĻž "*" āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻšāϞ⧇ āφāωāϟāĻĒ⧁āϟ āĻšāĻ“āϝāĻŧāĻž āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞāĻŋāϰ āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ: SELECT * RENAME (col1 AS new_col1) FROM integers;
  • "SELECT" āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ "*" āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāωāϟāĻĒ⧁āϟ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ "LIKE" āĻāĻŦāĻ‚ "SIMILAR TO" āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧ: SELECT * LIKE 'val%' FROM key_val;
  • āĻ›āĻĻā§āĻŽ-āĻāϞ⧋āĻŽā§‡āϞ⧋ āϏāĻ‚āĻ–ā§āϝāĻž āϤ⧈āϰāĻŋāϰ āĻŽāĻžāύ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻ…āĻĒāϟāĻŋāĻŽāĻžāχāϜāĻžāϰ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ TPC-H SF100 āĻŦ⧇āĻžā§āϚāĻŽāĻžāĻ°ā§āϕ⧇ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ ā§§ā§Š% āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒ⧇āϝāĻŧ⧇āϛ⧇āĨ¤
  • āĻ…ā§āϝāĻžāĻĄ-āĻ…āύ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻŋ-āϏāĻĻ⧃āĻļ āĻāĻĒāĻŋāφāχ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āύāϤ⧁āύ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻŦāĻž āĻŸā§‡āĻŦāĻŋāϞ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϏāĻŋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ Musl āϏāĻš āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

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

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