Gyakorlat – táblák létrehozása, tömeges importálás és adatok lekérdezése

Befejeződött

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

  1. 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
    
  2. 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.

  3. 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
    
  4. 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
    
  5. 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.

  1. Jelentkezzen be az Azure Portalra ugyanazzal a fiókkal, amelyet a tesztkörnyezetben aktivált.

  2. Az Azure Portal menüjében, az Azure-szolgáltatások alatt válassza az Erőforrás létrehozása lehetőséget.

    Screenshot of Azure portal menu and Create a resource option.

    Megjelenik az Erőforrás létrehozása panel.

  3. 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.

    Screenshot of the Databases and SQL Database options.

    Megjelenik az SQL Database létrehozása panel.

  4. 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
  5. Kattintson az OK gombra.

  6. Válassza a Következő: Hálózatkezelés lehetőséget.

  7. 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
  8. Select Review + create.

  9. 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.

  1. Válassza az Erőforrás megnyitása lehetőséget. Megjelenik az SQL-adatbázis a coursedatabaseNNN-hez.

  2. A bal oldali menüablakban válassza a Lekérdezésszerkesztő (előzetes verzió) lehetőséget.

    The database page in the Azure portal with the query editor option highlighted.

    Megjelenik a CourseDatabaseNNN Lekérdezésszerkesztő panelje.

  3. 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.

  4. Kattintson az OK gombra az adatbázis-szolgáltatáshoz való csatlakozáshoz.

  5. 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
    )
    

    The Query editor window in the Azure portal. The user has entered a statement to create the Courses table.

  6. Í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
    )
    
  7. Módosítsa az utasítást egy tábla létrehozásáhozStudyPlans, 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)
    )
    
  8. 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.Coursesdbo.Modulesés dbo.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.

    The database window in the Azure portal, showing the tables and columns.

Adatok importálása

  1. Térjen vissza a Cloud Shellbe, és győződjön meg arról, hogy a educationdata mappában van.

    cd ~/educationdata
    
  2. 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]
    
  3. Futtassa a bcp segédprogramot egy formátumfájl létrehozásához az dbo.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
    
  4. Nyissa meg courses.fmta 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
    
  5. Nézze át a fájlt. A vesszővel tagolt fájl első oszlopában lévő adatok a CourseID tábla oszlopába dbo.Courses kerülnek. A második mező az CourseName 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.

  6. Futtassa a következő parancsot a courses.csv fájlban lévő adatok a módosított courses.fmt fájl által megadott formátumban való importálásához. A -F 2 jelző arra utasítja a bcp 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.

  7. Futtassa a következő műveletsort a tábla adatainak a fájlból modules.csv való importálásáhozdbo.Modules.

    1. 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
      
    2. Importálja az adatokat a modules.csv fájlból az dbo.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.

  8. Hajtsa végre a következő műveletsort a tábla adatainak a fájlból studyplans.csv való importálásáhozdbo.StudyPlans.

    1. 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
      
    2. Importálja az adatokat a studyplans.csv fájlból az dbo.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

  1. Lépjen vissza az Azure Portalra.

  2. Az Azure Portal menüjében válassza az SQL-adatbázisok lehetőséget.

  3. Az SQL-adatbázisok panelen válassza a coursedatabaseNNN lehetőséget. Megjelenik a coursedatabaseNNN panel.

  4. A bal oldali menüpanelen válassza a Lekérdezésszerkesztő lehetőséget. Megjelenik a CourseDatabaseNNN Lekérdezésszerkesztő panelje.

  5. 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.
  6. Kattintson az OK gombra az adatbázis-szolgáltatáshoz való csatlakozáshoz.

  7. 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.

    Screenshot of the query editor in the Azure portal, showing the data retrieved from the Courses table.

  8. 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.

  9. 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
    
  10. A parancssorban 1> futtassa a következő T-SQL-parancsot az adatok lekéréséhez a dbo.StudyPlans táblából.

    SELECT * FROM StudyPlans;  
    GO
    

    A lekérdezés 45 sort ad vissza.

  11. A parancssorba 1> írja be exit 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.