Gyakorlat – táblák létrehozása, tömeges importálás és adatok lekérdezése
Az egyetem jelenleg egy sor vesszővel tagolt fájlban tárolja az adatait. Ezeket az adatokat kell az Azure SQL Database-be migrálnia.
Ebben a gyakorlatban egy adatbázis-kiszolgálót és egyetlen adatbázist hoz létre az SQL Database szolgáltatással. Ezután táblákat hozhat létre, és adatokat importálhat az adatbázisba. Végül a lekérdezésszerkesztővel és a sqlcmd
segédprogrammal kérdezheti le az adatokat.
A meglévő vesszővel tagolt adatok vizsgálata
Az Azure Cloud Shellben futtassa a következő parancsot az egyetemi rendszer adatfájljainak és alkalmazáskódjának letöltéséhez.
git clone https://github.com/MicrosoftDocs/mslearn-develop-app-that-queries-azure-sql education
Futtassa az alábbi parancsokat a mintaadatok saját mappába való áthelyezéséhez és a mappában lévő fájlok listázásához.
mv ~/education/data ~/educationdata cd ~/educationdata ls
A mappa a következő három fájlt tartalmazza: courses.csv, modules.csv és studyplans.csv.
Tekintse meg a courses.csv fájl tartalmát.
cat courses.csv
Ez a fájl az alábbi vesszővel tagolt adatokat tartalmazza. Egy kurzusnevet és egy azonosítót tartalmaz minden, az egyetem által kínált kurzushoz.
ID,Course 1,Computer Science 2,Maths with Computing 3,Maths with Physics 4,Computer Science with Physics 5,Maths with Chemistry 6,Physics with Chemistry 7,Maths 8,Physics 9,Chemistry
Tekintse meg a modules.csv fájl tartalmát.
cat modules.csv
Ez a fájl felsorolja a különböző modulokat, amelyeket a diákok felvehetnek a kurzusok követelményeinek teljesítéséhez. Minden modulhoz tartozik egy azonosító kód és egy név.
Module Code,Title CS101,Introduction to Computer Science CS102,Java Programming CS103,Distributed Applications CS104,Cloud-based systems MA101,Foundations of Applied Maths MA102,Advanced Calculus MA103,Number Theory MA104,String Theory PH101,Foundations of Physics PH102,Basic Experimental Phyics PH103,Basic Theoretical Physics PH104,Subatomic Physics CH101,Elements of Chemistry CH102,Basic Inorganic Chemistry CH103,Basic Organic Chemistry CH104,Chemical Engineering
Tekintse meg a studyplans.csv fájl tartalmát.
cat studyplans.csv
Ez a fájl tartalmazza azokat az adatokat, amelyek meghatározzák, melyik modulokat kell egy diáknak felvenni a kurzus sikeres teljesítéséhez. A Sequence (Sorrend) oszlop mutatja meg, milyen sorrendben kell felvenniük a diákoknak az egyes modulokat. Például az 1. tanfolyamhoz (Számítástechnika) a hallgatónak a CS101 modult kell elvégeznie az MA101 modul előtt. Itt az adatok egy részlete látható.
Course ID,Module Code,Sequence 1,CS101,1 1,MA101,2 1,CS102,3 1,CS103,4 1,CS104,5 2,MA101,1 2,MA102,2 2,CS101,3 2,CS102,4 2,CS103,5 3,MA101,1 3,MA102,2 3,PH101,3 3,PH102,4 3,PH103,5 ...
Adatbázis-kiszolgáló és adatbázis létrehozása az SQL Database használatával
Hozzuk létre az adatbázist és a kiszolgálót az alkalmazás adatainak tárolásához.
Jelentkezzen be az Azure Portalra ugyanazzal a fiókkal, amelyet a tesztkörnyezetben aktivált.
Az Azure Portal menüjében, az Azure-szolgáltatások alatt válassza az Erőforrás létrehozása lehetőséget.
Megjelenik az Erőforrás létrehozása panel.
A bal oldali menüpanelen válassza az Adatbázisok lehetőséget, majd a Népszerű Azure-szolgáltatások területen válassza az SQL Database lehetőséget.
Megjelenik az SQL Database létrehozása panel.
Az Alapszintű beállítások lapon adja meg az alábbi értékeket minden beállításhoz.
Beállítás Érték Projektek részletei Előfizetés Concierge-előfizetés Erőforráscsoport [Tesztkörnyezeti erőforráscsoport] Adatbázis részletei Database name Az adatbázis nevének egyedinek kell lennie. Javasoljuk a coursedatabaseNNN típusú elnevezést, ahol az NNN egy véletlenszerű szám. Kiszolgáló Válassza az Új hivatkozás létrehozása lehetőséget, és az Új kiszolgáló panelen adja meg az alábbi táblázatban szereplő adatokat. Rugalmas SQL-készletet szeretne használni? Nem Számítás + tárolás Általános célú A kiszolgálóhoz minden beállításhoz adja meg a következő értékeket.
Beállítás Érték Kiszolgálónév courseserverNNN, ahol az NNN ugyanaz a szám, mint amelyet az adatbázishoz választott Kiszolgáló rendszergazdájának felhasználóneve azuresql Jelszó Válasszon az előírásoknak megfelelő jelszót. Jelszó megerősítése Erősítse meg a jelszavát. Hely Central US Kattintson az OK gombra.
Válassza a Következő: Hálózatkezelés lehetőséget.
A Hálózatkezelés lapon adja meg az alábbi értékeket az egyes beállításokhoz.
Beállítás Érték Hálózati kapcsolat Kapcsolati mód Nyilvános végpont Tűzfalszabályok Engedélyezés az Azure-szolgáltatások és -erőforrások számára, hogy hozzáférjenek ehhez a kiszolgálóhoz Igen Ügyfél aktuális IP-címének hozzáadása Igen Select Review + create.
Válassza a Létrehozás lehetőséget. A folytatás előtt várja meg, amíg a kiszolgáló és az adatbázis létrejön.
A táblák létrehozása
Most már létrehozhatja a csv-fájlok adatainak tárolására szánt táblákat.
Válassza az Erőforrás megnyitása lehetőséget. Megjelenik az SQL-adatbázis a coursedatabaseNNN-hez.
A bal oldali menüablakban válassza a Lekérdezésszerkesztő (előzetes verzió) lehetőséget.
Megjelenik a CourseDatabaseNNN Lekérdezésszerkesztő panelje.
Minden beállításhoz adja meg a következő értékeket.
Beállítás Érték SQL Server-hitelesítés Bejelentkezés azuresql Jelszó Adja meg a felhasználó létrehozásakor használt jelszót. Megjegyzés:
Ha hibaüzenetet kap az adatbázisba való bejelentkezéskor, ellenőrizze a hiba listában szereplő IP-címet, és győződjön meg arról, hogy az ügyfél IP-címeként lett hozzáadva. Ezt a kiszolgálói tűzfal áttekintésének>beállításával teheti meg.
Kattintson az OK gombra az adatbázis-szolgáltatáshoz való csatlakozáshoz.
A Lekérdezés 1 panelen adja meg a következő Transact-SQL (T-SQL) utasítást, majd válassza a Futtatás lehetőséget. Ez az utasítás létrehoz egy új táblát a kurzusinformációk tárolásához. Ellenőrizze, hogy az utasítás nem ütközik-e hibába.
CREATE TABLE Courses ( CourseID INT NOT NULL PRIMARY KEY, CourseName VARCHAR(50) NOT NULL )
Írja felül a meglévő utasítást az alábbival, amely létrehozza a modulokat tároló táblát. Válassza a Futtatás elemet, majd ellenőrizze, hogy az utasítás nem ütközik-e hibába.
CREATE TABLE Modules ( ModuleCode VARCHAR(5) NOT NULL PRIMARY KEY, ModuleTitle VARCHAR(50) NOT NULL )
Módosítsa az utasítást egy tábla létrehozásához
StudyPlans
, majd válassza a Futtatás lehetőséget.CREATE TABLE StudyPlans ( CourseID INT NOT NULL, ModuleCode VARCHAR(5) NOT NULL, ModuleSequence INT NOT NULL, PRIMARY KEY(CourseID, ModuleCode) )
Az adatbázisablakban válassza az eszköztár Frissítés ikonját. Bontsa ki a Táblák elemet, majd egyenként bontson ki minden táblát. Látnia kell a három táblát (
dbo.Courses
dbo.Modules
ésdbo.StudyPlans
) az egyes táblák oszlopaival és elsődleges kulcsával együtt.Megjegyzés:
A dbo az adatbázis-tulajdonost jelenti. Ez az adatbázis alapértelmezett sémája. Mindhárom tábla ebben a sémában jött létre.
Adatok importálása
Térjen vissza a Cloud Shellbe, és győződjön meg arról, hogy a
educationdata
mappában van.cd ~/educationdata
Hozza létre a későbbi lépésekben használt változókat. Az
NNN
részt cserélje le arra a számra, amelyet az adatbázishoz és a kiszolgálóhoz használt.export DATABASE_NAME=coursedatabaseNNN export DATABASE_SERVER=courseserverNNN export AZURE_USER=azuresql export AZURE_PASSWORD=[enter your password]
Futtassa a
bcp
segédprogramot egy formátumfájl létrehozásához azdbo.Courses
adatbázis táblájának sémájából. A formátumfájl azt határozza meg, hogy az adatok karakterformátumban (-c
) és vesszővel (-t,
) elválasztva legyen.bcp "[$DATABASE_NAME].[dbo].[courses]" format nul -c -f courses.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Nyissa meg
courses.fmt
a kódszerkesztőben. Az előző parancs által létrehozott formátumfájl.code courses.fmt
A fájlnak a következőhöz kell hasonlítania:
14.0 2 1 SQLCHAR 0 12 "," 1 CourseID "" 2 SQLCHAR 0 50 "\n" 2 CourseName SQL_Latin1_General_CP1_CI_AS
Nézze át a fájlt. A vesszővel tagolt fájl első oszlopában lévő adatok a
CourseID
tábla oszlopábadbo.Courses
kerülnek. A második mező azCourseName
oszlopba kerül. A második oszlop karakteralapú, és társítva van hozzá egy rendezés. A mezők várt elválasztó jele a vessző. A sor lezárásának (a második mező után) sortörés karakternek kell lennie. Valós forgatókönyv esetén előfordulhat, hogy az adatok nem lesznek ilyen rendezetten rendszerezve. Lehetnek más mezőhatárolók, és a mezők sorrendje eltérhet az oszlopokétól. Ilyen helyzetben a formátumfájl szerkesztésével módosíthatja mezőről mezőre ezeket az elemeket. A szerkesztő bezárásához nyomja le a Ctrl+Q billentyűkombinációt.Futtassa a következő parancsot a
courses.csv
fájlban lévő adatok a módosítottcourses.fmt
fájl által megadott formátumban való importálásához. A-F 2
jelző arra utasítja abcp
segédprogramot, hogy az adatokat az adatfájl 2. sorától kezdje importálni. Az első sor fejlécet tartalmaz.bcp "[$DATABASE_NAME].[dbo].[courses]" in courses.csv -f courses.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
Ellenőrizze, hogy a
bcp
segédprogram 9 sort importál-e, és nem jelent-e hibákat.Futtassa a következő műveletsort a tábla adatainak a fájlból
modules.csv
való importálásáhozdbo.Modules
.Hozzon létre egy formátumfájlt.
bcp "[$DATABASE_NAME].[dbo].[modules]" format nul -c -f modules.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Importálja az adatokat a
modules.csv
fájlból azdbo.Modules
adatbázis táblájába.bcp "[$DATABASE_NAME].[dbo].[modules]" in modules.csv -f modules.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
Ellenőrizze, hogy a parancs 16 sort importál-e.
Hajtsa végre a következő műveletsort a tábla adatainak a fájlból
studyplans.csv
való importálásáhozdbo.StudyPlans
.Hozzon létre egy formátumfájlt.
bcp "[$DATABASE_NAME].[dbo].[studyplans]" format nul -c -f studyplans.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Importálja az adatokat a
studyplans.csv
fájlból azdbo.StudyPlans
adatbázis táblájába.bcp "[$DATABASE_NAME].[dbo].[studyplans]" in studyplans.csv -f studyplans.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
Ellenőrizze, hogy a parancs 45 sort importál-e.
Az adatbázis adatainak lekérdezése
Lépjen vissza az Azure Portalra.
Az Azure Portal menüjében válassza az SQL-adatbázisok lehetőséget.
Az SQL-adatbázisok panelen válassza a coursedatabaseNNN lehetőséget. Megjelenik a coursedatabaseNNN panel.
A bal oldali menüpanelen válassza a Lekérdezésszerkesztő lehetőséget. Megjelenik a CourseDatabaseNNN Lekérdezésszerkesztő panelje.
Minden beállításhoz adja meg a következő értékeket.
Beállítás Érték SQL Server-hitelesítés Bejelentkezés azuresql Jelszó Adja meg a felhasználó jelszavát. Kattintson az OK gombra az adatbázis-szolgáltatáshoz való csatlakozáshoz.
A Lekérdezés 1 panelen adja meg a következő T-SQL utasítást, majd válassza a Futtatás lehetőséget.
SELECT * FROM dbo.Courses
Ez az utasítás lekéri az adatokat a
dbo.Courses
táblából. A találatokat tartalmazó ablakban kilenc sornak kell megjelennie.Módosítsa a lekérdezést az alábbiak szerint, majd válassza a Futtatás elemet.
SELECT * FROM dbo.Modules
Az Eredmények ablakban ezúttal a moduloknak kell megjelenniük. 16 sor van.
Térjen vissza a Cloud Shellbe, és futtassa a következő parancsot az adatbázishoz való csatlakozáshoz.
sqlcmd -S "$DATABASE_SERVER.database.windows.net" -d "$DATABASE_NAME" -U $AZURE_USER -P $AZURE_PASSWORD
A parancssorban
1>
futtassa a következő T-SQL-parancsot az adatok lekéréséhez adbo.StudyPlans
táblából.SELECT * FROM StudyPlans; GO
A lekérdezés 45 sort ad vissza.
A parancssorba
1>
írja beexit
az sqlcmd segédprogram bezárásához.
Önálló adatbázist hozott létre az SQL Database használatával. Ez után táblákat hozott létre az Azure Portal lekérdezésszerkesztőjével. A bcp
segédprogrammal adatokat töltött fel egy sor vesszővel tagolt adatfájlból. Végül lekérdezéseket futtatott az adatbázis tábláin a lekérdezésszerkesztőből az Azure Portalon, és az sqlcmd
segédprogramból a Cloud Shellben.