pythonを使用してExcelファイル/テーブルの特定のセルに書き込みまたは変更したい場合pandas read_csvを使用して、特定のセルの値を変更して書き込みますto_csvを使用してファイルに戻る。ただし、ファイルに書き戻すと、ファイル全体が上書きされ、更新されたバージョンのファイルが1つのセルでのみ異なるようになります。これは、1兆行と1兆列のテーブルで1つまたは2つのセルを変更するときに問題になります。 。
1兆行単位のテーブルから単一のセルに対して(SQLのように)書き込み/変更データベース操作を行っている場合、ファイル全体を上書きするのではなく、変更されたセルのみをディスクに変更しているようです。
データベースは、ファイル全体を上書きするのではなく、ディスク内のテーブルの特定のセルのみを書き込み/更新することをどのように促進しますか?
ところで、テーブルには数値の列名が含まれており、SQLはそれをサポートしていないため、SQLデータベースを使用していません。列名として数値をサポートするSQL/NOSQLデータベースを知っている場合は、私に知らせてください。
データベースに関する非常に一般的な誤解は、これで解消できます。
Database != File
データベースの行を更新するとき、ディスク上の基になるデータファイルは変更されませんまったく-少なくとも「しばらくの間」。代わりに、データベースはトランザクションログの変更を記録してから、値in memoryを更新します。しばらくすると、データベースは別の何かのためにそのメモリを必要とするようになり、変更された値をディスクに書き込みます。これが発生する頻度と一度に書き込まれるメモリの量は、DBMSによって異なります。
データベース内のデータストレージはPagesで測定され、それぞれに複数の行を含めることができます。あなたと私が一緒にプレイするテーブルを構成するもの。データベースがデータを必要とするとき、データベースはそのデータがデータファイル内のどこにあるかを調べ、relevantであるページのみをバッファキャッシュ(メモリ)にロードします。 )。これが、最初の実行時に一部のクエリの実行速度が遅いが、その後は非常に高速になる理由です。キャッシュから同じページを繰り返し処理すると、way高速で処理するよりも高速です。ディスク上のデータファイルからアップ。
...テーブルに数値の列名が含まれているため、SQLデータベースを使用していません...
データベースについての別の誤解がありますが、これも簡単に一掃できます。
Database != SpreadSheet
データベースでデータを構造化する方法は、最初はかなり「異質」に見えるかもしれません。データの「行」と「列」だけでなく、「複雑な」「人工的な」構成を使用する必要があるようです。しかし、whyを理解すると、これらの構造と、それらがあなたに与えるpowerが必要になりますデータ、あなたはそれをかなりすぐに乗り越えるでしょう。
...オペレーション... 1兆から1兆のテーブルの単一セルで...
1兆×1兆のテーブルのすべての値に本当に有用な値がありますか?個人的には、あなたがグーグルで働いていない限り、私はそれを疑います。
actuallyが持つのは、データよりも多くの「穴」があるスパース配列です。これは、リレーショナルテーブルが非常に簡単かつ非常に効率的にサポートできる構造です。