தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

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

வினவல் மொழிகளைத் தெரிந்துகொள்வதும் அவற்றைப் பயன்படுத்துவதும் ஏன் முக்கியம்? அதன் மையத்தில், டேட்டா சயின்ஸ் வேலையின் பல முக்கியமான கட்டங்களைக் கொண்டுள்ளது, மேலும் முதல் மற்றும் மிக முக்கியமானது (அது இல்லாமல், நிச்சயமாக எதுவும் இயங்காது!) தரவைப் பெறுவது அல்லது பிரித்தெடுப்பது. பெரும்பாலும், தரவு ஏதோ ஒரு வடிவத்தில் எங்காவது அமர்ந்திருக்கிறது மற்றும் அங்கிருந்து "மீட்டெடுக்க" வேண்டும். 

வினவல் மொழிகள் இந்தத் தரவைப் பிரித்தெடுக்க உங்களை அனுமதிக்கின்றன! எனக்கு பயனுள்ளதாக இருந்த அந்த வினவல் மொழிகளைப் பற்றி இன்று நான் உங்களுக்குச் சொல்வேன், மேலும் எங்கு, எப்படி சரியாகப் படிக்க வேண்டும் என்பதை நான் உங்களுக்குச் சொல்வேன்.

தரவு வினவல் வகைகளில் மூன்று முக்கிய தொகுதிகள் இருக்கும், அவற்றை இந்த கட்டுரையில் விவாதிப்போம்:

  • தொடர்புடைய இயற்கணிதம் அல்லது SQL போன்ற வினவல் மொழியைப் பற்றி பேசும்போது பொதுவாக புரிந்து கொள்ளப்படுவது "நிலையான" வினவல் மொழிகள்.
  • ஸ்கிரிப்டிங் வினவல் மொழிகள்: எடுத்துக்காட்டாக, பைதான் விஷயங்கள் பாண்டாக்கள், நம்பி அல்லது ஷெல் ஸ்கிரிப்டிங்.
  • அறிவு வரைபடங்கள் மற்றும் வரைபட தரவுத்தளங்களுக்கான மொழிகளை வினவவும்.

இங்கு எழுதப்பட்ட அனைத்தும் தனிப்பட்ட அனுபவம், பயனுள்ளது, சூழ்நிலைகள் மற்றும் "அது ஏன் தேவைப்பட்டது" என்ற விளக்கத்துடன் - இதே போன்ற சூழ்நிலைகள் உங்களுக்கு எப்படி வரலாம் என்பதை அனைவரும் முயற்சி செய்யலாம் மற்றும் இந்த மொழிகளைப் புரிந்துகொள்வதன் மூலம் முன்கூட்டியே தயாராக முயற்சி செய்யலாம். நீங்கள் ஒரு திட்டத்தில் (அவசரமாக) விண்ணப்பிக்க வேண்டும் அல்லது அவை தேவைப்படும் திட்டத்திற்குச் செல்ல வேண்டும்.

"நிலையான" வினவல் மொழிகள்

நிலையான வினவல் மொழிகள் துல்லியமாக நாம் வினவல்களைப் பற்றி பேசும்போது அவற்றைப் பற்றி பொதுவாக சிந்திக்கிறோம்.

தொடர்புடைய இயற்கணிதம்

இன்று ஏன் ரிலேஷனல் அல்ஜீப்ரா தேவை? வினவல் மொழிகள் ஏன் ஒரு குறிப்பிட்ட வழியில் கட்டமைக்கப்பட்டுள்ளன என்பதைப் பற்றி நன்கு புரிந்துகொள்வதற்கும் அவற்றை உணர்வுபூர்வமாகப் பயன்படுத்துவதற்கும், அவற்றின் அடிப்படையை நீங்கள் புரிந்து கொள்ள வேண்டும்.

ரிலேஷனல் அல்ஜீப்ரா என்றால் என்ன?

முறையான வரையறை பின்வருமாறு: தொடர்புடைய இயற்கணிதம் என்பது ஒரு தொடர்புடைய தரவு மாதிரியில் உள்ள உறவுகளின் மீது செயல்படும் ஒரு மூடிய அமைப்பாகும். இதை இன்னும் கொஞ்சம் மனிதாபிமானமாகச் சொல்வதானால், இது அட்டவணையில் செயல்படும் ஒரு அமைப்பாகும், இதன் விளைவாக எப்போதும் அட்டவணை இருக்கும்.

