JP2018132948A - 読込プログラム、読込方法および情報処理装置 - Google Patents
読込プログラム、読込方法および情報処理装置 Download PDFInfo
- Publication number
- JP2018132948A JP2018132948A JP2017026165A JP2017026165A JP2018132948A JP 2018132948 A JP2018132948 A JP 2018132948A JP 2017026165 A JP2017026165 A JP 2017026165A JP 2017026165 A JP2017026165 A JP 2017026165A JP 2018132948 A JP2018132948 A JP 2018132948A
- Authority
- JP
- Japan
- Prior art keywords
- record
- file
- block
- delimiter
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Software Systems (AREA)
Abstract
【解決手段】情報処理装置は、複数のプロセスにより、デリミタにより区切られたテキストファイルを分割した複数の分割ファイルそれぞれに対して、拡張書式が有効である場合と無効である場合の双方の場合における、レコード区切り候補を特定する。情報処理装置は、複数の分割ファイルを、先頭部分からの順番に対応した順序で、拡張書式が有効である場合か、無効である場合かの状態をそれぞれ確定することにより、テキストファイルのレコード区切りを確定させる。
【選択図】図7
Description
実施例1にかかる情報処理装置10は、複数のCPU(Central Processing Unit)を有し、並列処理を実行するサーバ装置の一例である。例えば、情報処理装置10は、コンピュータ資源として、48個以上のCPU、256GBの容量を有するRAM、で乱アクセスに強い不揮発性メモリ型のディスクなどを有する。
図2は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。図2に示すように、情報処理装置10は、通信部11、第1記憶部12、第2記憶部14、第3記憶部16、制御部20を有する。
ここで、第1入力部30と第2入力部40と第3入力部50とによる並列処理について説明する。図7は、CSV解析の並列処理を説明する図である。図7に示すように、分割部25によって、入力のCSVファイルがブロック1、ブロック2、ブロック3に分割される。そして、第1入力部30(プロセスP1)にブロック1が割り振られ、第2入力部40(プロセスP2)にブロック2が割り振られ、第3入力部50(プロセスP3)にブロック3が割り振られる。
次に、上述したCSVファイルの解析処理について説明する。ここでは、一例として、第1入力部30、第2入力部40、第3入力部50をまとめてデータ入力部70として説明する。
次に、図8のS106に該当する探索処理について説明する。図9は、探索処理の流れを示すフローチャートである。図9に示すように、データ入力部70は、探索位置をバッファ先頭に位置づけ(S201)、位置づけたバイトを参照して、囲み文字か否かを判定する(S202)。
次に、図8のS108に該当する更新・連携処理について説明する。図10は、更新・連携処理の流れを示すフローチャートである。図10に示すように、データ入力部70は、プロセス管理キューの先頭であり、自プロセスの処理順番となった場合(S301:Yes)、ブロック共有情報17の前ブロックの範囲終了時点の囲み情報(A)を取得する(S302)。
上述したように、情報処理装置10は、1度目の並列読み込みでは、読み込み開始地点における、囲み文字の状態がONとOFFの両方のパターンがあると想定してCSV解析を行う。CSVファイルの全ての領域を解析後、後続ブロックを処理するプロセスが、先行ブロックを処理するプロセスの解析完了後の情報を参照する。この情報により、各プロセスは、自担当部分が囲み文字のONまたはOFFのどちらで始まったかを判定し、自身の解析結果に照らし合わせて、終端となる改行コードの位置を決定できる。各プロセスは、2度目の並列読み込みにより、レコードの先頭から読み込みとエンコード部への転送を開始することができる。なお、2度目に読み込む順番は、先頭からの順番に限らず、先頭部分からの順番に対応した順序であればよく、先行ブロックが確定すれば、後続ブロックの読み込みが開始できる。
図11は、実施例2にかかる入力ファイルの割当てを説明する図である。図11の例では、ファイルキャッシュが1MBの例で説明する。この場合、分割部25は、入力ファイルを1MBずつ分割し、n個の分割ファイルを生成する。そして、分割部25は、ブロック1をプロセスP1に割当て、ブロック2をプロセスP2に割当て、ブロック3をプロセスP3に割当てる。
次に、各プロセス(第1入力部30と第2入力部40と第3入力部50)による並列処理について説明する。図12は、実施例2にかかるCSVの解析手法を説明する図である。図12に示すように、分割部25は、入力ファイルであるCSVファイルを1MBずつ分割する。そして、分割部25は、第1入力部30(プロセスP1)にブロック1を割り振り、第2入力部40(プロセスP2)にブロック2を割り振り、第3入力部50(プロセスP3)にブロック3を割り振る。
次に、実施例1とは異なるブロック共有情報17の管理形態を説明する。実施例2では、実施例1とは異なり、ブロック内の全レコードの開始位置を管理する。図13は、実施例2にかかるブロック共有情報の更新例を説明する図である。実施例2では、図13に示すように、各プロセスは、「ブロックNo、ブロックサイズ、範囲開始点の囲み状態がOFFの場合、範囲開始点の囲み状態がONの場合」を対応付けて管理する。
上述したように、実施例2によれば、1度目の解析で、範囲内全レコードの開始位置をメモリに記憶することで、2度目の解析では改行コードの探索が不要で転送のみとなるため、CPUの処理量が従来方式と変わらず、並列実行による性能向上が得られる。
上記実施例では、拡張書式の一例としてダブルコーテーション、デリミタの一例としてカンマ区切りを用いて説明したが、これに限定されるものではない。囲み文字として何を使用するかを予め指定することもでき、スペースやタブやセミコロンなどをデリミタとして用いることもできる。
実施例2では、CSV解析範囲を1MBに限定した例で説明した。この範囲を超える長さのCSVレコード(例えば2MB)が頻出すると、レコード転送処理(図12の(3))を実施しないプロセスの処理が頻発して効率が低下する。そこで、図12の確定処理(2)の結果、初期に決めたCSV解析範囲のサイズを超えるCSVレコードを検知した場合には、レコード転送処理(図12の(3))まで完了後、全てのプロセスで一旦同期を取り、CSV解析範囲を大きいサイズに再設定する。例えば、初期値1MBでCSVの解析処理を実施中に、確定処理で2MBのCSVレコードを検知した場合には、レコード転送処理完了後に、解析範囲を10MBに拡張してCSVの解析処理を再実行する。
記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
次に、情報処理装置10のハードウェア構成例を説明する。図14は、ハードウェア構成例を説明する図である。図14に示すように、情報処理装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。
11 通信部
12 第1記憶部
13 入力ファイル
14 第2記憶部
15 データDB
16 第3記憶部
17 ブロック共有情報
20 制御部
25 分割部
30 第1入力部
31 ローカルバッファ
32 解析部
33 確定部
40 第2入力部
41 ローカルバッファ
42 解析部
43 確定部
50 第3入力部
51 ローカルバッファ
52 解析部
53 確定部
60 生成部
Claims (6)
- コンピュータに、
複数のプロセスにより、デリミタにより区切られたテキストファイルを分割した複数の分割ファイルそれぞれに対して、拡張書式が有効である場合と無効である場合の双方の場合における、レコード区切り候補を特定し、
前記複数の分割ファイルを、先頭部分からの順番に対応した順序で、前記拡張書式が有効である場合か、無効である場合かの状態をそれぞれ確定することにより、前記テキストファイルのレコード区切りを確定させる、
処理を実行する読込プログラム。 - 前記複数の分割ファイルそれぞれのサイズは、前記複数のプロセスが動作する前記コンピュータのファイルキャッシュよりも小さいサイズであり、
確定したレコード区切りを記憶領域に蓄積し、
蓄積された前記レコード区切りに基づき、前記複数のプロセスがレコードを読み込む処理を前記コンピュータに実行することを特徴とする請求項1に記載の読込プログラム。 - 前記拡張書式は、前記テキストファイルにおいて、改行コードをデータの一部として扱うことを表現する囲み文字であることを特徴とする請求項1または2に記載の読込プログラム。
- 前記拡張書式は、ダブルコーテーションであり、前記デリミタは、カンマ区切りであることを特徴とする請求項1または2に記載の読込プログラム。
- コンピュータが、
複数のプロセスにより、デリミタにより区切られたテキストファイルを分割した複数の分割ファイルそれぞれに対して、拡張書式が有効である場合と無効である場合の双方の場合における、レコード区切り候補を特定し、
前記複数の分割ファイルを、先頭部分からの順番に対応した順序で、前記拡張書式が有効である場合か、無効である場合かの状態をそれぞれ確定することにより、前記テキストファイルのレコード区切りを確定させる、
処理を実行する読込方法。 - 複数のプロセスにより、デリミタにより区切られたテキストファイルを分割した複数の分割ファイルそれぞれに対して、拡張書式が有効である場合と無効である場合の双方の場合における、レコード区切り候補を特定する特定部と、
前記複数の分割ファイルを、先頭部分からの順番に対応した順序で、前記拡張書式が有効である場合か、無効である場合かの状態をそれぞれ確定することにより、前記テキストファイルのレコード区切りを確定させる確定部と
を有する情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017026165A JP6772883B2 (ja) | 2017-02-15 | 2017-02-15 | 読込プログラム、読込方法および情報処理装置 |
US15/892,845 US10990604B2 (en) | 2017-02-15 | 2018-02-09 | Non-transitory computer-readable storage medium, record data processing method, and record data processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017026165A JP6772883B2 (ja) | 2017-02-15 | 2017-02-15 | 読込プログラム、読込方法および情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018132948A true JP2018132948A (ja) | 2018-08-23 |
JP6772883B2 JP6772883B2 (ja) | 2020-10-21 |
Family
ID=63105201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017026165A Active JP6772883B2 (ja) | 2017-02-15 | 2017-02-15 | 読込プログラム、読込方法および情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10990604B2 (ja) |
JP (1) | JP6772883B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020107010A (ja) * | 2018-12-27 | 2020-07-09 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP2021009528A (ja) * | 2019-06-30 | 2021-01-28 | 大 益滿 | データベースと情報処理システム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301474B2 (en) * | 2019-05-03 | 2022-04-12 | Microsoft Technology Licensing, Llc | Parallelized parsing of data in cloud storage |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636861B1 (en) * | 2000-02-01 | 2003-10-21 | David J. Stack | Real-time database upload with real-time column mapping |
US7185232B1 (en) * | 2001-02-28 | 2007-02-27 | Cenzic, Inc. | Fault injection methods and apparatus |
US8065267B2 (en) * | 2005-01-12 | 2011-11-22 | Masatsugu Noda | Information processing device, file data merging method, file naming method, and file data output method |
WO2006081428A2 (en) * | 2005-01-27 | 2006-08-03 | Symyx Technologies, Inc. | Parser for generating structure data |
US7512610B1 (en) * | 2005-09-30 | 2009-03-31 | Miosoft Corporation | Processing data records |
US7774746B2 (en) * | 2006-04-19 | 2010-08-10 | Apple, Inc. | Generating a format translator |
JP5171211B2 (ja) | 2007-11-01 | 2013-03-27 | 三菱電機株式会社 | データ形式変換装置 |
US9633097B2 (en) * | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
EP2912579B1 (en) * | 2012-10-23 | 2020-08-19 | IP Reservoir, LLC | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633093B2 (en) * | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9268801B2 (en) * | 2013-03-11 | 2016-02-23 | Business Objects Software Ltd. | Automatic file structure and field data type detection |
JP6260359B2 (ja) * | 2014-03-07 | 2018-01-17 | 富士通株式会社 | データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法 |
GB2541577A (en) * | 2014-04-23 | 2017-02-22 | Ip Reservoir Llc | Method and apparatus for accelerated data translation |
US9864797B2 (en) * | 2014-10-09 | 2018-01-09 | Splunk Inc. | Defining a new search based on displayed graph lanes |
US10248720B1 (en) * | 2015-07-16 | 2019-04-02 | Tableau Software, Inc. | Systems and methods for preparing raw data for use in data visualizations |
-
2017
- 2017-02-15 JP JP2017026165A patent/JP6772883B2/ja active Active
-
2018
- 2018-02-09 US US15/892,845 patent/US10990604B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020107010A (ja) * | 2018-12-27 | 2020-07-09 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP7174245B2 (ja) | 2018-12-27 | 2022-11-17 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP2021009528A (ja) * | 2019-06-30 | 2021-01-28 | 大 益滿 | データベースと情報処理システム |
Also Published As
Publication number | Publication date |
---|---|
JP6772883B2 (ja) | 2020-10-21 |
US20180232353A1 (en) | 2018-08-16 |
US10990604B2 (en) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9846645B1 (en) | Managing objects stored in memory | |
JP6191691B2 (ja) | 異常検出装置、制御方法、及びプログラム | |
US20200201763A1 (en) | Memory hierarchy-aware processing | |
JPWO2012026034A1 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
CN112286459A (zh) | 一种数据处理方法、装置、设备及介质 | |
JP6772883B2 (ja) | 読込プログラム、読込方法および情報処理装置 | |
CN110609807B (zh) | 用于删除快照数据的方法、设备和计算机可读存储介质 | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
US10599472B2 (en) | Information processing apparatus, stage-out processing method and recording medium recording job management program | |
US11809733B2 (en) | Systems and methods for object migration in storage devices | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN106537321B (zh) | 存取文件的方法、装置和存储*** | |
US10083121B2 (en) | Storage system and storage method | |
JP5776813B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム | |
CN112711564A (zh) | 合并处理方法以及相关设备 | |
EP3296878B1 (en) | Electronic device and page merging method therefor | |
US20180329756A1 (en) | Distributed processing system, distributed processing method, and storage medium | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN112685334A (zh) | 一种分块缓存数据的方法、装置及存储介质 | |
JP2017058738A (ja) | 情報処理装置および画像形成装置 | |
CN112231292A (zh) | 文件处理方法、装置、存储介质及计算机设备 | |
JP7061294B2 (ja) | コプロセッサ処理の高速化の方法とプログラム | |
GB2516092A (en) | Method and system for implementing a bit array in a cache line | |
CN118276782A (zh) | 计算任务的执行方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200901 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200914 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6772883 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |