DBMS SQLite 3.42 மற்றும் DuckDB 0.8.0 வெளியீடு. SQLite க்கான சேமிக்கப்பட்ட நடைமுறைகளை செயல்படுத்துவதன் மூலம் CG/SQL

ப்ளக்-இன் லைப்ரரியாக வடிவமைக்கப்பட்ட இலகுரக DBMS SQLite 3.42 இன் வெளியீடு வெளியிடப்பட்டது. SQLite குறியீடு பொது டொமைனில் விநியோகிக்கப்படுகிறது, அதாவது. கட்டுப்பாடுகள் இல்லாமல் எந்த நோக்கத்திற்காகவும் இலவசமாகப் பயன்படுத்தலாம். SQLite டெவலப்பர்களுக்கான நிதி உதவியானது அடோப், ஆரக்கிள், மொஸில்லா, பென்ட்லி மற்றும் ப்ளூம்பெர்க் போன்ற நிறுவனங்களை உள்ளடக்கிய பிரத்யேகமாக உருவாக்கப்பட்ட கூட்டமைப்பால் வழங்கப்படுகிறது.

முக்கிய மாற்றங்கள்:

  • FTS5 முழு-உரை குறியீடுகளுக்கு, பாதுகாப்பான-நீக்கு கட்டளை செயல்படுத்தப்படுகிறது, இது நீக்கப்பட்ட பிறகு மீதமுள்ள எல்லா தரவையும் முழுமையாக சுத்தம் செய்கிறது.
  • JSON வடிவத்தில் தரவை செயலாக்குவதற்கான செயல்பாடுகள் இப்போது JSON5 நீட்டிப்புகளை ஆதரிக்கின்றன.
  • மேம்படுத்தப்பட்ட வினவல் திட்டமிடுபவர். கவுண்ட்-ஆஃப்-வியூ ஆப்டிமைசேஷன் இயல்பாகவே இயக்கப்பட்டது. துணை வினவல்களில் பயன்படுத்தப்படாத நெடுவரிசைகளை கையாளுதல் நீக்கப்பட்டது. மேம்படுத்தப்பட்ட புஷ்-டவுன் ஆப்டிமைசேஷன் செயல்படுத்தல்.
  • சோதனையில் ".testctrl" போன்ற சில ஆபத்தான கட்டளைகளைப் பயன்படுத்த அனுமதிக்க, CLI இல் "--unsafe-testing" விருப்பம் சேர்க்கப்பட்டது. பாதுகாப்பான முறையில் ("--safe"), ".log on" மற்றும் ".log off" கட்டளைகள் அனுமதிக்கப்படுகின்றன. விருப்பச் செயலாக்கம் முடக்கப்பட்ட வாதங்களுக்கு, "—" பிரிப்பானுக்கான ஆதரவு சேர்க்கப்பட்டது. முடிவிலி மற்றும் NaN மதிப்புகளுடன் தொடர்புடைய ":inf" மற்றும் ":nan" அளவுருக்கள் சேர்க்கப்பட்டது.
  • பயன்பாடு-வரையறுக்கப்பட்ட SQL செயல்பாடுகளின் பெயர்கள் குறுக்கு, முழு, உள், இடது, இயற்கை, வெளி மற்றும் வலது முக்கிய வார்த்தைகளுடன் குறுக்கிட அனுமதிக்கப்படுகிறது.
  • விரிவாக்கப்பட்ட PRAGMA ஒருமைப்பாடு_செக் திறன்கள். NOT NULL நிபந்தனையுடன் நெடுவரிசைகளில் NaN மதிப்பைக் குறிப்பிடுவதற்கான காசோலை சேர்க்கப்பட்டது. பிழை செய்திகளின் மேம்படுத்தப்பட்ட தகவல் உள்ளடக்கம்.
  • அமர்வு கூட்டல் ROWIDகள் இல்லாத அட்டவணைகளிலிருந்து மாற்றங்களை இடைமறிக்க அனுமதிக்கிறது.
  • வினாடிகளின் பின்னங்களைப் பயன்படுத்த நேரம் மற்றும் தேதிகளுடன் பணிபுரியும் செயல்பாடுகளில் "சப்செக்" மாற்றியமைக்கப்பட்டது.
  • அணிவரிசைகள் மற்றும் JSON பொருள்களுக்கான இயல்புநிலை மறுநிகழ்வு ஆழம் 2000 முதல் 1000 வரை குறைக்கப்பட்டது.

