Duomenų bazių ryšių apžvalga¶
Turinys¶
- Kaip veikia ryšiai
- Technologijų vadovai
- Būtina sąlyga: įdiekite ODBC tvarkyklę digna serveryje
- Duomenų bazės ryšio sukūrimas
- ODBC savybės
- Savybių reikšmių šifravimas
- Ryšio testavimas
- Kurią duomenų bazę mato ryšys
- Profiliavimo režimas ir Work Schema
- DSN naudojimas
- Trikčių šalinimas
Kaip veikia ryšiai¶
digna kiekvieną šaltinio technologiją pasiekia per ODBC. Ryšys yra ODBC savybių sąrašas, kurį įvedate kaip raktų ir reikšmių poras. Kai digna atidaro ryšį, ji sujungia šias poras į ryšio eilutę — Key=Value, atskirtas ;, ta tvarka, kuria jas surašėte — ir perduoda ją ODBC tvarkyklių tvarkytuvei (driver manager) digna serveryje.
Būtent tai, kad savybes įvedate patys, daro nustatymą be DSN (DSN-less): ryšys turi viską, ko reikia tvarkyklei, todėl serveryje nereikia registruoti jokio ODBC duomenų šaltinio (DSN). Tai rekomenduojamas digna konfigūravimo būdas, nes ryšio apibrėžimas visas saugomas digna ir keliauja kartu su ja.
Kodėl ODBC¶
Ankstesnėse versijose buvo galima rinktis tarp konkrečiai technologijai skirtos tvarkyklės ir ODBC — tai buvo pasirenkama jungikliu Use ODBC. Nuo Release 2026.06 digna remiasi tik ODBC. Viena standartinė sąsaja suteikia daugiau, nei gali pasiūlyti atskirų specialių tvarkyklių rinkinys:
- Autentifikacija — autentifikacija yra ODBC dalis, todėl ryšys gali naudoti bet ką, ką palaiko jo tvarkyklė: slaptažodžius, žetonus ir PAT, Kerberos ir Active Directory, MFA ir naršyklėje vykdomą vienkartinį prisijungimą (SSO), debesijos tapatybę, kliento sertifikatus ir TLS. Nauji metodai atsiranda atnaujinus tvarkyklę, o ne laukiant naujos digna versijos.
- Tvarkyklės, kurias prižiūri duomenų bazių gamintojai — gamintojo tvarkyklė seka naujas serverio versijas ir saugumo pataisas, o jūs galite ją atnaujinti savo pasirinktu laiku, nepriklausomai nuo digna.
- Vienas būdas viskam konfigūruoti — kiekviena technologija yra raktų ir reikšmių savybių sąrašas su ta pačia sąsaja, tuo pačiu jautrių reikšmių šifravimu ir tuo pačiu trikčių šalinimu, o ne atskiru laukų rinkiniu kiekvienam šaltiniui.
- Derinimas ir aprėptis — tvarkyklės lygmens parinktys, tokios kaip laiko limitai, TLS nustatymai, tarpiniai serveriai (proxy) ir gavimo dydžiai (fetch size), prieinamos kiekvienam šaltiniui, o prijungti galima bet kurią technologiją, turinčią standartą atitinkančią ODBC tvarkyklę, įskaitant tas, kurioms digna neskelbia atskiro vadovo.
Kas pasikeitė sąsajoje
Jungiklio Use ODBC ir atskirų serverio, prievado, duomenų bazės, vartotojo ir slaptažodžio laukų nebėra. Ryšiui, kuris dar nenaudoja ODBC, reikia įvesti ODBC savybes, kad jis vėl veiktų — žr. Duomenų bazės ryšio sukūrimas.
Technologijų vadovai¶
Savybių pavadinimai skiriasi priklausomai nuo tvarkyklės, ir kiekviena technologija turi vieną ar dvi ypatybes, kurių neturi kitos. Toliau pateikti vadovai aprašo būtent tą dalį; šis puslapis aprašo digna pusę, kuri visoms jiems yra vienoda.
Vadovuose pateikti savybių rinkiniai yra pavyzdžiai
Kiekviename vadove parodytas vienas žinomai veikiantis derinys — tas, su kuriuo digna testuojama. Tai atspirties taškas, o ne specifikacija: savybės priklauso ODBC tvarkyklei, o tai, kokios jų yra, kaip jos vadinasi ir kokias reikšmes priima, skiriasi tarp tvarkyklių versijų ir gamintojų, tarp Windows, Linux ir macOS bei priklauso nuo to, kaip sukonfigūruotas šaltinio serveris — autentifikacijos metodo, TLS, šliuzo, prievado. Tikėkitės, kad teks pakoreguoti vieną ar dvi reikšmes, ir laikykite įdiegtos tvarkyklės versijos dokumentaciją lemiamu šaltiniu.
| Technologija | Vadovas | Verta žinoti |
|---|---|---|
| Azure Synapse Analytics | Azure Synapse | Serverless telkiniams serverio pavadinime reikia -ondemand, ir jie palaiko tik Standard profiliavimą |
| Databricks | Databricks | Autentifikacija žetonu: UID=token, PAT lauke PWD |
| Apache Hive | Hive | Katalogus pateikia tvarkyklė, o ne užklausa |
| Netezza | Netezza | Tvarkyklės pavadinimas rašomas riestiniuose skliaustuose: {NetezzaSQL} |
| Oracle | Oracle | DBQ priima pilną prisijungimo aprašą (connect descriptor) arba tnsnames.ora pseudonimą |
| PostgreSQL | PostgreSQL | SSLMode turi atitikti tai, ko reikalauja serveris |
| Snowflake | Snowflake | Programinės prieigos žetonas (programmatic access token) yra testuotas autentifikacijos būdas |
| MS SQL Server | MS SQL Server | DATABASE nulemia, kurias schemas digna gali matyti |
| Teradata | Teradata | Serveris nurodomas DBCNAME; duomenų bazės veikia kaip schemos |
Būtina sąlyga: įdiekite ODBC tvarkyklę digna serveryje¶
digna atidaro šaltinių ryšius iš serverio, kuriame veikia digna backend, o ne iš naršyklės. Todėl ODBC tvarkyklė turi būti įdiegta tame kompiuteryje, o jos pavadinimas turi būti užregistruotas vietinėje tvarkyklių tvarkytuvėje.
Įdiekite gamintojo 64 bitų tvarkyklę, tada atidarykite ODBC Data Source Administrator (64-bit) ir pereikite į skirtuką Drivers. Ten išvardyti pavadinimai yra būtent tos reikšmės, kurias galite naudoti savybei Driver.
Įdiekite unixODBC ir gamintojo tvarkyklę, tada išveskite užregistruotų tvarkyklių pavadinimus:
Laužtiniuose skliaustuose išvesti pavadinimai yra reikšmės, kurias galite naudoti savybei Driver. Jie paimami iš /etc/odbcinst.ini (arba iš failo, kurį nurodo odbcinst -j).
Tvarkyklės pavadinimas turi sutapti simbolis į simbolį
Driver perduodamas tvarkyklių tvarkytuvei nepakeistas. Simba Spark ODBC Driver ir Simba Spark ODBC Driver 64 tvarkyklių tvarkytuvei yra skirtingos tvarkyklės, o neužregistruotas pavadinimas sukelia klaidą data source name not found, nors jokio DSN nenaudojama.
Vietoje užregistruoto pavadinimo visos įprastos tvarkyklių tvarkytuvės priima ir pilną kelią iki tvarkyklės bibliotekos, pavyzdžiui, Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so. Tai naudinga, kai tvarkyklė įdiegta, bet neužregistruota.
Duomenų bazės ryšio sukūrimas¶
Atidarykite Admin Panel, eikite į skirtuką Database Connections ir spustelėkite Add DB Connection. Ekrane prašoma nurodyti penkis dalykus:
| Laukas | Aprašymas |
|---|---|
| Name | Ryšio pavadinimas. Juo ryšys nurodomas kituose ekranuose. |
| Technology | Postgres, Oracle, SQL Server, Databricks, Teradata, Netezza, Snowflake arba Hive. Nuo jo priklauso SQL dialektas, kurį generuoja digna, todėl jis turi atitikti šaltinį, o ne tvarkyklę. Azure Synapse Analytics yra SQL Server ryšys. |
| ODBC Properties | Raktų ir reikšmių poros, aprašytos skyriuje ODBC savybės. |
| Profiling Mode | Standard, Permanent arba Session — žr. Profiliavimo režimas ir Work Schema. |
| Work Schema | Schema, kurioje laikomos darbinės lentelės Permanent profiliavimui. |
Ryšys administruojamas centralizuotai ir tada priskiriamas vienam ar keliems projektams, todėl tas pats ryšys gali aptarnauti kelis projektus.
ODBC savybės¶
Kiekvienai savybei spustelėkite Add Property ir užpildykite Key, Value, o slaptoms reikšmėms pažymėkite žymimąjį langelį Encrypted. Kiekvieno technologijos vadove pateiktas tos technologijos pavyzdinis rinkinys, kurį pritaikote savo tvarkyklės versijai ir serveriui — žr. pastabą aukščiau.
Nepriklausomai nuo tvarkyklės, savybių rinkinys apima tuos pačius keturis dalykus:
Driver— užregistruotas tvarkyklės pavadinimas, kaip aprašyta aukščiau.- Serverio adresas — raktas skiriasi priklausomai nuo tvarkyklės:
SERVER,HOST,DBCNAME,Serverarba, Oracle atveju, prisijungimo aprašasDBQ. - Prisijungimo duomenys — paprastai
UIDirPWD; Snowflake naudojaUIDirtoken, o Databricks naudoja pažodinį vartotojątokenir asmeninį prieigos žetoną laukePWD. - Duomenų bazė arba katalogas, kuriame dirbama, jei technologija tokį turi — žr. Kurią duomenų bazę mato ryšys.
Bet ką kita, kas aprašyta tvarkyklės dokumentacijoje, galima pridėti tokiu pat būdu — ryšių telkimą (connection pooling), lizdų laiko limitus, Kerberos nustatymus, tarpinio serverio nustatymus. digna savybių neinterpretuoja; ji tik jas perduoda.
Reikšmės neišvengiamos (escape) — reikšmes su kabliataškiu rašykite riestiniuose skliaustuose
Kadangi savybės sujungiamos su ;, reikšmė, kurioje pačioje yra ;, perskeltų ryšio eilutę netinkamoje vietoje. Tokias reikšmes apgaubkite riestiniais skliaustais: PWD={p@ss;word}. Tas pats taikoma reikšmėms su = arba pradiniais tarpais. Dėl tos pačios priežasties kai kurių tvarkyklių pavadinimai įprastai rašomi riestiniuose skliaustuose, pvz., {NetezzaSQL} arba {SnowflakeDSIIDriver}.
Savybių reikšmių šifravimas¶
Pažymėkite Encrypted kiekvienai savybei, kurioje saugoma paslaptis — PWD, token, kliento slaptumo raktas. Tada reikšmė užšifruojama prieš ją išsaugant digna saugykloje, ekrane ji paslepiama ir iššifruojama tik tada, kai sudaroma ryšio eilutė.
Patarimas
Užšifruotos reikšmės negalima perskaityti atgal nei vartotojo sąsajoje, nei per API — ją galima tik pakeisti. Paslaptis saugokite ir savo slaptažodžių tvarkyklėje.
Neslaptas savybes — tvarkyklės pavadinimą, serverį, prievadą, duomenų bazę — geriau palikti neužšifruotas, kad jas galėtų perskaityti tas, kas vėliau prižiūrės ryšį.
Ryšio testavimas¶
Dialogo lange Add DB Connection spustelėkite Test prieš išsaugodami. Testas naudoja formoje esamas reikšmes ir atlieka tikrą prisijungimą, todėl praneša būtent tai, su kuo susidurtų inspekcija — neteisingą tvarkyklės pavadinimą, atmestą slaptažodį, nepasiekiamą serverį. Niekas neišsaugoma: bandomasis ryšys atšaukiamas nepriklausomai nuo to, ar jis pavyko.
Jau esamą ryšį galite patikrinti iš naujo užvedę pelę ant jo eilutės skirtuke Database Connections ir spustelėję kištuko piktogramą. Tai greičiausias būdas patikrinti, ar šaltinis pasiekiamas po slaptažodžio pakeitimo ar ugniasienės pakeitimų.
Kurią duomenų bazę mato ryšys¶
Kai pridedate duomenų šaltinį, digna pasiūlo katalogus, schemas ir lenteles, kuriuos ryšys gali pasiekti. Kiek toli tai siekia, priklauso nuo technologijos:
| Technologija | Siūlomi katalogai |
|---|---|
| PostgreSQL, MS SQL Server, Oracle, Snowflake | Tik ryšio dabartinė duomenų bazė |
| Teradata, Netezza, Databricks | Visos duomenų bazės ar katalogai, kuriuos vartotojui leidžiama matyti |
| Hive, Impala | Pateikia tvarkyklė |
Vienas ryšys – viena duomenų bazė
PostgreSQL, SQL Server, Oracle ir Snowflake atveju savybės turi rodyti į duomenų bazę, kurioje yra šaltinio schemos — DATABASE=…, Database=… arba paslaugos pavadinimą Oracle DBQ viduje. Kitos duomenų bazės lentelės per tą ryšį nepasiekiamos; jai pridėkite antrą ryšį.
Profiliavimo režimas ir Work Schema¶
Profiliavimo režimas nulemia, kaip digna apdoroja duomenis ir skaičiuoja metrikas:
- Standard: metrikos skaičiuojamos tiesiogiai šaltinio lentelėse, nekopijuojant duomenų.
- Permanent: tikrinamos dienos duomenys nukopijuojami į nuolatinę lentelę, o metrikos skaičiuojamos pagal nukopijuotus duomenis.
- Session: duomenys nukopijuojami į seanso arba laikinąją lentelę, o metrikos skaičiuojamos pagal šiuos laikinus duomenis.
Režimas nulemia, ką turi būti leidžiama daryti ryšio vartotojui:
| Režimas | Ką rašo | Ryšio vartotojui reikalingos teisės |
|---|---|---|
| Standard | nieko | Skaityti šaltinio lenteles |
| Permanent | po lentelę kiekvienam duomenų šaltiniui schemoje Work Schema | Kurti ir šalinti lenteles schemoje Work Schema |
| Session | laikinąją lentelę, kurią duomenų bazė pašalina kartu su seansu | Kurti laikinąsias lenteles — Work Schema nenaudojama |
Standard tik skaito, todėl šį režimą verta rinktis, kai digna suteikiama tik skaitymo prieiga. Work Schema skaitoma tik Permanent režimu, tačiau ją vis tiek verta užpildyti, kad ryšys ir toliau veiktų, jei režimas vėliau būtų pakeistas.
DSN naudojimas¶
DSN vis dar veikia — DSN yra tiesiog dar viena savybė:
DSN turi būti užregistruotas digna serveryje tai pačiai vartotojo paskyrai, kuria veikia digna backend, o kai digna veikia kaip paslauga — kaip System DSN. Viską, kas sukonfigūruota DSN, galima perrašyti pridedant tai ir kaip savybę.
Nustatymas be DSN yra dokumentuotas numatytasis būdas, nes jis išvengia šios serverio pusės būsenos: ryšys visiškai aprašytas digna, o naujame digna serveryje reikia įdiegti tvarkyklę, bet nieko konfigūruoti nereikia.
Trikčių šalinimas¶
Data source name not found / no default driver specified¶
Požymiai: - Mygtukas Test praneša apie klaidą, kurioje minima data source name not found, nors nustatymas yra be DSN
Priežastys ir sprendimai: 1. Reikšmė Driver nesutampa su užregistruotu tvarkyklės pavadinimu — palyginkite ją su ODBC Data Source Administrator (64-bit) skirtuku Drivers arba su odbcinst -q -d 2. Tvarkyklė įdiegta jūsų darbo stotyje, bet ne digna serveryje 3. Tvarkyklė yra 32 bitų, o digna – 64 bitų — įdiekite 64 bitų tvarkyklę 4. Savybės Driver visai nėra, ir nenurodytas ir DSN 5. Linux ir macOS sistemose tvarkyklė įdiegta, bet neužregistruota — vietoje pavadinimo nurodykite pilną kelią iki tvarkyklės bibliotekos arba užregistruokite ją odbcinst.ini
Ryšio testui baigiasi laikas¶
Požymiai: - Test pakimba ir maždaug po pusės minutės nepavyksta
Priežastys ir sprendimai: 1. Serveris ar prievadas nepasiekiamas iš digna serverio — patikrinkite ugniasienę, o debesijos šaltinių atveju — leidžiamų IP adresų sąrašą 2. Serverio pavadinimas teisingas, bet prievadas priklauso kitai paslaugai 3. Šaltiniui priimti ryšį reikia daugiau nei numatytųjų 30 sekundžių — padidinkite DIGNA_SOURCE_LOGIN_TIMEOUT_SEC faile config.toml skiltyje [base] (0 laukia neribotai) ir perkraukite backend 4. Serverless galinis taškas atsibunda po neveiklumo — bandykite dar kartą, o jei tai nutinka reguliariai, padidinkite prisijungimo laiko limitą, kaip nurodyta aukščiau
Autentifikacija nepavyksta, nors prisijungimo duomenys teisingi¶
Požymiai: - Tvarkyklė praneša apie netinkamus prisijungimo duomenis, bet tas pats vartotojas veikia kitame SQL kliente
Priežastys ir sprendimai: 1. Slaptažodyje yra ; — apgaubkite reikšmę riestiniais skliaustais: {p@ss;word} 2. Į reikšmę buvo nukopijuotas galinis tarpas 3. Tvarkyklė tikisi konkretaus autentifikacijos mechanizmo — pavyzdžiui, AuthMech Hive ir Databricks tvarkyklėms arba authenticator Snowflake atveju 4. Reikšmė buvo išsaugota užšifruota ir paskui redaguota — užšifruotų reikšmių negalima perskaityti atgal, todėl įveskite paslaptį visą iš naujo 5. Baigėsi žetono galiojimas — asmeniniai prieigos žetonai ir programinės prieigos žetonai išduodami su galiojimo pabaigos data
Duomenų šaltinio ekrane nesiūloma laukiama duomenų bazė ar schema¶
Požymiai: - Pridedant duomenų šaltinį trūksta katalogų, schemų ar lentelių
Priežastys ir sprendimai: 1. Ryšys rodo į kitą duomenų bazę — žr. Kurią duomenų bazę mato ryšys 2. Ryšio vartotojas neturi skaitymo teisių schemai arba duomenų žodynui 3. Technology neatitinka šaltinio, todėl digna užklausia netinkamo duomenų žodyno 4. Snowflake atveju vartotojui nepriskirtas numatytasis warehouse ir nenurodyta savybė Warehouse, todėl metaduomenų užklausos negali būti vykdomos
Profiliavimas nepavyksta, nors ryšio testas sėkmingas¶
Požymiai: - Test pavyksta, bet inspekcija nepavyksta kuriant darbines lenteles
Priežastys ir sprendimai: 1. Pasirinktas Permanent profiliavimas, o ryšio vartotojas negali kurti lentelių schemoje Work Schema — suteikite teises arba perjunkite į Session ar Standard 2. Work Schema tuščia arba nurodo neegzistuojančią schemą, kai pasirinktas Permanent profiliavimas 3. Pasirinktas Session profiliavimas, o ryšio vartotojui neleidžiama kurti laikinųjų lentelių 4. Ilgai trunkanti profiliavimo užklausa viršija užklausos laiko limitą — padidinkite DIGNA_SOURCE_QUERY_TIMEOUT_SEC faile config.toml skiltyje [base] (numatytoji reikšmė 3600 sekundžių, 0 išjungia laiko limitą)
Geroji praktika¶
DARYKITE:
- Įdiekite ir užregistruokite tvarkyklę digna serveryje prieš konfigūruodami ryšį
- Pažymėkite Encrypted kiekvienam slaptažodžiui ir žetonui
- Prieš išsaugodami spustelėkite Test, o pakeitę slaptažodį patikrinkite iš naujo
- Ryšius pavadinkite pagal šaltinį ir aplinką, pavyzdžiui,
sales_dwh_prod - Suteikite digna atskirą duomenų bazės vartotoją, tik skaitymo teisėmis, kai pakanka Standard profiliavimo
- Kiekvienai šaltinio duomenų bazei laikykite po vieną ryšį ir verčiau pridėkite antrą, nei perjunginėkite pirmąjį
NEDARYKITE:
- Nesaugokite paslapčių neužšifruotų ir nenaudokite vieno duomenų bazės vartotojo digna ir kitiems įrankiams
- Nenaudokite 32 bitų tvarkyklės su 64 bitų digna diegimu
- Nesiremkite User DSN, kai digna veikia kaip paslauga — jis nebus matomas
- Nerašykite reikšmės su
;į savybę be riestinių skliaustų - Nenukreipkite Work Schema į schemą, kurioje laikomi šaltinio duomenys
Pagalba¶
Reikia pagalbos dėl duomenų bazės ryšio?
- El. paštas: support@digna.ai
- Dokumentacija: https://docs.digna.ai
- Svetainė: https://www.digna.ai
Release: 2026.06
© 2026 digna GmbH — www.digna.ai