Linux에서 SQL Server에 대 한 bcp 사용 하 여 대량 복사 데이터Bulk copy data with bcp to SQL Server on Linux

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

이 항목에서는 사용 하는 bcp 명령줄 유틸리티를 SQL Server 2017 linux 인스턴스와 사용자가 지정한 형식의 데이터 파일로 데이터 대량 복사 합니다.This topic shows how to use the bcp command line utility to bulk copy data between an instance of SQL Server 2017 on Linux and a data file in a user-specified format.

사용할 수 있습니다 bcp SQL Server 테이블로 많은 수의 행을 가져올 또는 SQL Server 테이블에서 데이터 파일로 데이터를 내보냅니다.You can use bcp to import large numbers of rows into SQL Server tables or to export data from SQL Server tables into data files. Queryout 옵션은 함께 사용할 경우에 bcp Transact SQL을 알아야 합니다.Except when used with the queryout option, bcp requires no knowledge of Transact-SQL. bcp Linux, Windows 또는 Docker 및 Azure SQL 데이터베이스 및 Azure SQL 데이터 웨어하우스에서 클라우드 나 온-프레미스를 실행 중인 Microsoft SQL Server와 함께 작동 하는 명령줄 유틸리티입니다.The bcp command line utility works with Microsoft SQL Server running on-premises or in the cloud, on Linux, Windows or Docker and Azure SQL Database and Azure SQL Data Warehouse.

이 항목에서는 설명 방법을에:This topic will show you how to:

  • 사용 하 여 테이블에 데이터를 가져오기는 bcp in 명령Import data into a table using the bcp in command
  • 테이블 데에서 데이터 내보내기는 bcp out 명령Export data from a table uisng the bcp out command

SQL Server 명령줄 도구를 설치 합니다.Install the SQL Server command-line tools

bcpLinux에서 SQL Server와 함께 자동으로 설치 되어 있지 않은 SQL Server 명령줄 도구를의 일부가입니다.bcp is part of the SQL Server command-line tools, which are not installed automatically with SQL Server on Linux. Linux 컴퓨터에서 SQL Server 명령줄 도구를 아직 설치 하지 있는 경우 설치 해야 합니다.If you have not already installed the SQL Server command-line tools on your Linux machine, you must install them. 도구를 설치 하는 방법에 대 한 자세한 내용은 다음 목록에서 Linux 배포판을 선택 합니다.For more information on how to install the tools, select your Linux distribution from the following list:

Bcp 사용 하 여 데이터 가져오기Import data with bcp

이 자습서에서는 만들어집니다 예제 데이터베이스 및 테이블을 로컬 SQL Server 인스턴스에서 (localhost) 다음 사용 하 여 bcp 를 디스크에 있는 텍스트 파일에서 예제 테이블로 로드 합니다.In this tutorial, you will create a sample database and table on the local SQL Server instance (localhost) and then use bcp to load into the sample table from a text file on disk.

예제 데이터베이스 및 테이블 만들기Create a sample database and table

이 자습서의 나머지 부분에 사용 되는 단순 테이블이 포함 된 예제 데이터베이스를 만들어 보겠습니다.Let's start by creating a sample database with a simple table that will be used in the rest of this tutorial.

  1. Linux 상자, 명령 터미널을 엽니다.On your Linux box, open a command terminal.

  2. 복사한 터미널 창에 다음과 같은 명령을 붙여 넣습니다.Copy and paste the commands below into the terminal window. 이러한 명령을 사용 하 여는 sqlcmd 예제 데이터베이스를 만드는 명령 줄 유틸리티 (BcpSampleDB) 및 테이블 (TestEmployees) 로컬 SQL Server 인스턴스에서 (localhost).These commands use the sqlcmd command line utility to create a sample database (BcpSampleDB) and a table (TestEmployees) on the local SQL Server instance (localhost). 대체는 username<your_password> 명령을 실행 하기 전에 필요에 따라 합니다.Remember to replace the username and <your_password> as necessary before running the commands.

데이터베이스를 만들 BcpSampleDB:Create the database BcpSampleDB:

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

테이블을 만들 TestEmployees 데이터베이스에 BcpSampleDB:Create the table TestEmployees in the database BcpSampleDB:

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

원본 데이터 파일 만들기Create the source data file

복사한 터미널 창에서 다음 명령을 붙여 넣습니다.Copy and paste the command below in your terminal window. 기본 제공 사용 하 여 cat 으로 홈 디렉터리에 파일을 저장 하는 세 개의 레코드를 사용 하 여 샘플 텍스트 데이터 파일을 만들려면 명령 ~/test_data.txt합니다.We will use the built-in cat command to create a sample text data file with 3 records save the file in your home directory as ~/test_data.txt. 레코드의 필드는 쉼표로 구분 됩니다.The fields in the records are delimited by a comma.

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