அனைத்து தொடர்புடைய செயல்பாடுகளையும் பார்க்கவும் இந்த ஹப்ரின் கட்டுரை - நீங்கள் ஏன் தெரிந்து கொள்ள வேண்டும், அது எங்கு கைக்கு வரும் என்பதை இங்கே விவரிக்கிறோம்.

ஏன்?

வினவல் மொழிகள் எதைப் பற்றியது மற்றும் குறிப்பிட்ட வினவல் மொழிகளில் வெளிப்பாடுகளுக்குப் பின்னால் என்ன செயல்பாடுகள் உள்ளன என்பதைப் புரிந்துகொள்வது பெரும்பாலும் வினவல் மொழிகளில் என்ன வேலை செய்கிறது மற்றும் எப்படி என்பதைப் பற்றிய ஆழமான புரிதலை அளிக்கிறது.

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
இருந்து எடுக்கப்பட்டது இந்த கட்டுரைகள். ஒரு செயல்பாட்டின் எடுத்துக்காட்டு: சேர், இது அட்டவணைகளை இணைக்கிறது.

படிப்புக்கான பொருட்கள்:

ஸ்டான்போர்டில் இருந்து நல்ல அறிமுகப் படிப்பு. பொதுவாக, தொடர்புடைய இயற்கணிதம் மற்றும் கோட்பாட்டில் நிறைய பொருட்கள் உள்ளன - Coursera, Udacity. ஆன்லைனில் பெரிய அளவிலான பொருள் உள்ளது, இதில் நல்லது உட்பட கல்வி படிப்புகள். எனது தனிப்பட்ட ஆலோசனை: தொடர்புடைய இயற்கணிதத்தை நீங்கள் நன்கு புரிந்து கொள்ள வேண்டும் - இது அடிப்படைகளின் அடிப்படை.

எஸ்கியூஎல்

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
இருந்து எடுக்கப்பட்டது இந்த கட்டுரை.

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

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
இருந்து எடுக்கப்பட்டது இந்த கட்டுரை.

ஏன்?

தொடர்புடைய DBMSகள்: ஆரக்கிள், போஸ்ட்கிரெஸ், SQL சர்வர் போன்றவை இன்னும் எல்லா இடங்களிலும் உள்ளன, மேலும் நீங்கள் அவர்களுடன் தொடர்புகொள்வதற்கான நம்பமுடியாத அளவிற்கு அதிக வாய்ப்பு உள்ளது, அதாவது நீங்கள் SQL (இது மிகவும் சாத்தியம்) படிக்க வேண்டும் அல்லது எழுத வேண்டும் ( சாத்தியமில்லை).

எதைப் படிக்க வேண்டும், படிக்க வேண்டும்

மேலே உள்ள அதே இணைப்புகளின்படி (தொடர்பு இயற்கணிதம் பற்றி), நம்பமுடியாத அளவு பொருள் உள்ளது, எடுத்துக்காட்டாக, இந்த.

மூலம், NoSQL என்றால் என்ன?

"NoSQL" என்ற சொல் முற்றிலும் தன்னிச்சையான தோற்றம் கொண்டது மற்றும் அதன் பின்னால் பொதுவாக ஏற்றுக்கொள்ளப்பட்ட வரையறை அல்லது அறிவியல் நிறுவனம் இல்லை என்பதை மீண்டும் வலியுறுத்துவது மதிப்பு. தொடர்புடைய கட்டுரை ஹப்ரில்.

உண்மையில், பல சிக்கல்களைத் தீர்க்க முழுமையான தொடர்புடைய மாதிரி தேவையில்லை என்பதை மக்கள் உணர்ந்துள்ளனர், குறிப்பாக செயல்திறன் முக்கியமானது மற்றும் சில எளிய வினவல்கள் ஒருங்கிணைப்புடன் ஆதிக்கம் செலுத்துகின்றன - அங்கு அளவீடுகளை விரைவாகக் கணக்கிட்டு அவற்றை எழுதுவது முக்கியம். தரவுத்தளம், மற்றும் பெரும்பாலான அம்சங்கள் தொடர்புடையவை தேவையற்றவை மட்டுமல்ல, தீங்கு விளைவிப்பதாகவும் மாறிவிட்டன - நமக்கு மிக முக்கியமான விஷயத்தை (சில குறிப்பிட்ட பணிகளுக்கு) கெடுத்துவிட்டால், அதை ஏன் இயல்பாக்குவது - உற்பத்தித்திறன்?

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

