テーブルからCSVの大量出力
2024-06-14 09:05
お世話になります。
100万件のテーブルがあったとします。100万件全部をCSVに出力するのはアクションがあり可能です。しかし、20万件を抽出してCSVに出力する方法がみつかりません。65536件以内であれば、いったんはシートに出力して、それをCSV出力できますが、それを超えた場合の出力する方法があれば教えてください。
よろしくお願いいたします。
回答を投稿するにはログインが必要です。
Yexiongmao様
ありがとうございます。その方法であればテーブルを介在しないのでスピードが速いかもしれません。やってみようと思います。
ありがとうございます。その方法であればテーブルを介在しないのでスピードが速いかもしれません。やってみようと思います。
こんにちは。
シートを使わない方法として。「csvファイルを読み取りデータ変換して保存する」を使うのはどうでしょうか?
csvファイルを変換してシートを介さず別のcsvファイルを生成します。
テーブルから出力したcsvファイルであれば、項目名付きなので、フィルタリング条件で、テーブルデータの出力と同様の条件設定ができます。
100万件のcsvファイルは残ってしまいますが、少数の無意味なデータで上書きするか、テンポラリーファイルとして他に活用することも可能です。
シートを使わない方法として。「csvファイルを読み取りデータ変換して保存する」を使うのはどうでしょうか?
csvファイルを変換してシートを介さず別のcsvファイルを生成します。
テーブルから出力したcsvファイルであれば、項目名付きなので、フィルタリング条件で、テーブルデータの出力と同様の条件設定ができます。
100万件のcsvファイルは残ってしまいますが、少数の無意味なデータで上書きするか、テンポラリーファイルとして他に活用することも可能です。
ご回答ありがとうございます。
出力用のテーブルの作成は、処理に相当な時間がかかりそうなので、懸念点ではあります。しかし、CSVを一つのファイルにするには、この方法しかなさそうですね。CSVにアペンドするアクションがあればいいのですが。
さらに検討してみます。よろしくお願いいたします。
出力用のテーブルの作成は、処理に相当な時間がかかりそうなので、懸念点ではあります。しかし、CSVを一つのファイルにするには、この方法しかなさそうですね。CSVにアペンドするアクションがあればいいのですが。
さらに検討してみます。よろしくお願いいたします。
![新日本コンピュータマネジメント株式会社](https://developer.celf.biz/wp-content/uploads/2019/06/3944475865d120330855d7.png)
![メダル](https://developer.celf.biz/wp-content/themes/celf-community/lib/img/common/icon-medal.png)
こんにちは
ご認識頂いている通り、条件を指定してCSV出力する際、
一旦シートに取込んでCSV出力する必要があります。
65536件のデータを超える場合は、「ページング」を応用してはいかがでしょうか。
ただし、ID、LAST_UPDATER、LAST_MODIFIEDの3カラムについては、変わってしまうため、必要に応じて、「(出力元テーブル名)_ID」などカラムを作成頂く必要があります。
【準備】
・CSV出力用のテーブルを用意する(以降、出力用テーブル)
【処理】
① 出力用テーブル内のデータを削除する(全件)
② 検索条件で出力する件数を取得する
③ シートの最大出力件数から繰り返し処理回数を算出
④ ③にて算出した回数分の次の⑤から⑦の処理を繰り返す
⑤ シートのデータの取得エリアをクリアする
⑥ 検索条件からデータをシートに取得する
⑦ 取得結果を出力用テーブルに登録する
⑧ 出力用テーブルからCSV出力
※【参考】「ページングを行う」:https://cloud.celf.jp/celf-help/ja/texts/tips/paging/paging.html
ご不明な点等がございましたら、改めてコメントいただけますでしょうか。
以上、よろしくお願いいたします。
ご認識頂いている通り、条件を指定してCSV出力する際、
一旦シートに取込んでCSV出力する必要があります。
65536件のデータを超える場合は、「ページング」を応用してはいかがでしょうか。
ただし、ID、LAST_UPDATER、LAST_MODIFIEDの3カラムについては、変わってしまうため、必要に応じて、「(出力元テーブル名)_ID」などカラムを作成頂く必要があります。
【準備】
・CSV出力用のテーブルを用意する(以降、出力用テーブル)
【処理】
① 出力用テーブル内のデータを削除する(全件)
② 検索条件で出力する件数を取得する
③ シートの最大出力件数から繰り返し処理回数を算出
④ ③にて算出した回数分の次の⑤から⑦の処理を繰り返す
⑤ シートのデータの取得エリアをクリアする
⑥ 検索条件からデータをシートに取得する
⑦ 取得結果を出力用テーブルに登録する
⑧ 出力用テーブルからCSV出力
※【参考】「ページングを行う」:https://cloud.celf.jp/celf-help/ja/texts/tips/paging/paging.html
ご不明な点等がございましたら、改めてコメントいただけますでしょうか。
以上、よろしくお願いいたします。