DuckDB 0.6.0 வெளியிடப்பட்டது, பகுப்பாய்வு வினவல்களுக்கான SQLite விருப்பம்

DuckDB 0.6.0 DBMS இன் வெளியீடு கிடைக்கிறது, SQLite இன் சுருக்கத்தன்மை, உட்பொதிக்கப்பட்ட நூலகத்தின் வடிவத்தில் இணைக்கும் திறன், தரவுத்தளத்தை ஒரு கோப்பில் சேமித்தல் மற்றும் ஒரு வசதியான CLI இடைமுகம், கருவிகள் மற்றும் செயல்படுத்துவதற்கான மேம்படுத்தல்கள் போன்றவற்றை ஒருங்கிணைக்கிறது. சேமிக்கப்பட்ட தரவின் குறிப்பிடத்தக்க பகுதியை உள்ளடக்கிய பகுப்பாய்வு வினவல்கள், எடுத்துக்காட்டாக, அட்டவணைகளின் முழு உள்ளடக்கத்தையும் ஒருங்கிணைக்கிறது அல்லது பல பெரிய அட்டவணைகளை ஒன்றிணைக்கிறது. திட்டக் குறியீடு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது. சேமிப்பக வடிவம் இன்னும் நிலைப்படுத்தப்படாததாலும், பதிப்பிலிருந்து பதிப்புக்கு மாறுவதாலும், வளர்ச்சி இன்னும் சோதனை வெளியீடுகளை உருவாக்கும் கட்டத்தில் உள்ளது.

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

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