எடுத்துக்காட்டாக, நாங்கள் ஒரு நிபுணத்துவ அமைப்பை உருவாக்குகிறோம், மேலும் சில மெட்டா தகவல்களுடன் ஒரு குறிப்பிட்ட டொமைனில் தகவலைச் சேமிக்க விரும்புகிறோம் - எல்லாத் துறைகளும் எங்களுக்குத் தெரியாமல் இருக்கலாம் மற்றும் ஒவ்வொரு பதிவிற்கும் JSON ஐச் சேமிக்கலாம் - இது தரவை விரிவாக்குவதற்கு மிகவும் நெகிழ்வான சூழலை எங்களுக்கு வழங்குகிறது. மாதிரி மற்றும் விரைவாக மீண்டும் மீண்டும் - எனவே இந்த விஷயத்தில், NoSQL விரும்பத்தக்கதாகவும் மேலும் படிக்கக்கூடியதாகவும் இருக்கும். எடுத்துக்காட்டு உள்ளீடு (எனது திட்டங்களில் ஒன்றிலிருந்து NoSQL தேவையான இடத்தில் இருந்தது).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

நீங்கள் மேலும் படிக்கலாம் இங்கே NoSQL பற்றி.

என்ன படிக்க வேண்டும்?

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

ஸ்கிரிப்டிங் வினவல் மொழிகள்

முதலில், பொதுவாக பைத்தானுக்கும் இதற்கும் என்ன சம்பந்தம் என்று தோன்றுகிறது - இது ஒரு நிரலாக்க மொழி, கேள்விகளைப் பற்றியது அல்ல.

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

  • பாண்டாஸ் என்பது தரவு அறிவியலின் சுவிஸ் இராணுவக் கத்தியாகும்; ஒரு பெரிய அளவிலான தரவு மாற்றம், திரட்டுதல் போன்றவை இதில் நிகழ்கின்றன.
  • நம்பி - திசையன் கணக்கீடுகள், மெட்ரிக்குகள் மற்றும் நேரியல் இயற்கணிதம்.
  • Scipy - இந்த தொகுப்பில் நிறைய கணிதம் உள்ளது, குறிப்பாக புள்ளிவிவரங்கள்.
  • Jupyter lab - நிறைய ஆய்வு தரவு பகுப்பாய்வு மடிக்கணினிகளில் நன்றாக பொருந்துகிறது - தெரிந்து கொள்ள பயனுள்ளதாக இருக்கும்.
  • கோரிக்கைகள் - நெட்வொர்க்குடன் பணிபுரிதல்.
  • Pyspark தரவு பொறியாளர்கள் மத்தியில் மிகவும் பிரபலமாக உள்ளது, பெரும்பாலும் நீங்கள் இந்த அல்லது ஸ்பார்க்குடன் தொடர்பு கொள்ள வேண்டியிருக்கும், அவர்களின் புகழ் காரணமாக.
  • *செலினியம் - தளங்கள் மற்றும் ஆதாரங்களில் இருந்து தரவை சேகரிக்க மிகவும் பயனுள்ளதாக இருக்கும், சில நேரங்களில் தரவைப் பெற வேறு வழி இல்லை.

எனது முக்கிய ஆலோசனை: பைத்தானைக் கற்றுக்கொள்ளுங்கள்!

பாண்டாக்கள்

பின்வரும் குறியீட்டை உதாரணமாக எடுத்துக் கொள்வோம்:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

அடிப்படையில், குறியீடு கிளாசிக் SQL வடிவத்துடன் பொருந்துவதைக் காண்கிறோம்.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name

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

பொதுவாக, பைஸ்பார்க்கில் ஒரு வினவல் மொழி மூலம் இதேபோன்ற தரவு மாற்றத்தை நாம் காண்கிறோம்:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

எங்கே, எதைப் படிக்க வேண்டும்

