போஸ்ட்கிரெஸ் கோலாங்

Postkires Kolan



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

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

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







இந்த டுடோரியல் போஸ்ட்கிரெஸ்க்யூஎல் சேவையகத்தை Go பயன்பாட்டுடன் எவ்வாறு கட்டமைப்பது மற்றும் இணைப்பது என்பதைக் கற்றுக்கொடுக்கிறது.



தேவைகள்:

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



PostgreSQL தரவுத்தளம் - நீங்கள் PostgreSQL ஐ நிறுவியிருக்க வேண்டும். நீங்கள் அதை நேரடியாக உங்கள் கணினியில் நிறுவலாம் அல்லது மிகவும் நேரடியான அமைப்பிற்கு டோக்கர் கொள்கலனைப் பயன்படுத்தலாம்.





மேம்பாட்டு கருவிகள் - விஷுவல் ஸ்டுடியோ கோட், கோலேண்ட் போன்றவற்றை Go ஐ ஆதரிக்கும் ஒரு ஒருங்கிணைந்த மேம்பாட்டு சூழல் (IDE).

SQL மற்றும் Go பற்றிய அடிப்படை அறிவு – PostgreSQL தரவுத்தளத்துடன் தொடர்பு கொள்ள, நீங்கள் SQL மற்றும் நீங்கள் மேற்கொள்ள வேண்டிய பல்வேறு வினவல்களைப் புரிந்து கொள்ள வேண்டும். கோ மொழியைப் பற்றிய அடிப்படை புரிதலும் உங்களுக்குத் தேவை.



கொடுக்கப்பட்ட தேவைகள் பூர்த்தி செய்யப்பட்டால், நாம் பின்வரும் படிகளுக்கு செல்லலாம்.

திட்ட அமைப்பு

எங்கள் திட்ட அடைவு கட்டமைப்பை அமைப்பதன் மூலம் தொடங்குவோம். திட்ட மூலக் குறியீட்டைச் சேமிக்க வேண்டிய முக்கிய கோப்பகத்தை உருவாக்கவும்.

$ mkdir கோலாங்_போஸ்ட்கிரெஸ்

கோப்பகத்திற்குள் சென்று புதிய Go தொகுதியை துவக்கவும்.

$ சிடி கோலாங்_போஸ்ட்கிரெஸ் && கோ mod init main

தேவையான இயக்கிகளை நிறுவவும்

PostgreSQL தரவுத்தளத்துடன் தொடர்பு கொள்ள, Go நிரலாக்க மொழிக்கான PostgreSQL இயக்கி தேவை.

இந்த டுடோரியலுக்கு, PostgreSQL தரவுத்தளத்துடன் பணிபுரிய பல்வேறு அம்சங்களை வழங்கும் pq இயக்கியைப் பயன்படுத்துகிறோம்.

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

github.com ஐப் பெறவும் / லிப் / pq

ஒரு தரவுத்தளத்தை உருவாக்கவும்

அடுத்த படியாக ஒரு புதிய PostgreSQL தரவுத்தளத்தை உருவாக்க வேண்டும். மீண்டும், PostgreSQL ஷெல்லில் இதைச் செய்யலாம்.

$ psql -IN postgres

இந்த கட்டளை postgres இன் கடவுச்சொல்லை கேட்கும். உள்நுழைந்ததும், புதிய தரவுத்தளத்தைத் தொடங்க “தரவுத்தளத்தை உருவாக்கு” ​​கட்டளையை இயக்கவும்:

postgres=# தரவுத்தள கோலாங்கை உருவாக்கவும்;
தரவுத்தளத்தை உருவாக்கவும்

கொடுக்கப்பட்ட கட்டளை 'கோலாங்' எனப்படும் புதிய தரவுத்தளத்தை உருவாக்குகிறது. தரவுத்தள பெயரை நீங்கள் விரும்பிய பெயருடன் மாற்றிக்கொள்ள தயங்க வேண்டாம்.

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

postgres=# \c கோலாங்;
நீங்கள் இப்போது 'golang' தரவுத்தளத்துடன் பயனர் 'postgres' ஆக இணைக்கப்பட்டுள்ளீர்கள்.

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