புதிய வெளியீட்டில் உள்ள மாற்றங்களில்:

  • சேமிப்பக வடிவமைப்பை மேம்படுத்தும் பணி தொடர்ந்தது. ஒரு நம்பிக்கையான வட்டு எழுதும் முறை செயல்படுத்தப்பட்டது, இதில் ஒரு பரிவர்த்தனையில் பெரிய அளவிலான தரவை ஏற்றும் போது, ​​COMMIT கட்டளையுடன் பரிவர்த்தனை உறுதிப்படுத்தப்படும் வரை காத்திருக்காமல், ஸ்ட்ரீமிங் பயன்முறையில் தரவுத்தளத்திலிருந்து ஒரு கோப்பில் தரவு சுருக்கப்பட்டு எழுதப்படுகிறது. . ஒரு COMMIT கட்டளை பெறப்பட்டால், தரவு ஏற்கனவே வட்டில் எழுதப்பட்டுள்ளது, மேலும் ஒரு ROLLBACK செயல்படுத்தப்படும் போது, ​​அது நிராகரிக்கப்படும். முன்னதாக, தரவு ஆரம்பத்தில் முழுமையாக நினைவகத்தில் சேமிக்கப்பட்டது, மற்றும் உறுதியளிக்கப்பட்ட போது, ​​அது வட்டில் சேமிக்கப்பட்டது.
  • தனித்தனி அட்டவணையில் தரவை இணையாக ஏற்றுவதற்கான ஆதரவு சேர்க்கப்பட்டது, இது மல்டி-கோர் கணினிகளில் ஏற்றுதல் வேகத்தை கணிசமாக அதிகரிக்க உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, முந்தைய வெளியீட்டில், 150-கோர் CPU இல் 10 மில்லியன் வரிசைகள் கொண்ட தரவுத்தளத்தை ஏற்றுவதற்கு 91 வினாடிகள் ஆனது, ஆனால் புதிய பதிப்பில் இந்த செயல்பாடு 17 வினாடிகளில் நிறைவடைகிறது. இரண்டு இணையான ஏற்றுதல் முறைகள் உள்ளன - பதிவுகளின் வரிசையைப் பாதுகாத்தல் மற்றும் ஒழுங்கைப் பாதுகாக்காமல்.
  • தரவு சுருக்கத்திற்கு, FSST (ஃபாஸ்ட் ஸ்டேடிக் சிம்பல் டேபிள்) அல்காரிதம் பயன்படுத்தப்படுகிறது, இது வழக்கமான போட்டிகளின் பொதுவான அகராதியைப் பயன்படுத்தி சரங்களுக்குள் தரவை பேக் செய்ய உங்களை அனுமதிக்கிறது. புதிய வழிமுறையின் பயன்பாடு சோதனை தரவுத்தளத்தின் அளவை 761MB இலிருந்து 251MB ஆகக் குறைக்க முடிந்தது.
  • மிதக்கும் புள்ளி எண்களை (இரட்டை மற்றும் மிதவை) சுருக்க சிம்ப் மற்றும் பட்டாஸ் வழிமுறைகள் முன்மொழியப்பட்டுள்ளன. முந்தைய கொரில்லாஸ் அல்காரிதத்துடன் ஒப்பிடும்போது, ​​சிம்ப் அதிக அளவிலான சுருக்கத்தையும், வேகமான டிகம்ப்ரஷனையும் வழங்குகிறது. Patas அல்காரிதம் சுருக்க விகிதத்தில் சிம்பை விட பின்தங்கியுள்ளது, ஆனால் டிகம்ப்ரஷன் வேகத்தில் மிக வேகமாக உள்ளது, இது சுருக்கப்படாத தரவைப் படிப்பதில் இருந்து வேறுபட்டதல்ல.
  • CSV கோப்புகளிலிருந்து தரவை பல இணையான ஸ்ட்ரீம்களில் ஏற்றுவதற்கான சோதனைத் திறன் சேர்க்கப்பட்டது (SET experimental_parallel_csv=true), இது பெரிய CSV கோப்புகளை ஏற்றுவதற்கு எடுக்கும் நேரத்தை கணிசமாகக் குறைக்கிறது. எடுத்துக்காட்டாக, இந்த விருப்பம் இயக்கப்பட்டபோது, ​​720 MB CSV கோப்பின் பதிவிறக்க நேரம் 3.5 இலிருந்து 0.6 வினாடிகளாக குறைக்கப்பட்டது.
  • குறியீட்டு உருவாக்கம் மற்றும் மேலாண்மை செயல்பாடுகளின் இணையான செயல்பாட்டின் சாத்தியம் செயல்படுத்தப்பட்டுள்ளது. எடுத்துக்காட்டாக, 16 மில்லியன் பதிவுகள் கொண்ட நெடுவரிசையில் CREATE INDEX செயல்பாடு 5.92 இலிருந்து 1.38 வினாடிகளாக குறைக்கப்பட்டது.
  • “COUNT(DISTINCT col)” என்ற சொற்றொடரைக் கொண்ட வினவல்களில் ஒருங்கிணைப்புச் செயல்பாடுகளின் இணைப்படுத்தல் இயக்கப்பட்டது.
  • SQL UNION வகைக்கான ஆதரவைச் சேர்த்துள்ளது, இது பல வகைகளை ஒரு உறுப்புடன் பிணைக்க அனுமதிக்கிறது (எடுத்துக்காட்டாக, “UNION(num INT, பிழை VARCHAR))”).
  • SQL ஆனது "SELECT" என்பதற்கு பதிலாக "FROM" என்ற வார்த்தையுடன் தொடங்கும் வினவல்களை உருவாக்கும் திறனை வழங்குகிறது. இந்த வழக்கில், வினவல் "SELECT *" உடன் தொடங்கும் என்று கருதப்படுகிறது.
  • SQL ஆனது COLUMNS வெளிப்பாட்டிற்கான ஆதரவைச் சேர்த்துள்ளது, இது வெளிப்பாட்டை நகலெடுக்காமல் பல நெடுவரிசைகளில் செயல்பாட்டைச் செய்ய உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, “obs இலிருந்து MIN(columns(*)) ஐ தேர்ந்தெடு;” ஒப்ஸ் டேபிளில் உள்ள ஒவ்வொரு நெடுவரிசைக்கும் MIN செயல்பாட்டைச் செயல்படுத்தும், மேலும் "Obs இலிருந்து நெடுவரிசைகளைத் ('val[0-9]+') தேர்ந்தெடுக்கவும்;" "val" மற்றும் எண்களைக் கொண்ட பெயர் கொண்ட நெடுவரிசைகளுக்கு.
  • பட்டியல்களில் செயல்பாடுகளுக்கான ஆதரவு சேர்க்கப்பட்டது, எடுத்துக்காட்டாக, “தேர்வு [x + 1 for x in [1, 2, 3]] AS l;”.
  • நினைவக நுகர்வு உகந்ததாக உள்ளது. இயல்பாக, லினக்ஸ் இயங்குதளமானது நினைவக நிர்வாகத்திற்காக ஜெமல்லோக் நூலகத்தைப் பயன்படுத்துகிறது. நினைவகம் குறைவாக இருக்கும் போது ஹாஷ் இணைத்தல் செயல்பாடுகளின் செயல்திறன் கணிசமாக மேம்படுத்தப்பட்டது.
  • கட்டளை வரி இடைமுகத்தில் “.mode duckbox” வெளியீட்டு பயன்முறை சேர்க்கப்பட்டது, இது முனைய சாளரத்தின் அகலத்தை கணக்கில் எடுத்துக்கொண்டு நடுத்தர நெடுவரிசைகளை நிராகரிக்கிறது (“SELECT * போன்ற அதிக எண்ணிக்கையிலான நெடுவரிசைகளைக் கொண்ட வினவல்களின் முடிவுகளை விரைவாகக் காண்பதற்கு ஏற்றது. tbl”, இது சாதாரண பயன்முறையில் பல வரிகளில் பரவியுள்ளது). “.maxrows X” அளவுருவைப் பயன்படுத்தி, காட்டப்படும் வரிசைகளின் எண்ணிக்கையை நீங்கள் கூடுதலாகக் கட்டுப்படுத்தலாம்.
  • CLI ஆனது சூழலை கணக்கில் கொண்டு உள்ளீட்டை தானாக நிறைவு செய்கிறது (முக்கிய வார்த்தைகள், அட்டவணை பெயர்கள், செயல்பாடுகள், நெடுவரிசை பெயர்கள் மற்றும் கோப்பு பெயர்களின் உள்ளீடு முடிந்தது).
  • CLI இயல்பிலேயே வினவல் முன்னேற்றக் குறிகாட்டியை இயக்கியுள்ளது.

ஆதாரம்: opennet.ru

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