பொதுவாக பைத்தானில் ஒரு பிரச்சனை இல்லை படிப்பதற்கான பொருட்களைத் தேடுங்கள். ஆன்லைனில் ஏராளமான பயிற்சிகள் உள்ளன பாண்டாக்கள், பைஸ்பார்க் மற்றும் படிப்புகள் ஸ்பார்க் (மற்றும் தானே DS) ஒட்டுமொத்தமாக, இங்குள்ள உள்ளடக்கம் கூகிளிங்கிற்கு சிறந்தது, மேலும் நான் கவனம் செலுத்த ஒரு தொகுப்பைத் தேர்ந்தெடுக்க வேண்டும் என்றால், அது நிச்சயமாக பாண்டாக்களாக இருக்கும். DS+Python பொருட்களின் கலவையைப் பற்றியும் நிறைய.

ஷெல் ஒரு வினவல் மொழியாக

நான் பணிபுரிந்த சில தரவு செயலாக்கம் மற்றும் பகுப்பாய்வு திட்டங்கள், உண்மையில், பைதான், ஜாவா மற்றும் ஷெல் கட்டளைகளில் குறியீட்டை அழைக்கும் ஷெல் ஸ்கிரிப்டுகள். எனவே, பொதுவாக, bash/zsh/etc இல் உள்ள பைப்லைன்களை ஒருவித உயர்-நிலை வினவலாகக் கருதலாம் (நிச்சயமாக, நீங்கள் அதில் சுழல்களைச் செய்யலாம், ஆனால் இது ஷெல் மொழிகளில் DS குறியீட்டிற்கு பொதுவானதல்ல), கொடுக்கலாம். ஒரு எளிய எடுத்துக்காட்டு - நான் விக்கிடேட்டாவின் QID மேப்பிங் மற்றும் ரஷ்ய மற்றும் ஆங்கில விக்கிகளுக்கான முழு இணைப்புகளையும் செய்ய வேண்டியிருந்தது, இதற்காக நான் பாஷில் உள்ள கட்டளைகளிலிருந்து ஒரு எளிய கோரிக்கையை எழுதினேன் மற்றும் வெளியீட்டிற்காக பைத்தானில் ஒரு எளிய ஸ்கிரிப்டை எழுதினேன். இவ்வாறு ஒன்றாக இணைக்கவும்:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

எங்கே

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

உண்மையில், தேவையான மேப்பிங்கை உருவாக்கிய முழு பைப்லைனும் இதுதான்; நாம் பார்க்கிறபடி, அனைத்தும் ஓட்டம் முறையில் வேலை செய்தன:

  • pv filepath - கோப்பின் அளவின் அடிப்படையில் ஒரு முன்னேற்றப் பட்டியைக் கொடுக்கிறது மற்றும் அதன் உள்ளடக்கங்களை அனுப்புகிறது
  • unpigz -c காப்பகத்தின் ஒரு பகுதியை படித்து jq க்கு கொடுத்தார்
  • jq விசையுடன் - ஸ்ட்ரீம் உடனடியாக முடிவை உருவாக்கி, பைத்தானில் உள்ள பிந்தைய செயலிக்கு (முதல் உதாரணத்தைப் போலவே) அனுப்பியது.
  • உள்நாட்டில், பிந்தைய செயலி என்பது வெளியீட்டை வடிவமைக்கும் ஒரு எளிய நிலை இயந்திரமாகும் 

மொத்தத்தில், ஒரு சிக்கலான பைப்லைன் பெரிய தரவுகளில் (0.5TB) ஓட்டம் பயன்முறையில் வேலை செய்கிறது, குறிப்பிடத்தக்க ஆதாரங்கள் இல்லாமல் மற்றும் ஒரு எளிய பைப்லைன் மற்றும் இரண்டு கருவிகளால் ஆனது.

மற்றொரு முக்கியமான உதவிக்குறிப்பு: முனையத்தில் நன்றாகவும் திறம்படவும் வேலை செய்யவும் மற்றும் bash/zsh/etc போன்றவற்றை எழுதவும் முடியும்.

அது எங்கே பயனுள்ளதாக இருக்கும்? ஆம், கிட்டத்தட்ட எல்லா இடங்களிலும் - மீண்டும், இணையத்தில் படிக்க நிறைய பொருட்கள் உள்ளன. குறிப்பாக, இங்கே இந்த எனது முந்தைய கட்டுரை.