டேபிள் db_clients (
ஐடி சீரியல் பிரைமரி கீ,
பெயர் VARCHAR(100) NULL அல்ல,
அமர்வு_நேரம் TIMESTAMP பூஜ்யமாக இல்லை,
number_of_queries INT DEFAULT 0,
Active_state BOOLEAN DEFAULT FALSE
);

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

PostgreSQL உடன் Go பயன்பாட்டை இணைக்கவும்

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

உங்கள் திட்டத்தின் மூலத்தில் “main.go” கோப்பை உருவாக்குவதன் மூலம் தொடங்கவும்:

$ தொடுதல் முக்கிய.go

அடுத்து, நீங்கள் விரும்பும் உரை திருத்தி மூலம் கோப்பைத் திருத்தவும்:

$ ஏனெனில் முக்கிய.go

“main.go” கோப்பில், பின்வருவனவற்றில் காட்டப்பட்டுள்ளபடி மூலக் குறியீட்டைச் சேர்க்கவும்:

முக்கிய தொகுப்பு

இறக்குமதி (
'தரவுத்தளம்/sql'
'fmt'
'பதிவு'

_ 'github.com/lib/pq'
)

முக்கிய செயல்பாடு ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql.Open ( 'போஸ்ட்கிரெஸ்' , connStr )
என்றால் தவறு ! = பூஜ்யம் {
பதிவு.அபாயகரமான ( தவறு )
}

என்றால் பிழை = db.Ping ( ) ; தவறு ! = பூஜ்யம் {
பதிவு.அபாயகரமான ( தவறு )
}

fmt.Println ( 'தரவுத்தளத்துடன் இணைக்கப்பட்டது' )
}

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

இணைப்பு சரத்தில் பின்வரும் அளவுருக்களை தொகுதி ஆதரிக்கிறது:

  • dbname - இணைக்க வேண்டிய தரவுத்தளத்தின் பெயர்.
  • பயனர் - உள்நுழைய வேண்டிய பயனர்.
  • கடவுச்சொல் - பயனரின் கடவுச்சொல்.
  • ஹோஸ்ட் - இணைக்க வேண்டிய ஹோஸ்ட். “/” உடன் தொடங்கும் மதிப்புகள் Unix டொமைன் சாக்கெட்டுகளுக்கானவை (இயல்புநிலை லோக்கல் ஹோஸ்ட்).
  • போர்ட் - இணைக்க வேண்டிய போர்ட் (இயல்புநிலை 5432).
  • sslmode – SSL ஐப் பயன்படுத்தலாமா வேண்டாமா (இயல்புநிலை தேவை; இது libpq க்கான இயல்புநிலை அல்ல).
  • fallback_application_name - ஒரு விண்ணப்பத்தின்_பெயர் ஒன்று வழங்கப்படவில்லை எனில் மீண்டும் வர வேண்டும்.
  • connect_timeout - வினாடிகளில் இணைப்பிற்காக அதிகபட்ச காத்திருப்பு. பூஜ்ஜியம் அல்லது குறிப்பிடப்படவில்லை என்பது காலவரையின்றி காத்திருக்க வேண்டும்.
  • sslcert - சான்றிதழ் கோப்பு இடம். கோப்பில் PEM-குறியீடு செய்யப்பட்ட தரவு இருக்க வேண்டும்.
  • sslkey - முக்கிய கோப்பு இடம். கோப்பில் PEM-குறியீடு செய்யப்பட்ட தரவு இருக்க வேண்டும்.
  • sslrootcert – ரூட் சான்றிதழ் கோப்பின் இடம். கோப்பில் PEM-குறியீடு செய்யப்பட்ட தரவு இருக்க வேண்டும்.

தேவையான உங்கள் இலக்கு இணைப்பு பண்புகளை நீங்கள் கட்டமைக்கலாம். SSL மற்றும் ஏற்றுக்கொள்ளப்பட்ட SSLMode அளவுருக்களை உள்ளமைக்க, எங்கள் டுடோரியலைச் சரிபார்க்கவும் https://linuxhint.com/postgres-sslmode .

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