கூடுதலாக, DuckDB 0.8.0 DBMS வெளியீடு உருவாக்கப்பட்டது, இது SQLite மாறுபாட்டை உருவாக்குகிறது, இது சேமிக்கப்பட்ட தரவின் குறிப்பிடத்தக்க பகுதியை உள்ளடக்கிய பகுப்பாய்வு வினவல்களைச் செய்வதற்கான அம்சங்கள் மற்றும் மேம்படுத்தல்களுடன் மேம்படுத்தப்பட்டது, எடுத்துக்காட்டாக, அட்டவணைகளின் முழு உள்ளடக்கங்களையும் ஒருங்கிணைத்தல் அல்லது பலவற்றை ஒன்றிணைத்தல். பெரிய அட்டவணைகள். SQL மொழியின் நீட்டிக்கப்பட்ட பேச்சுவழக்கு வழங்கப்படுகிறது, இதில் மிகவும் சிக்கலான மற்றும் நீண்டகால வினவல்களைக் கையாளுவதற்கான கூடுதல் திறன்கள், அத்துடன் சிக்கலான வகைகளுக்கான ஆதரவு (வரிசைகள், கட்டமைப்புகள், தொழிற்சங்கங்கள்), ஒரே நேரத்தில் பல வினவல்களை செயல்படுத்துதல் மற்றும் வினவல்களை நேரடியாக செயல்படுத்துதல் CSV, JSON மற்றும் பார்க்வெட் வடிவத்தில் கோப்புகள். PostgreSQL DBMS இலிருந்து இறக்குமதி செய்ய முடியும்.

SQLite இன் ஷெல் குறியீட்டைத் தவிர, திட்டமானது PostgreSQL இலிருந்து ஒரு பாகுபடுத்தலைப் பயன்படுத்துகிறது, தனி நூலகத்திற்கு மாற்றப்பட்டது, MonetDB இலிருந்து தேதி கணித கூறு, அதன் சொந்த சாளர செயல்பாடுகளை செயல்படுத்துதல் (செக்மென்ட் ட்ரீ அக்ரிகேஷன் அல்காரிதம் அடிப்படையில்), வழக்கமான வெளிப்பாடு செயலி. RE2 நூலகத்தின் அடிப்படையில், அதன் சொந்த வினவல் உகப்பாக்கி, MVCC கட்டுப்பாட்டு பொறிமுறையானது ஒரே நேரத்தில் பணிகளைச் செயல்படுத்துதல் (மல்டி-வெர்ஷன் கன்கரன்சி கண்ட்ரோல்), அத்துடன் ஹைப்பர்-பைப்லைனிங் வினவல் செயல்படுத்தல் அல்காரிதம் அடிப்படையிலான வெக்டரைஸ்டு வினவல் செயலாக்க இயந்திரம், இது பெரிய அளவிலான செயலாக்கத்தை அனுமதிக்கிறது. ஒரு செயல்பாட்டில் ஒரே நேரத்தில் மதிப்புகள். திட்டக் குறியீடு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

