Adatok tömeges másolása bcp-vel linuxos SQL Serverre

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez a cikk bemutatja, hogyan használhatja a bcp segédprogramot az adatok tömeges másolására linuxos SQL Server-példány és egy felhasználó által megadott formátumú adatfájl között.

A bcp használatával nagy számú sort importálhat SQL Server táblákba, vagy exportálhat adatokat SQL Server táblákból adatfájlokba. Kivéve, ha a lekérdezési beállítással használja, bcp nem szükséges ismernie a Transact-SQL. A bcp parancssori segédprogram a Microsoft SQL Serverrel együttműködik, amely a helyszínen vagy a felhőben, Linuxon, Windowson, Dockeren, valamint Azure SQL Database-en és Azure Synapse Analytics-en fut.

Ez a cikk bemutatja, hogyan:

  • Adatok importálása táblába a bcp in paranccsal
  • Adatok exportálása táblázatból a bcp out paranccsal

Az SQL Server parancssori eszközeinek telepítése

A bcp a SQL Server parancssori eszközei közé tartozik, amelyeket nem telepítenek automatikusan a Linuxra telepített SQL Server-rel. Ha még nem telepítette az SQL Server parancssori eszközeit a Linux rendszerű gépen, telepítenie kell őket. Az eszközök telepítésével kapcsolatos további információkért válassza ki a Linux-disztribúciót az alábbi listából:

Adatok importálása bcp használatával

Ebben az oktatóanyagban létrehoz egy mintaadatbázist és egy táblát a helyi SQL Server-példányon (localhost), majd a bcp használatával betölti a mintatáblát egy lemezen lévő szövegfájlból.

Mintaadatbázis és -tábla létrehozása

Első lépésként hozzon létre egy mintaadatbázist egy egyszerű táblával, amelyet az oktatóanyag többi részében használunk.

  1. A Linux-mezőben nyisson meg egy parancsterminált.

  2. Másolja és illessze be a következő parancsokat a terminálablakba. Ezek a parancsok a sqlcmd parancssori segédprogrammal hoznak létre mintaadatbázist (BcpSampleDB) és egy táblát (TestEmployees) a helyi SQL Server-példányon (localhost). A parancsok futtatása előtt szükség szerint cserélje le a username és <password>.

A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

Az adatbázis létrehozása BcpSampleDB:

sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"

Hozza létre a táblát TestEmployees az adatbázisban BcpSampleDB:

sqlcmd -S localhost -U sa -P <password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"

A forrásadatfájl létrehozása

Másolja és illessze be a következő parancsot a terminálablakba. A beépített cat paranccsal létrehozunk egy szöveges mintaadatfájlt, amely három rekordot tartalmaz. Mentsük el a fájlt a kezdőkönyvtáradba ~/test_data.txt. A rekordok mezőit vesszővel tagolja.

cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF

Az adatfájl helyes létrehozásának ellenőrzéséhez futtassa az alábbi parancsot a terminálablakban:

cat ~/test_data.txt

Ennek a terminálablakban a következőnek kell megjelennie:

1,Jared,Australia
2,Nikita,India
3,Tom,Germany

Adatok importálása a forrásadatfájlból

Másolja és illessze be a következő parancsokat a terminálablakba. Ez a parancs a bcp használatával csatlakozik a helyi SQL Server-példányhoz (localhost), és importálja az adatokat az adatfájlból (~/test_data.txt) az adatbázis táblájába (TestEmployees) (BcpSampleDB). A parancsok futtatása előtt ne felejtse el lecserélni a felhasználónevet és a <password>.

bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t  ','

A példában használt bcp parancssori paraméterek rövid áttekintése:

  • -S: az SQL Server azon példányát adja meg, amelyhez csatlakozni szeretne
  • -U: az SQL Serverhez való csatlakozáshoz használt bejelentkezési azonosítót adja meg
  • -P: megadja a bejelentkezési azonosító jelszavát
  • -d: megadja a csatlakozni kívánt adatbázist
  • -c: karakter adattípussal hajt végre műveleteket
  • -t: a mező terminátorát adja meg. comma használjuk az adatfájl rekordjainak mező terminátoraként

Jegyzet

Ebben a példában nem adunk meg egyéni sorszétválasztót. A szöveges adatfájl sorai helyesen newline végződtek, amikor a cat paranccsal korábban létrehoztuk az adatfájlt.

Az adatok importálásának sikerességét az alábbi parancs futtatásával ellenőrizheti a terminálablakban. A parancs futtatása előtt szükség szerint cserélje le a username és a <password>.

sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"

Ennek a következő eredményeket kell megjelenítenie:

Id          Name                Location
----------- ------------------- -------------------
          1 Jared               Australia
          2 Nikita              India
          3 Tom                 Germany

Adatok exportálása bcp használatával

Ebben az oktatóanyagban a bcp használatával exportáld a korábban létrehozott mintatáblánk adatait egy új adatfájlba.

Másolja és illessze be a következő parancsokat a terminálablakba. Ezek a parancsok a bcp parancssori segédprogrammal exportálják az adatokat az adatbázis TestEmployees táblájából BcpSampleDB egy új, úgynevezett ~/test_export.txtadatfájlba. A parancs futtatása előtt ne felejtse el lecserélni a felhasználónevet és a <password>.

bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','

Az adatok helyes exportálásának ellenőrzéséhez futtassa a következő parancsot a terminálablakban:

cat ~/test_export.txt

Ennek a terminálablakban a következőnek kell megjelennie:

1,Jared,Australia
2,Nikita,India
3,Tom,Germany