ஆர் ஸ்கிரிப்டிங்

மீண்டும், வாசகர் கூச்சலிடலாம் - சரி, இது முழு நிரலாக்க மொழி! நிச்சயமாக, அவர் சரியாக இருப்பார். இருப்பினும், நான் வழக்கமாக R ஐ இதுபோன்ற சூழலில் சந்தித்தேன், உண்மையில் அது ஒரு வினவல் மொழிக்கு மிகவும் ஒத்ததாக இருந்தது.

R என்பது ஒரு புள்ளியியல் கணினி சூழல் மற்றும் நிலையான கணினி மற்றும் காட்சிப்படுத்தலுக்கான மொழி (இதன்படி தி).

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
எடுக்கப்பட்டது இங்கிருந்து. மூலம், நான் அதை பரிந்துரைக்கிறேன், நல்ல பொருள்.

ஒரு தரவு விஞ்ஞானி R ஐ ஏன் தெரிந்து கொள்ள வேண்டும்? குறைந்த பட்சம், R இல் தரவுகளை பகுப்பாய்வு செய்யும் IT அல்லாதவர்களின் ஒரு பெரிய அடுக்கு இருப்பதால், பின்வரும் இடங்களில் நான் அதைக் கண்டேன்:

  • மருந்து துறை.
  • உயிரியலாளர்கள்.
  • நிதித்துறை.
  • புள்ளிவிவரங்களைக் கையாளும் முற்றிலும் கணிதக் கல்வி கொண்டவர்கள்.
  • சிறப்பு புள்ளியியல் மாதிரிகள் மற்றும் இயந்திர கற்றல் மாதிரிகள் (அவை பெரும்பாலும் ஆசிரியரின் பதிப்பில் R தொகுப்பாக மட்டுமே காணப்படுகின்றன).

உண்மையில் அது ஏன் வினவல் மொழி? இது அடிக்கடி காணப்படும் வடிவத்தில், தரவுகளைப் படிப்பது மற்றும் வினவல் (மாதிரி) அளவுருக்களை சரிசெய்தல், அத்துடன் ggplot2 போன்ற தொகுப்புகளில் தரவைக் காட்சிப்படுத்துவது உள்ளிட்ட மாதிரியை உருவாக்குவதற்கான கோரிக்கை - இதுவும் வினவல்களை எழுதும் ஒரு வடிவமாகும். .

காட்சிப்படுத்தலுக்கான எடுத்துக்காட்டு வினவல்கள்

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

பொதுவாக, R இலிருந்து பல யோசனைகள் டேட்டாஃப்ரேம்கள் மற்றும் டேட்டா வெக்டரைசேஷன் போன்ற பாண்டாக்கள், நம்பி அல்லது ஸ்கிப்பி போன்ற பைதான் தொகுப்புகளுக்கு இடம்பெயர்ந்துள்ளன - எனவே பொதுவாக R இல் உள்ள பல விஷயங்கள் உங்களுக்குத் தெரிந்ததாகவும் வசதியாகவும் தோன்றும்.

படிக்க பல ஆதாரங்கள் உள்ளன, எடுத்துக்காட்டாக, இந்த.

அறிவு வரைபடங்கள்

இங்கே எனக்கு சற்று அசாதாரண அனுபவம் உள்ளது, ஏனென்றால் நான் அடிக்கடி அறிவு வரைபடங்கள் மற்றும் வரைபடங்களுக்கான வினவல் மொழிகளுடன் வேலை செய்ய வேண்டும். எனவே, இந்த பகுதி இன்னும் கொஞ்சம் கவர்ச்சியானதாக இருப்பதால், அடிப்படைகளை சுருக்கமாகப் பார்ப்போம்.

கிளாசிக்கல் ரிலேஷனல் தரவுத்தளங்களில் எங்களிடம் ஒரு நிலையான ஸ்கீமா உள்ளது, ஆனால் இங்கே ஸ்கீமா நெகிழ்வானது, ஒவ்வொரு முன்னறிவிப்பும் உண்மையில் ஒரு "நெடுவரிசை" மற்றும் இன்னும் அதிகமாகும்.

