3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Db2 on Cloud上のテーブルにCSVファイルをロードする

Last updated at Posted at 2021-08-25

「Db2 on Cloudを使ってみる」シリーズ

Db2 on Cloud上のテーブルにCSVファイルをロードする方法はいくつかありますが、当記事ではWebコンソール(GUI)からロードする方法を説明します。

既存テーブルにロードに加えて、CSVファイルからテーブルを作成してロードもできます。当記事では両方説明します。

前提

Db2 on Cloudのサービスは作成済みであることを前提としています。
Db2 on CloudはLiteプランで無料で使えますので、お試しになりたい方は以下の記事を参考に作成してみてください。

0. 前準備1: CSVデータの準備

お手持ちのCSVファイルを使用してもOKです。

当記事では2021年8月現在オープンデータとして公開されている「東京都 新型コロナウイルス陽性患者発表詳細」というデータを使用して説明します。

以下からPCへダウンロードします:
https://stopcovid19.metro.tokyo.lg.jp/data/130001_tokyo_covid19_patients.csv

文字コードはUTF-8(BOM付き)です。

0. 前準備2: IBM Cloudにログインし、Webコンソールを表示する

以下を参照して表示してください:
Db2 on Cloud: Web管理コンソールの表示

これで準備はできました!

1. 左側のメニューからデータをクリック

横線のメニューをクリックするとアイコンに説明がつきます。
image.png

image.png

説明なしのアイコンのままでクリックしてもOKです。
image.png

2. 「ファイルの選択」の下のエリアに前準備1で準備したロードするCSVファイルをドラックします。

「データのロード」画面が表示されていない場合は、「データのロード」をクリックして、表示してから実施してください。
image.png

選択されたファイルの下にファイル名が表示されたら、「次へ」をクリックします
image.png

3. 「ロード・ターゲットの選択」の画面でロード先のスキーマをクリックします。

Liteプランの場合は1つだけ表示されています(スキーマの新規作成はできません)ので、それをクリックします。
Liteプランでない場合は、ロードしたいテーブルがあるスキーマまたはロードするテーブルを作りたいスキーマをクリックしてください。スキーマを新規に作りたい場合は上部メニューの「スキーマ」から作成して、その後この画面に戻ってください。

image.png

クリックしたスキーマの表(テーブル)一覧が表示されます。

4-a. 表(テーブル)を新規作成する場合

既存の表にロードする場合は 4-bに進んでください。
##4-a-1.「新規表+」をクリック
image.png

4-a-2. 新規表の作成画面で表名を入力し、「作成」をクリック

ここではCOVID_19_TOKYOとしています。
image.png

4-a-3. 4-a-2で入力した表名にチェックが入っていることを確認し「次へ」をクリック

image.png

4-a-4. 必要に応じて、属性や列名を編集する

CSVファイルを読んで、適当な属性がセットされます。
「先頭行のヘッダー」が「ON」 の場合は、列名はヘッダーの値になります。「東京都 新型コロナウイルス陽性患者発表詳細」のデータを使用している場合は「ON」のままでよいです。
自分の準備した先頭行がデータ(列名なし)の場合は、「先頭行のヘッダー」を「OFF」にしてください。

セットされた属性は時に意図しないものであったり、長さが足りなかったりすることがありますので、必要に応じて変更します。データ量の少ないファイルであればあまり問題ないかとは思います。
image.png

前準備1の「東京都 新型コロナウイルス陽性患者発表詳細」のデータを使用する場合は、以下のように属性を変更してください。結構長さが微妙なので長めにしてあります。

列名 属性 長さ
No INTEGER  
全国地方公共団体コード VARCHAR 6
都道府県名 VARCHAR 128
市区町村名 DATE  
公表_年月日 DATE  
発症_年月日 DATE  
確定_年月日 DATE  
患者_居住地 VARCHAR 128
患者_年代 VARCHAR 16
患者_性別 VARCHAR 16
患者_職業 VARCHAR 64
患者_状態 VARCHAR 128
患者_症状 VARCHAR 128
患者_渡航歴の有無フラグ CHAR 1
患者_接触歴の有無フラグ CHAR 1
備考 VARCHAR 128
退院済フラグ CHAR 1

属性が見えない場合は列の境界をドラッグして広げて表示させてください
image.png

image.png

Data typeや長さを変更します。
image.png

変更が終了したら5に進みます

4-b. 既存の表にロードする場合 

参考までに空の表は普通のDb2と同じく、SQLで作成できます。
GUIでいちいち属性を変えたくない場合はこちらの方法であらかじめ作成することもできます。
Db2 on Cloudにテーブル作成

4-b-1.ロード先の表名をクリック

image.png

4-b-2.「新規データの追加」 または 「新規データによる表の上書き」を選んで、「次へ」をクリック

image.png

5. ファイル属性を確認し、必要に応じて変更し、「次へ」をクリック

コードページ(ファイルの文字コード)が合っているか、DATEやTIMETAMPを属性に使用する場合は日付形式、時刻形式、タイムスタンプ形式が合っているか確認し、違っている場合は修正します。

image.png

6. 設定を確認し、「ロードの開始」をクリック

image.png

しばらく経つとロードが完了します。エラーや警告があった場合は右側のエラーまたは警告に表示されます。
ロードされた行数と拒否された行数、エラーと警告あるなしで全て正しくロードされたか確認します。
(通知はどこか通知以外のエリアをクリックすれば消えます)
image.png

表の表示をクリックしてデータを確認します。
image.png
image.png

7. 確認

テーブルを確認します。
7-1: 上のメニューから「表」をクリック
image.png

7-2: ロード先のスキーマををクリック
image.png

7-3:  ロード先のテーブル名が見えるのを確認し、テーブル名をクリック
image.png

7-4: 更新日時を確認(ただし日本時間ではなくUTC、ロードのログと数分ずれてる???)
image.png
さらにデータの表示をクリックし、データを参照することもできます。

本格的にはSQL等でQueryなどしてみてください。

以上です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?