bcpユーティリティを使用したデータのインポート/エクスポートについて
はじめに
ローカルのSQLServerにデータをインポート/エクスポートする際に使用したbcpユーティリティについて、備忘のためにまとめています。
bcpユーティリティとは?
Microsoft SQL Serverの一括コピープログラム(BCP)APIを使用するコマンドラインツールのことです。
(参考) https://docs.microsoft.com/ja-jp/sql/tools/bcp-utility?view=sql-server-ver15
次のタスクが実行可能です。
- SQLServerテーブルからデータファイルへのデータの一括エクスポート
- クエリからのデータの一括エクスポート
- データファイルからSQLServerテーブルへのデータの一括インポート
- フォーマットファイルの生成
使用例 (約15000件のテストデータをインポート/エクスポート)
インポート
bcp User in ~/Desktop/users.dat -N -U "user" -P "password" -S 127.0.0.1 -b 1000
bcp テーブル名またはクエリ in/out/queryout/format 〜が基本の書き方となります。
テーブル名/クエリの後にどのタスクを実行するかを指定します。
実行タスク | 説明 |
---|---|
in data_file | ファイルからデータベース テーブルまたはビューへのコピーを行う。 |
out data_file | データベース テーブルまたはビューからファイルへのコピーを行う。 |
queryout data_file | クエリからのコピーを行う。データをクエリから一括コピーする場合にのみ指定する必要がある。 |
format nul | 指定されたオプション(-n、-c、-w、-N) と、テーブルやビューの区切り記号に基づいてフォーマットファイルを作成する。フォーマットファイルの作成についてはこちらをご参照ください。 |
その他のオプションは以下の通りです。
オプション | 説明 |
---|---|
-N | 文字以外のデータについてはデータベースのネイティブなデータ型を使用し、文字データについては Unicode 文字を使用して、一括コピー操作を実行する。フィールドごとにファイルストレージ型を確認するプロンプトが表示されず、よしなに型を判断してくれる。 |
-U login_id | SQLServerへの接続に使用されるログインIDを指定する。 |
-P password | ログインIDのパスワードを指定する。 |
-S server_name | サーバー名を指定する。 |
-b batch_size | 何行分のデータを1トランザクションとして扱うかを指定する。今回は1000を指定。 |
エクスポート
bcp "select * from User" queryout ~/Desktop/users.dat -N -U "user" -P "password" -S 127.0.0.1
今回はqueryoutを指定してクエリを用いたエクスポートを実行しました。
実行した結果、84ms.でエクスポートが完了しました。
参考リンク
Author And Source
この問題について(bcpユーティリティを使用したデータのインポート/エクスポートについて), 我々は、より多くの情報をここで見つけました https://qiita.com/ersn/items/a4f0d684f8757fec23f3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .