CSVファイルを読み取り、データベースにインポートする

CSVファイルを読み取り、データベースにインポートする

Goanywhere2022.11.25

CSVファイルをデータベースにインポート

この説明書ではCSVファイルの内容を読み込んで、そのデータをデータベースに挿入する方法を学習します。 この例のSQL構文はMySQLに基づいていますが、GoAnywhereはSQL Server、Oracle、DB2、およびその他のデータベースで同じプロセスを実行できます。
まず、インポートしているCSVファイルの内容を調べます。列見出しが含まれ、各フィールドはコンマで区切られ、ファイル名はプロジェクトで参照されるemployees.csvです。

インポートするデータベーステーブルは、入力ファイルと一致するように4列で定義されています。最初の列は、従業員IDで、整数として定義されます。これは、表の主キーです。次に可変長文字として定義された姓と名の列、生年月日フィールドが続きます。

プロジェクトを作成する

GoAnywhere MFTでは、ワークフローメニューのプロジェクト項目をクリックしてプロジェクトエクスプローラにアクセスします。 次に、新しいプロジェクトを作成し、名前と説明を入力します。

プロジェクト作成

[プロジェクトデザイナー]ページから、[Read CSV]タスクを[コンポーネントライブラリ]から[プロジェクト概要]にドラッグします。 Read CSVで、入力ファイルの場所を入力します。次に、データベースに挿入するときにデータを参照するために、後で使用される出力行セット変数名を指定します。この例では、[data]を行セットの変数名として使用します。

作業しているCSVファイルには列見出しが含まれているため、スキップするために[高度な]タブの[最初の行をスキップ]で 'true'を指定する必要があります。デフォルトではフィールド区切り文字は 'comma'に設定されていますが、作業中のファイルが別の文字(タブ、パイプ、コロンなど)で区切られている場合は設定を変更できます。また、ファイル内の各レコードがキャリッジリターン改行(CRLF)で区切られていない場合は、別のレコード区切り文字を指定する必要があります。

Read CSVタスク

データの書式設定

CSVファイルからインポートするデータが、データベースの正しい形式でない可能性があります。たとえば、この例の生年月日はMM-dd-yyyyとして定義され、MySQLではyyyy-MM-ddと見なされます。

GoAnywhereはデータがデータベースに置かれる前に、読み込むデータに書式設定を設定することができます。Read CSVタスクの、[追加する]メニューをクリックし、[データオプションの指定]を選択します。次に、[追加する]を再度クリックし、[列を追加]を選択します。

例の入力ファイルでは4列目が含まれていますが、書式をスキップする列を指定することができます。[基本]タブでは、[索引]で4を指定して4番目の列を参照できます。次に、[型変換]タブで、タイプとして「日付」を指定し、パターン「MM-dd-yyyy」を入力します。これはGoAnywhereに生年月日の列が月 - 日 - 年形式であることを明示します。

Read CSVタスク-カラム設定

この同様のプロセスは、数値を含む追加の書式設定が必要な他の列にも適用できます。

SQL挿入

[コンポーネントライブラリ]から、[Read CSV]タスクの後に[SQL]タスクをプロジェクト概要にドラッグします。[SQL]タスクで、リソースのドロップダウンリストからデータベースサーバーを指定します。
データベースがまだ定義されていない場合は、フィールドの横にある「作成」ボタンをクリックして、データベースへの接続情報が定義できます。

SQLタスク

次のステップは、SQL ステートメントを追加することです。これは、[追加する]メニューをクリックし、[クエリを追加する]オプションを選択することで実行できます。
指定される最初の質問では、データベーステーブル内の既存の行がすべて削除され、このプロセスを複数回実行できます。この例のテーブル名は「従業員」なので、SQL ステートメント記号のSQL「employees from delete」を使用します。
次に、別のクエリ要素をSQLタスクに追加する必要があります。これは、SQLタスクを右クリックして[クエリを追加する]オプションを選択することで実行できます。

SQL ステートメント属性で、「employee(empid、lname、fname、bdate)values(?,?,?,?)」を入力します。入力ファイルの各列に対して、パラメータ値 '?'を指定する必要があります。入力ファイルの各列に対して、パラメータ値 '?'を指定する必要があります。コンマで区切られています。

[入力行セット変数]で、[Read CSV]タスクで使用した名前を指定します(たとえば$ {データ}など)。入力変数を指定するときは、変数名$ {[varName]}で囲みます。

SQLタスク-Query設定

プロジェクトを実行する

プロジェクト概要で[SQL]タスクをクリックし、[コントロール]タブを選択します。
[コントロール]タブの[ログレベル]フィールドでは、生成されるログメッセージのレベルを指定できます。プロジェクトの設計とテストでは、デバッグログレベルが有用な情報を提供します。
プロジェクトが意図どおりに実行されたら、ログレベルを下げて生成されるログの量を最小限に抑えることができます。
[実行]ボタンを押します。プロジェクトはコンパイルされ、自動的に保存され、実行されます。プロジェクトが実行されると、[ジョブログの表示]リンクが表示されます。ログを確認したり、必要に応じてテクニカルサポートにメールで送信することができます。ジョブログを見ると、CSVファイルが読み込まれ、古い行がデータベーステーブルから削除され、新しいデータがテーブルに挿入されたことがわかります。[完了]ボタンをクリックしてプロジェクトデザイナに戻り、[終了]をクリックしてプロジェクトマネージャに戻ります。