터미널 창에서 다음 명령을 실행 하 여 올바르게 데이터 파일이 만들어졌는지 확인할 수 있습니다.You can verify that the data file was created correctly by running the command below in your terminal window:

cat ~/test_data.txt

터미널 창에서 다음 표시할지:This should display the following in your terminal window:

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

원본 데이터 파일에서 데이터 가져오기Import data from the source data file

복사한 터미널 창에 다음과 같은 명령을 붙여 넣습니다.Copy and paste the commands below into the terminal window. 이 명령은 사용 하 여 bcp 로컬 SQL Server 인스턴스에 연결 하려면 (localhost) 데이터 파일에서 데이터를 가져올 (~/test_data.txt) 테이블에 (TestEmployees) 데이터베이스에서 (BcpSampleDB).This command uses bcp to connect to the local SQL Server instance (localhost) and import the data from the data file (~/test_data.txt) into the table (TestEmployees) in the database (BcpSampleDB). 사용자 이름을 대체 하 고 <your_password> 명령을 실행 하기 전에 필요에 따라 합니다.Remember to replace the username and <your_password> as necessary before running the commands.

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

다음은 명령줄 매개 변수를 사용 했습니다 간략 한 개요 bcp 이 예에서:Here's a brief overview of the command line parameters we used with bcp in this example:

  • -S: SQL Server의 인스턴스를 연결 하는 데 지정-S: specifies the instance of SQL Server to which to connect
  • -U: ID가 SQL Server에 연결 하는 데 사용 되는 로그인을 지정 합니다.-U: specifies the login ID used to connect to SQL Server
  • -P: 로그인 ID에 대 한 암호를 지정 합니다.-P: specifies the password for the login ID
  • -d: 연결할 데이터베이스를 지정 합니다.-d: specifies the database to connect to
  • -c: 문자 데이터 형식을 사용 하 여 작업을 수행 합니다.-c: performs operations using a character data type
  • -t: 필드 종결자를 지정 합니다.-t: specifies the field terminator. 사용 하 여 comma 데이터 파일에서 레코드를 필드 종결자로We are using comma as the field terminator for the records in our data file

참고

이 예제는 사용자 지정 행 종결자를 지정 하지 않은 우리 합니다.We are not specifying a custom row terminator in this example. 텍스트 데이터 파일의 행으로 올바르게 종료 된 newline 사용 했습니다는 cat 이전 데이터 파일을 만드는 명령입니다.Rows in the text data file were correctly terminated with newline when we used the cat command to create the data file earlier.

터미널 창에서 다음 명령을 실행 하 여 데이터를 성공적으로 가져온 있는지 확인할 수 있습니다.You can verify that the data was successfully imported by running the command below in your terminal window. 대체는 username<your_password> 명령을 실행 하기 전에 필요에 따라 합니다.Remember to replace the username and <your_password> as necessary before running the command.

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

이 다음과 같은 결과 표시 되어야 합니다.This should display the following results:

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

(3 rows affected)

Bcp 사용 하 여 데이터 내보내기Export data with bcp

이 자습서를 사용 하 여 bcp 새 데이터 파일에 앞에서 만든 예제 테이블에 데이터를 가져올 수 있도록 합니다.In this tutorial, you will use bcp to export data from the sample table we created earlier to a new data file.

복사한 터미널 창에 다음과 같은 명령을 붙여 넣습니다.Copy and paste the commands below into the terminal window. 이러한 명령을 사용 하 여는 bcp 테이블에서 데이터를 내보내려면 명령 줄 유틸리티 TestEmployees 에 데이터베이스에 BcpSampleDB 라는 새 데이터 파일에 ~/test_export.txt합니다.These commands use the bcp command line utility to export data from the table TestEmployees in the in the database BcpSampleDB to a new data file called ~/test_export.txt. 사용자 이름을 대체 하 고 <your_password> 명령을 실행 하기 전에 필요에 따라 합니다.Remember to replace the username and <your_password> as necessary before running the command.

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

터미널 창에서 다음 명령을 실행 하 여 데이터가 올바르게 내보낸 있는지 확인할 수 있습니다.You can verify that the data was exported correctly by running the command below in your terminal window:

cat ~/test_export.txt

터미널 창에서 다음 표시할지:This should display the following in your terminal window:

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

참고 항목See also