நீங்கள் ஒரு நபரை மாடலிங் செய்கிறீர்கள் மற்றும் முக்கிய விஷயங்களை விவரிக்க விரும்புகிறீர்கள் என்று கற்பனை செய்து பாருங்கள், எடுத்துக்காட்டாக, ஒரு குறிப்பிட்ட நபரான டக்ளஸ் ஆடம்ஸை எடுத்து, இந்த விளக்கத்தை அடிப்படையாகப் பயன்படுத்துவோம்.

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
www.wikidata.org/wiki/Q42

நாம் ஒரு தொடர்புடைய தரவுத்தளத்தைப் பயன்படுத்தினால், அதிக எண்ணிக்கையிலான நெடுவரிசைகளைக் கொண்ட ஒரு பெரிய அட்டவணை அல்லது அட்டவணையை உருவாக்க வேண்டும், அவற்றில் பெரும்பாலானவை NULL அல்லது சில இயல்புநிலை தவறான மதிப்புகளால் நிரப்பப்படும், எடுத்துக்காட்டாக, நம்மில் பலருக்கு இது சாத்தியமில்லை கொரிய தேசிய நூலகத்தில் உள்ள நுழைவு - நிச்சயமாக, அவற்றை தனித்தனி அட்டவணையில் வைக்கலாம், ஆனால் இது இறுதியில் ஒரு நிலையான தொடர்புடைய ஒன்றைப் பயன்படுத்தி முன்கணிப்புகளுடன் ஒரு நெகிழ்வான தருக்க சுற்று மாதிரியை உருவாக்கும் முயற்சியாக இருக்கும்.

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
எனவே அனைத்து தரவுகளும் ஒரு வரைபடமாக அல்லது பைனரி மற்றும் யூனரி பூலியன் வெளிப்பாடுகளாக சேமிக்கப்படும் என்று கற்பனை செய்து பாருங்கள்.

இதை நீங்கள் எங்கே சந்திக்க முடியும்? முதலில், உடன் பணிபுரிதல் தரவு விக்கி, மற்றும் ஏதேனும் வரைபட தரவுத்தளங்கள் அல்லது இணைக்கப்பட்ட தரவுகளுடன்.

நான் பயன்படுத்திய மற்றும் பணிபுரிந்த முக்கிய வினவல் மொழிகள் பின்வருமாறு.

பிரகாசம்

விக்கி:
SPARQL (சுழல்நிலை சுருக்கம் இருந்து இங்கி. SPARQL புரோட்டோகால் மற்றும் RDF வினவல் மொழி) - தரவு வினவல் மொழி, மாதிரியால் குறிப்பிடப்படுகிறது ஆர்டிஎஃப்மேலும் நெறிமுறை இந்த கோரிக்கைகளை அனுப்ப மற்றும் அவர்களுக்கு பதிலளிக்க. SPARQL ஒரு பரிந்துரை W3C கூட்டமைப்பு மற்றும் தொழில்நுட்பங்களில் ஒன்று சொற்பொருள் வலை.

ஆனால் உண்மையில் இது தர்க்கரீதியான யூனரி மற்றும் பைனரி முன்னறிவிப்புகளுக்கான வினவல் மொழியாகும். பூலியன் வெளிப்பாட்டில் என்ன நிலையானது மற்றும் எது இல்லாதது (மிகவும் எளிமைப்படுத்தப்பட்டது) என்பதை நீங்கள் நிபந்தனையுடன் குறிப்பிடுகிறீர்கள்.

SPARQL வினவல்கள் செயல்படுத்தப்படும் RDF (வள விளக்கக் கட்டமைப்பு) அடிப்படையானது மூன்று மடங்கு ஆகும். object, predicate, subject - மற்றும் வினவல் ஆவியில் குறிப்பிடப்பட்ட கட்டுப்பாடுகளின்படி தேவையான மும்மடங்குகளைத் தேர்ந்தெடுக்கிறது: p_55(X, q_33) உண்மையாக இருக்கும் Xஐக் கண்டறியவும் - நிச்சயமாக, p_55 என்பது ஐடி 55 உடன் சில வகையான தொடர்பு மற்றும் q_33 என்பது ஒரு ஐடி 33 உடன் பொருள் (இங்கே மற்றும் முழு கதை, மீண்டும் அனைத்து வகையான விவரங்களையும் தவிர்க்கிறது).

