おそらく一番簡単なデータベースと思われるCSVファイルについていろいろ語りましょう。
0246NAME IS NULL2015/11/12(木) 23:33:32.62ID:/afGrOLm
0247NAME IS NULL2015/12/04(金) 15:14:41.25ID:SUaZoleF
ある基幹システムにcsvからデータをインポートする作業があるとして
そのcsvデータが取り込み形式に合っているかどうかのチェックをしたいんですが
どういった方法が一番いいですか?
チェックしたいのは、
・項目の並びが正しいか
・各項目に不整合な形式のデータがないか
(例えば、日付データの場所に文字列とか)
よろしくお願いします。
0250NAME IS NULL2015/12/12(土) 20:58:25.42ID:X9wcWIIa
>>247
Excelにインポートしてチェックする。
プログラム作ってチェックする。 0251NAME IS NULL2015/12/12(土) 20:59:30.78ID:X9wcWIIa
なんでCSVファイルのことがデータベース板にあるのか。
0252NAME IS NULL2015/12/22(火) 17:51:46.45ID:M/D0CZ4+
いろんな情報のデータベース板と思えばいい
0255NAME IS NULL2016/02/04(木) 15:04:40.41ID:vrajJNnU
ExcelとしてはTSVファイルの方が相性がいいのに、なんでみんなCSVにこだわってるんだろうか。
TSVもCSVの一種として扱ってるのにわざわざ区別する奴はなんなんだろう
0257NAME IS NULL2016/02/04(木) 21:19:05.87ID:vrajJNnU
>>257
TSVもCSVのうちという話じゃないの? 0259NAME IS NULL2016/02/14(日) 05:31:30.67ID:bY+ncSXr
名称としてTSVなんて一般的じゃない
タブで区切ったCSVという呼び方のが通じるw
0261NAME IS NULL2016/02/14(日) 19:02:40.49ID:bY+ncSXr
0262NAME IS NULL2016/02/14(日) 22:32:59.76ID:z/fFeDUz
>>261
昔はメールと言ったら手紙のことだったが、
インターネットが普及するのにしたがってメールは電子メールのことを
表すようになった。つまり、タブ区切りこそが真のCSVである。それでいいな? 0263NAME IS NULL2016/02/15(月) 13:12:06.53ID:fwBBCAc8
マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !
>>259
character separated values
で検索してみるといい >>264
それ知ってるけど、そういうのも含めて、一回csvって絶滅しねーかな。
csvのうち、セパレータがタブのものはtsvっていうなら、セパレータがカンマのはなんて呼ぶんだ?
絶滅後に、もう一回仕様をきっちりしてほしいよ >>265
すでに一回絶滅したよ
そしてRFCが出来た 0267NAME IS NULL2016/05/23(月) 12:53:53.53ID:WNFQzXcv
初めて業務でcsvファイルを扱うことになり(ちょっとした雑務程度ですが)
open officeを今使っているのですが、
ある列(縦)のデータ(Aとします)と、
ある列のデータ(Bとします)の二つを抽出して、
そのデータを両方とも降順を昇順にして
Aのデータ(x1,x2,x3...)に、Bのデータ(y1,y2,y3...)を加えて
ABのデータ(x1,y1,x12,y2,x3,y3...)にして、
そのデータを他のデータに追加したいです。
事務作業をやったことがこれまでにないので、
どうか心優しい方教えて下さいましたらありがたいです。
>>267
教えてほしいのはやり方です。
宜しく御願いいたします。 0269NAME IS NULL2016/05/23(月) 13:33:25.16ID:UP9ZYRKE
何を言ってるのがわからないうえに、Excelの操作ならExcelのスレッドで聞いた方がいい。
オッペンオフィスを使っているのか、
(会社がせこくて無料の)オッペンオフィスを使わされているのか。
Now, I am become Death, the destroyer of world
0272NAME IS NULL2017/12/29(金) 11:38:51.81ID:dtNZwIie
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
L1WOEFDH6U
Cassava Editorっていまもまだ更新続いてるのか・・・
現在進行形で10年以上、更新が続いているってすごいな
作者尊敬するわ
0274NAME IS NULL2019/09/05(木) 20:35:26.00ID:DlL3ZhYX
>>273
あすかぜさんは神
あすかぜさん無しでは生きていけない 0275NAME IS NULL2019/09/13(金) 00:27:52.13ID:JsZ81e/N
Cassava Editorが存在することで日本の生産性が向上していることは間違いない
幾度ものタピオカブームの浮き沈みも関係なく
cassava editorは進歩する
SUMとかAVERAGEとかの基本的な関数だけでも実装してくれたらなぁ。。
0278NAME IS NULL2020/07/04(土) 23:14:10.34ID:pcZg9qmx
0279NAME IS NULL2020/07/09(木) 10:48:02.22ID:IGkzCBkT
CSVはRFCに従うよりエンマークでエスケープした方がLinuxで使いやすい
RFCとは別にPOSIXのCSVとしてエンマークエスケープのCSVが普及して欲しいと思う今日この頃
ASCIIセパレータのことも思い出してあげてください
0282NAME IS NULL2022/07/17(日) 23:11:42.70ID:/HVWy/+u
制御文字は人間に優しくないのがつらいんよねー
システマチックに使うだけなら良いかも
0283NAME IS NULL2022/09/03(土) 22:15:45.24ID:euVNIg62
Twitterで100GBのCSVを10GBのメモリのPCでソートするにはどうすればよいかって話題になってた
どうやればよいのだろうね
死ねばいいんじゃないんですかね
そういうシステムを作っちゃうやつは必ず同じ失敗を繰り返す
0285NAME IS NULL2022/09/05(月) 13:49:58.15ID:Tc12+IoI
システムの良し悪しじゃなくてDBに入れるとかそういう具体的なやり方の話をしたかった
CSVは基本可変長レコードだから、ファイルへのランダムアクセスでデータが取り出せない
それだけでソート行うのに不適ってわからない時点でもうダメ
データの入れ替えもとんでもなく困難
ファイルを固定長にするという発想があれば
ソートも入れ替えも比較的容易に出来るんですがねぇ…
あとはメモリ使用量の少ないソートアルゴリズムを選べばいい
0287NAME IS NULL2022/09/08(木) 13:59:49.98ID:ZUZFeHFR
だめだこりゃ
0288NAME IS NULL2022/09/08(木) 14:00:37.37ID:ZUZFeHFR
イキりマンがいるとダメだ
まさかcsvのソートができないなんて上から目線で言うやつがいるとは思わんかった。
ではイキリマンとは違う事を
正解を示すことで証明していただきたい
0292NAME IS NULL2022/09/09(金) 23:06:48.13ID:ybJikvqo
ふふふ
0293NAME IS NULL2022/09/11(日) 01:48:03.55ID:Mo970C1D
ソートするだけならマージソートでやれば良い
マージソートはレコードをシーケンシャルに読み書きしていくだけで良い
CSVが100GBで、1レコードが1KBだと仮定するとレコード数は1億
log2(1億) = 26.5
27回はスプリットとマージを繰り返さないといけない
100GB * 27 * 2(読みと書き) = 5400GB
ストレージの読み書き速度が500MB/sだとして3時間
性能要件的に3時間が是か非か
SQLiteやPostgreSQLにデータを入れてSQLでソートするにしても
DBではデータがノーマライズされるうえにインデックスも構築されるから
なんだかんだで同じくらい時間がかかりそう
RedshiftやBigQueryといった分散処理ができるDBを使えば速いだろうけど
ネットワークの速度が100MB/sだと仮定するとデータを転送するだけで16分かかるから
なんだかんだで20分前後かなあ
ストレージのIOがボトルネックになるとしてそれを改善するには
CSVを1回読んでレコードの(sortkey, offset, length)の組を抜き出してその組をソートして最後にレコードを抜き出すのが良い
1つの(sortkey, offset, length)が40バイトだとしてそれが1億あると4GB、PCのメモリが10GBならオンメモリでソートできそう
RFC4180に従う汎用的なCSVを入力として受け付けるならoffset, lengthの計算がちと面倒かもね
入力の生データを保持してCSVをパースできるならレコードをパースして生データからoffset, lengthを計算すればよいけれども
対応してるライブラリがあるかはわからない、CSVのパーサを自作する必要があるかも
0294NAME IS NULL2022/09/11(日) 02:08:10.54ID:Mo970C1D
10GBに収まるギリギリまでメモリ上でソートすればいいので27回も繰り返す必要はないのか
ストレージ上のデータがメモリ上では10倍になるとしてメモリ上でソートできるのは100万レコードくらいかな
100万レコードが100個できるとして
log2(100) = 6.6
100GB * 7 * 2(読みと書き) = 1400GB
ストレージの読み書き速度が500MB/sだとして47分
結構速いな
Excel365で開くと、最初は問題なく開けるのに、
しばらく使ってから開くと文字化けするのはなに?
文字化けするファイルもしないファイルも文字コードは同じ
PC再起動すれば一時的に直るけど、またしばらく使ってると再発する
0296NAME IS NULL2023/06/03(土) 19:09:16.93ID:WlpZXlkv
BOMが消されてるんじゃない?