大きなCSVファイルでクエリビルダーを使用する今日、あるお客様とクエリビルダーについてお話しました。お客様は大容量(3GB以上)のCSVファイルをお持ちで、JMPに直接読み込もうとしましたが、パフォーマンスが大幅に低下しているとのこと。データをインポートしたい理由は、分析用に適切なサイズのデータをサブセット化するためでした。お客様は、クエリビルダーでCSVファイルを直接操作する方法があるかどうかを知りたいとのことでした。
DB Browser for SQLiteを使えばCSVファイルをSQLiteデータベースに変換し、クエリビルダーでクエリを実行できると提案しました。直接アクセスするのは無理だと思っていました。この件について、何か戦略やアイデアをお持ちの方がいらっしゃいましたら、ぜひ教えてください。
ご意見は?
M
Re: 大きなCSVファイルでクエリビルダーを使用する最新情報 - ActualTech社がバグを発見し、ドライバーとMojaveサポート関連の問題のアップデートを実施しています。アップデートの配信時期については、まだ発表されていません。
MRe: 大きなCSVファイルでクエリビルダーを使用するうわあ、クエリビルダーから直接CSVファイルを扱う方法があるんですね。Microsoft(Windows)とActualTech(MacOS)はどちらも、CSV、TSV、XSLXファイルをデータソースとして扱えるドライバーを開発しています。つまり、クエリビルダーからODBC経由でクエリを実行できるということです。これによって得られる選択肢は本当に刺激的です。
Windowsの場合は、アクセスドライバーセットをインストールする必要があります。動作するドライバーは、こちら( https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255 )で見つかりました。あとは新しいデータソースを設定するだけです。Windows 7のVMを使用して、CSVファイルで期待通りに動作することを確認しました。
(編集 - より新しいドライバー セットはここにあります: https://www.microsoft.com/en-us/download/details.aspx?id=54920 )
Macの場合は、ActualTechのAccess Driverを使用します。こちらもセットアップは簡単ですが、クエリの動作に問題があります。ドライバの問題だと確信しているので、ActualTechに問い合わせました。回答が届き次第、この情報を更新します。接続とクエリは正常に動作しますが、結果が止まることなく何度も繰り返されているようです。(例えば、300行のCSVファイルの場合、クエリを終了するまでに結果が最大100万行になることがあります。その場合、300行が順番に繰り返されます。)
ということで、Windows の場合は、これを顧客に見せるのに問題ないと思われます。Mac の場合は、もう少しお待ちください。
M
Re: 大きなCSVファイルでクエリビルダーを使用するおそらくそうではないでしょう。私もその点をすっかり忘れていました… 良い指摘ですね。ただ、CSVファイルでQBを直接使えるようにしたいのだと思います。データテーブルQBと組み合わせるのが良い解決策になるかもしれません。
MRe: 大きなCSVファイルでクエリビルダーを使用するちなみに、クエリ ビルダーではなく、直接テキスト インポートについて言及しています。Re: 大きなCSVファイルでクエリビルダーを使用するファイル全体をスキャンするのではなく、列タイプのみを 5 秒間スキャンするように設定しましたか?
ブライアン
Re: 大きなCSVファイルでクエリビルダーを使用する最終的には読み込みはされますが、JMP はファイル全体の読み込みを試みてから、処理方法を決定します。つまり、これはハードウェアの問題ではなく、JMP がフラットファイルを処理する方法に問題があるということです。
MRe: 大きなCSVファイルでクエリビルダーを使用するこれは PC のみ対応かご存知ですか? Mac に関する情報は見つかりません。Re: 大きなCSVファイルでクエリビルダーを使用する最初に思ったのはこれですが、「プレビュー付きデータ」オプションを使うと、プレビューが表示される前にJMPがファイル全体を解析する必要があるので、処理が遅くなります。ハングアップするわけではなく、オプションが表示される前にファイルの最初の読み込みに非常に時間がかかるだけです。
MRe: 大きなCSVファイルでクエリビルダーを使用するマイク、
インストールされている RAM の容量をご存知ですか?
他にはどんなアプリケーションを開いているのでしょうか?
一般的に、最小 RAM はファイル サイズの 2 倍です。つまり、この場合、1 つの 3 GB ファイルを開くための最小 RAM は、最低 6 GB の RAM が必要になります。
そして、3GB のファイルのうち 1 つ以上を開こうとしているのでしょうか?
各CSVファイルをExcelで直接開くのにかかる時間はどれくらいですか?JMPでCSVファイルを開くのにかかる時間も同程度になると思います。
スタン
Re: 大きなCSVファイルでクエリビルダーを使用するOfficeがインストールされている場合は、Microsoftが提供するテキスト用のODBCドライバーがあります。しかし、パフォーマンスの問題の解決にはならないと思います。このドライバーがあれば、テキストファイルをJMP内に完全に保存することなく、データベースクエリビルダーで簡単なWhere句を実行できるようになります。
ブライアン
Re: 大きなCSVファイルでクエリビルダーを使用する「プレビュー付きデータ」でファイルを開くと、CSVのサブセットを作成できます。そこまではできるのでしょうか?それとも、この操作中にマシンがハングしてしまうのでしょうか?