தரவு விளக்கக்காட்சியின் எடுத்துக்காட்டு:

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு
இங்குள்ள நாடுகளுடன் படங்கள் மற்றும் எடுத்துக்காட்டுகள் இங்கிருந்து.

அடிப்படை வினவல் உதாரணம்

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

உண்மையில், முன்னறிவிப்புக்கான ?நாட்டு மாறியின் மதிப்பைக் கண்டறிய விரும்புகிறோம்
member_of, member_of(?country,q458) மற்றும் q458 என்பது ஐரோப்பிய ஒன்றியத்தின் ஐடி என்பது உண்மை.

பைதான் எஞ்சினுக்குள் உண்மையான SPARQL வினவலின் உதாரணம்:

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

பொதுவாக, நான் SPARQL ஐ எழுதுவதற்குப் பதிலாகப் படிக்க வேண்டியிருந்தது - அந்தச் சூழ்நிலையில், தரவு எவ்வாறு மீட்டெடுக்கப்படுகிறது என்பதைப் புரிந்துகொள்வதற்கு குறைந்தபட்சம் ஒரு அடிப்படை மட்டத்திலாவது மொழியைப் புரிந்துகொள்வது பயனுள்ள திறமையாக இருக்கும். 

ஆன்லைனில் படிக்க நிறைய விஷயங்கள் உள்ளன: எடுத்துக்காட்டாக, இங்கே இந்த и இந்த. நான் வழக்கமாக குறிப்பிட்ட வடிவமைப்புகளையும் எடுத்துக்காட்டுகளையும் கூகிள் செய்கிறேன், இப்போதைக்கு அது போதும்.

தருக்க வினவல் மொழிகள்

எனது கட்டுரையில் நீங்கள் தலைப்பில் மேலும் படிக்கலாம் இங்கே. வினவல்களை எழுதுவதற்கு தருக்க மொழிகள் ஏன் மிகவும் பொருத்தமானவை என்பதை இங்கே சுருக்கமாக ஆராய்வோம். அடிப்படையில், RDF என்பது p(X) மற்றும் h(X,Y) வடிவத்தின் தருக்க அறிக்கைகளின் தொகுப்பாகும், மேலும் தருக்க வினவல் பின்வரும் படிவத்தைக் கொண்டுள்ளது:

output(X) :- country(X), member_of(X,“EU”).

இங்கே நாம் ஒரு புதிய முன்கணிப்பு வெளியீட்டை உருவாக்குவது பற்றி பேசுகிறோம்/1 (/1 என்றால் unary), X க்கு நாடு(X) - அதாவது X என்பது ஒரு நாடு மற்றும் உறுப்பினர்_of(X,"EU ").

அதாவது, இந்த விஷயத்தில், தரவு மற்றும் விதிகள் இரண்டும் ஒரே மாதிரியாக வழங்கப்படுகின்றன, இது மிகவும் எளிதாகவும் நன்றாகவும் மாதிரி சிக்கல்களை உருவாக்குகிறது.

நீங்கள் தொழில்துறையில் எங்கு சந்தித்தீர்கள்?: அத்தகைய மொழியில் வினவல்களை எழுதும் நிறுவனத்துடனான ஒரு பெரிய திட்டம், அதே போல் அமைப்பின் மையத்தில் உள்ள தற்போதைய திட்டம் - இது மிகவும் கவர்ச்சியான விஷயம் என்று தோன்றுகிறது, ஆனால் சில நேரங்களில் அது நடக்கும்.

தர்க்க மொழி செயலாக்க விக்கிடேட்டாவில் உள்ள குறியீடு துண்டின் எடுத்துக்காட்டு:

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

பொருட்கள்: நவீன தருக்க நிரலாக்க மொழிக்கான இரண்டு இணைப்புகளை இங்கே தருகிறேன் பதில் தொகுப்பு நிரலாக்கம் - அதைப் படிக்க பரிந்துரைக்கிறேன்:

தரவு விஞ்ஞானியின் குறிப்புகள்: தரவு வினவல் மொழிகளின் தனிப்பயனாக்கப்பட்ட ஆய்வு

ஆதாரம்: www.habr.com

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