DuckDB இன் புதிய பதிப்பில்:

  • வரிசைகளை நெடுவரிசைகளாக மாற்ற "PIVOT" மற்றும் "UNPIVOT" என்ற புதிய வெளிப்பாடுகள் சேர்க்கப்பட்டன.
  • தரவை இறக்குமதி மற்றும் ஏற்றுமதி செய்யும் போது மேம்படுத்தப்பட்ட இணைப்படுத்தல். இயல்பாக, பார்க்வெட், CSV மற்றும் JSON வடிவங்களைப் பயன்படுத்தும் போது, ​​CSV வடிவத்தில் உள்ள கோப்புகளிலிருந்து பல ஸ்ட்ரீம்கள் மற்றும் பல-த்ரெட் எழுதுதல் ஆகியவை செயல்படுத்தப்படும்.
  • கோப்பு பாதைகளை வரையறுக்கும் போது கோப்பகங்களில் மீண்டும் மீண்டும் மீண்டும் செய்ய "**" ஆபரேட்டர் சேர்க்கப்பட்டது (எ.கா. "'data/glob/crawl/stackoverflow/**/*.csv';").
  • ஒரு நேரத் தொடரின் (குறிப்பிட்ட நேர இடைவெளியில் அளவுரு மதிப்புகளின் துண்டுகள்) வடிவத்தில் தரவுகளுக்கான ஒன்றிணைப்பு செயல்பாடுகளுக்கான (JOIN) ஆதரவு சேர்க்கப்பட்டது, இதில் பதிவுகளை ஒன்றிணைப்பதற்கான அளவுகோல் துல்லியமானது அல்ல, ஆனால் மதிப்புகளின் தோராயமான பொருத்தம். நேரத்துடன் ஒரு புலத்தில் (எடுத்துக்காட்டாக, நீங்கள் பதிவுகளை இணைக்கலாம், நேரம் 1 நிமிடத்திற்கு மேல் வேறுபடாது).
  • தரவுத்தள மெட்டாடேட்டாவின் ஒத்திவைக்கப்பட்ட ஏற்றுதல் செயல்படுத்தப்பட்டது, இது DBMS இன் வெளியீட்டை டஜன் கணக்கான முறை விரைவுபடுத்துவதை சாத்தியமாக்கியது.
  • பைத்தானில் தனிப்பயன் செயல்பாடுகளை இணைப்பதற்கான ஆதரவு சேர்க்கப்பட்டது.
  • Apache Arrow ஐப் பயன்படுத்தி தரவு பரிமாற்றத்திற்கான ADBC ​​(Arrow Database Connectivity) APIக்கான ஆதரவு சேர்க்கப்பட்டது.
  • ஸ்விஃப்ட் குறியீட்டுடன் ஒருங்கிணைப்பதற்கான பிணைப்பு செயல்படுத்தப்பட்டது.
  • பிரிவு ("/") ஆபரேட்டரின் நடத்தை மாற்றப்பட்டது, இது இப்போது முழு எண் செயல்பாடுகளுக்கு பதிலாக இயல்புநிலையாக மிதக்கும் புள்ளி கணக்கீடுகளை செய்கிறது. முழு எண் பிரிவுக்காக ஒரு புதிய ஆபரேட்டர் "//" முன்மொழியப்பட்டது. "SET integer_division=true;" ஐ அமைப்பதன் மூலம் பழைய நடத்தை திரும்பப் பெறலாம்.
  • வரிசைப்படுத்தும் போது பூஜ்ய பதிவுகளுக்கான கணக்கு முறை "NULLS FIRST" இலிருந்து "NULLS LAST" ஆக மாற்றப்பட்டுள்ளது, அதாவது. NULL மதிப்புகள் இப்போது பட்டியலின் தொடக்கத்திற்குப் பதிலாக இறுதியில் காட்டப்படும். பழைய நடத்தையை "SET default_null_order='nulls_first';" அமைப்பதன் மூலம் மீட்டெடுக்கலாம்.

கூடுதலாக, பேஸ்புக் உருவாக்கிய CG/SQL திட்டம், SQLite உடன் சேமிக்கப்பட்ட நடைமுறைகளைப் பயன்படுத்துவதற்கான குறியீடு ஜெனரேட்டரை வழங்குகிறது. CG/SQL ஆனது T-SQL (Transact-SQL) இன் சிறப்பு பேச்சுவழக்கில் சேமிக்கப்பட்ட நடைமுறைகளை வடிவமைக்க உங்களை அனுமதிக்கிறது, இது நிலையான C நூலகத்தின் செயல்பாடுகளை அழைக்கவும் SQLite இல் தரவை அணுகவும் உங்களை அனுமதிக்கிறது. உருவாக்கப்பட்ட சேமிக்கப்பட்ட நடைமுறைகள் குறிப்பிட்ட செயல்களைச் செய்ய மற்றும் சிக்கலான வினவல்களைச் செயல்படுத்த SQLite C API ஐப் பயன்படுத்தும் C குறியீட்டில் தொகுக்கப்படுகின்றன. தொகுக்கப்பட்ட சேமிக்கப்பட்ட நடைமுறைகள் C, Java மற்றும் Objective-C நிரல்களுடன் இணைக்கப்படலாம். திட்டக் குறியீடு C இல் எழுதப்பட்டு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்