ஓடு .\main.go

இணைப்பில், நீங்கள் பின்வரும் வெளியீட்டைப் பெற வேண்டும்:

தரவுத்தளத்துடன் இணைக்கப்பட்டுள்ளது

PostgreSQL டேபிளில் தரவைச் செருகவும்

அடுத்த கட்டமாக, நாம் முன்பு உருவாக்கிய அட்டவணையில் மாதிரித் தரவைச் செருக வேண்டும். நுழைவு வினவல்களை ஒரு சரம் என வரையறுத்து, இலக்கு வினவலை இயக்க db.Exec() செயல்பாட்டைப் பயன்படுத்துவதன் மூலம் இதைச் செய்யலாம்.

குறியீடு பின்வருமாறு:

---
insertStatement := `db_clients (பெயர், session_time, number_of_queries, active_state)
மதிப்புகள்
('psql', '2023-05-26 10:15:00', 10, உண்மை)
('datagrip', '2023-05-26 09:30:00', 5, true)
('dbeaver', '2023-05-26 11:00:00', 20, true)
('வொர்க் பெஞ்ச்', '2023-05-26 14:45:00', 15, பொய்)
('ரிமோட்', '2023-05-26 13:20:00', 8, உண்மை);`

_, பிழை = db.Exec(InsertStatement)
தவறினால் != பூஜ்யம் {
log.Fatal(தவறு)
}

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

PostgreSQL வினவல் தரவு

அட்டவணையில் இருந்து வரிசைகளை வினவ, தேர்ந்தெடுக்கப்பட்ட அறிக்கையை ஒரு சரமாக வரையறுக்கலாம் மற்றும் அதை இயக்க db.Query() ஐப் பயன்படுத்தலாம். அடுத்த() செயல்பாட்டைப் பயன்படுத்தி அட்டவணை வரிசைகளில் மீண்டும் மீண்டும் செய்யலாம் மற்றும் பின்வருவனவற்றில் காட்டப்பட்டுள்ளபடி அவற்றை அச்சிடலாம்:

வரிசைகள், பிழை := db.Query ( 'தேர்வு * db_clients' )
என்றால் தவறு ! = பூஜ்யம் {
பதிவு.அபாயகரமான ( தவறு )
}
வரிசைகளை ஒத்திவைக்கவும்.மூடு ( )

க்கான வரிசைகள்.அடுத்து ( ) {
இருந்தது ஐடி முழு எண்ணாக
var பெயர் சரம்
var அமர்வுநேரம் நேரம்.நேரம்
var numberOfQueries int
var ஆக்டிவ்ஸ்டேட் பூல்

பிழை := வரிசைகள். ஸ்கேன் ( & ஐடி , & பெயர், & அமர்வு நேரம், & வினவல்களின் எண்ணிக்கை, & செயலில் மாநிலம் )
என்றால் தவறு ! = பூஜ்யம் {
பதிவு.அபாயகரமான ( தவறு )
}

fmt.Printf ( 'ஐடி: %d, பெயர்: %s, அமர்வு நேரம்: %s, வினவல்களின் எண்ணிக்கை: %d, செயலில் உள்ள நிலை: %t \n ' , ஐடி , பெயர், அமர்வுநேரம், numberOfQueries, activeState )
}

என்றால் பிழை = வரிசைகள். பிழை ( ) ; தவறு ! = பூஜ்யம் {
பதிவு.அபாயகரமான ( தவறு )
}

முந்தைய குறியீட்டை இயக்கியதும், பின்வரும் எடுத்துக்காட்டு வெளியீட்டில் காட்டப்பட்டுள்ளபடி db_clients அட்டவணையில் இருந்து அனைத்து வரிசைகளையும் அச்சிட வேண்டும்:

இதோ!

முடிவுரை

கோலாங்கைப் பயன்படுத்தி PostgreSQL தரவுத்தளத்தை இணைக்கவும் வினவவும் pq தொகுப்பை எவ்வாறு பயன்படுத்தலாம் என்பதை ஆராய்ந்தோம்.