rabbit-slide-kou-oss-forum-apache-arrow 2018.12.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "benchmark"
4
+ require "tempfile"
5
+
6
+ require "arrow"
7
+ require "json"
8
+ require "csv"
9
+
10
+ tmp_dir = "/dev/shm"
11
+ unless File.directory?(tmp_dir)
12
+ tmp_dir = nil
13
+ end
14
+
15
+ def serialize_json(numbers, tmp_dir)
16
+ file = Tempfile.new(["bench-serialize", ".json"], tmp_dir)
17
+ file.open
18
+ JSON.dump(numbers, file)
19
+ file.close
20
+ file
21
+ end
22
+
23
+ def deserialize_json(file)
24
+ file.open
25
+ JSON.load(file)
26
+ file.close
27
+ end
28
+
29
+ def serialize_arrow(numbers, tmp_dir)
30
+ file = Tempfile.new(["bench-serialize", ".arrow"], tmp_dir)
31
+ numbers.save(file.path)
32
+ file
33
+ end
34
+
35
+ def deserialize_arrow(file)
36
+ Arrow::Table.load(file.path)
37
+ end
38
+
39
+ def serialize_csv(numbers, tmp_dir)
40
+ file = Tempfile.new(["bench-serialize", ".csv"], tmp_dir)
41
+ file.open
42
+ CSV.open(file.path, "w") do |csv|
43
+ numbers.each do |number|
44
+ csv << number
45
+ end
46
+ end
47
+ file
48
+ end
49
+
50
+ def deserialize_csv(file)
51
+ CSV.read(file.path)
52
+ end
53
+
54
+ Benchmark.bmbm do |job|
55
+ [
56
+ "JSON",
57
+ "Arrow",
58
+ "CSV",
59
+ ].each do |format|
60
+ [
61
+ 10000,
62
+ 100000,
63
+ 1000000,
64
+ ].each do |n|
65
+ srand(0)
66
+ numbers = n.times.collect {rand}
67
+ case format
68
+ when "Arrow"
69
+ numbers = Arrow::Table.new("number" => Arrow::Int32Array.new(numbers))
70
+ when "CSV"
71
+ numbers = numbers.collect do |number|
72
+ [number]
73
+ end
74
+ end
75
+ job.report("#{format}: serialize: #{n}") do
76
+ __send__("serialize_#{format.downcase}",
77
+ numbers,
78
+ tmp_dir)
79
+ end
80
+
81
+ file = __send__("serialize_#{format.downcase}",
82
+ numbers,
83
+ tmp_dir)
84
+ job.report("#{format}: deserialize: #{n}") do
85
+ __send__("deserialize_#{format.downcase}",
86
+ file)
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: oss-forum-apache-arrow
3
+ base_name: apache-arrow
4
+ tags:
5
+ - rabbit
6
+ - apachearrow
7
+ presentation_date: 2018-12-04
8
+ presentation_start_time: 2018-12-04T18:00:00+09:00
9
+ presentation_end_time: 2018-12-04T19:00:00+09:00
10
+ version: 2018.12.4.0
11
+ licenses:
12
+ - CC-BY-SA-4.0
13
+ - CC-BY-3.0
14
+ slideshare_id:
15
+ speaker_deck_id:
16
+ ustream_id:
17
+ vimeo_id:
18
+ youtube_id:
19
+ author:
20
+ markup_language: :rd
21
+ name: 須藤功平
22
+ email: kou@clear-code.com
23
+ rubygems_user: kou
24
+ slideshare_user: kou
25
+ speaker_deck_user:
@@ -0,0 +1,641 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="220.20432mm"
13
+ height="113.87171mm"
14
+ viewBox="0 0 780.25151 403.48245"
15
+ id="svg2"
16
+ version="1.1"
17
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"
18
+ sodipodi:docname="columnar.svg">
19
+ <defs
20
+ id="defs4" />
21
+ <sodipodi:namedview
22
+ id="base"
23
+ pagecolor="#ffffff"
24
+ bordercolor="#666666"
25
+ borderopacity="1.0"
26
+ inkscape:pageopacity="0.0"
27
+ inkscape:pageshadow="2"
28
+ inkscape:zoom="0.70710678"
29
+ inkscape:cx="-51.873414"
30
+ inkscape:cy="62.766108"
31
+ inkscape:document-units="px"
32
+ inkscape:current-layer="layer1"
33
+ showgrid="false"
34
+ inkscape:window-width="1920"
35
+ inkscape:window-height="1016"
36
+ inkscape:window-x="1920"
37
+ inkscape:window-y="27"
38
+ inkscape:window-maximized="1"
39
+ fit-margin-top="5"
40
+ fit-margin-bottom="5"
41
+ fit-margin-left="5"
42
+ fit-margin-right="5" />
43
+ <metadata
44
+ id="metadata7">
45
+ <rdf:RDF>
46
+ <cc:Work
47
+ rdf:about="">
48
+ <dc:format>image/svg+xml</dc:format>
49
+ <dc:type
50
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
+ <dc:title />
52
+ </cc:Work>
53
+ </rdf:RDF>
54
+ </metadata>
55
+ <g
56
+ inkscape:label="レイヤー 1"
57
+ inkscape:groupmode="layer"
58
+ id="layer1"
59
+ transform="translate(93.034971,-46.321779)">
60
+ <text
61
+ xml:space="preserve"
62
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.5px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
63
+ x="82.470558"
64
+ y="89.833176"
65
+ id="text8070"><tspan
66
+ sodipodi:role="line"
67
+ id="tspan8072"
68
+ x="82.470558"
69
+ y="89.833176"
70
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.5px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle">列</tspan></text>
71
+ <text
72
+ xml:space="preserve"
73
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
74
+ x="-253.87207"
75
+ y="-48.630936"
76
+ id="text8074"
77
+ transform="rotate(-90)"><tspan
78
+ sodipodi:role="line"
79
+ id="tspan8076"
80
+ x="-253.87207"
81
+ y="-48.630936"
82
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">行</tspan></text>
83
+ <text
84
+ xml:space="preserve"
85
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
86
+ x="21.302296"
87
+ y="132.48473"
88
+ id="text8078"><tspan
89
+ sodipodi:role="line"
90
+ id="tspan8080"
91
+ x="21.302296"
92
+ y="132.48473"
93
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">a</tspan></text>
94
+ <text
95
+ xml:space="preserve"
96
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
97
+ x="75.77713"
98
+ y="135.68472"
99
+ id="text8082"><tspan
100
+ sodipodi:role="line"
101
+ id="tspan8084"
102
+ x="75.77713"
103
+ y="135.68472"
104
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">b</tspan></text>
105
+ <text
106
+ xml:space="preserve"
107
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
108
+ x="131.02333"
109
+ y="132.48473"
110
+ id="text8086"><tspan
111
+ sodipodi:role="line"
112
+ id="tspan8088"
113
+ x="131.02333"
114
+ y="132.48473"
115
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">c</tspan></text>
116
+ <text
117
+ xml:space="preserve"
118
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
119
+ x="-32.560833"
120
+ y="186.3622"
121
+ id="text8090"><tspan
122
+ sodipodi:role="line"
123
+ id="tspan8092"
124
+ x="-32.560833"
125
+ y="186.3622"
126
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">1</tspan></text>
127
+ <text
128
+ xml:space="preserve"
129
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
130
+ x="-33.3577"
131
+ y="252.34659"
132
+ id="text8094"><tspan
133
+ sodipodi:role="line"
134
+ id="tspan8096"
135
+ x="-33.3577"
136
+ y="252.34659"
137
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">2</tspan></text>
138
+ <text
139
+ xml:space="preserve"
140
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
141
+ x="-33.3577"
142
+ y="317.86221"
143
+ id="text8098"><tspan
144
+ sodipodi:role="line"
145
+ id="tspan8100"
146
+ x="-33.3577"
147
+ y="317.86221"
148
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">3</tspan></text>
149
+ <text
150
+ xml:space="preserve"
151
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
152
+ x="12.213366"
153
+ y="187.33659"
154
+ id="text8111"><tspan
155
+ sodipodi:role="line"
156
+ id="tspan8113"
157
+ x="12.213366"
158
+ y="187.33659"
159
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
160
+ <text
161
+ id="text8115"
162
+ y="187.33659"
163
+ x="66.523338"
164
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
165
+ xml:space="preserve"><tspan
166
+ y="187.33659"
167
+ x="66.523338"
168
+ id="tspan8117"
169
+ sodipodi:role="line"
170
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
171
+ <text
172
+ xml:space="preserve"
173
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
174
+ x="120.85176"
175
+ y="187.33659"
176
+ id="text8119"><tspan
177
+ sodipodi:role="line"
178
+ id="tspan8121"
179
+ x="120.85176"
180
+ y="187.33659"
181
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
182
+ <text
183
+ id="text8123"
184
+ y="253.33659"
185
+ x="12.213366"
186
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
187
+ xml:space="preserve"><tspan
188
+ y="253.33659"
189
+ x="12.213366"
190
+ id="tspan8125"
191
+ sodipodi:role="line"
192
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
193
+ <text
194
+ xml:space="preserve"
195
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
196
+ x="67.351761"
197
+ y="253.33659"
198
+ id="text8127"><tspan
199
+ sodipodi:role="line"
200
+ id="tspan8129"
201
+ x="67.351761"
202
+ y="253.33659"
203
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
204
+ <text
205
+ id="text8131"
206
+ y="253.33659"
207
+ x="121.9426"
208
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
209
+ xml:space="preserve"><tspan
210
+ y="253.33659"
211
+ x="121.9426"
212
+ id="tspan8133"
213
+ sodipodi:role="line"
214
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
215
+ <text
216
+ xml:space="preserve"
217
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
218
+ x="12.213366"
219
+ y="315.83661"
220
+ id="text8135"><tspan
221
+ sodipodi:role="line"
222
+ id="tspan8137"
223
+ x="12.213366"
224
+ y="315.83661"
225
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
226
+ <text
227
+ id="text8139"
228
+ y="315.83661"
229
+ x="68.801514"
230
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
231
+ xml:space="preserve"><tspan
232
+ y="315.83661"
233
+ x="68.801514"
234
+ id="tspan8141"
235
+ sodipodi:role="line"
236
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
237
+ <text
238
+ xml:space="preserve"
239
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
240
+ x="122.6497"
241
+ y="315.83661"
242
+ id="text8143"><tspan
243
+ sodipodi:role="line"
244
+ id="tspan8145"
245
+ x="122.6497"
246
+ y="315.83661"
247
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
248
+ <path
249
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
250
+ d="m -2.083264,107.3622 0,230.10051"
251
+ id="path8147"
252
+ inkscape:connector-curvature="0"
253
+ sodipodi:nodetypes="cc" />
254
+ <path
255
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
256
+ d="m -50.083264,146.3622 217.034494,0"
257
+ id="path8149"
258
+ inkscape:connector-curvature="0"
259
+ sodipodi:nodetypes="cc" />
260
+ <text
261
+ id="text8253"
262
+ y="89.833176"
263
+ x="582.55383"
264
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.5px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
265
+ xml:space="preserve"><tspan
266
+ y="89.833176"
267
+ x="582.55383"
268
+ id="tspan8255"
269
+ sodipodi:role="line"
270
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.5px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle">列</tspan></text>
271
+ <text
272
+ transform="rotate(-90)"
273
+ id="text8257"
274
+ y="437.96704"
275
+ x="-253.87207"
276
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
277
+ xml:space="preserve"><tspan
278
+ y="437.96704"
279
+ x="-253.87207"
280
+ id="tspan8259"
281
+ sodipodi:role="line"
282
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">行</tspan></text>
283
+ <text
284
+ id="text8261"
285
+ y="132.48473"
286
+ x="521.38556"
287
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
288
+ xml:space="preserve"><tspan
289
+ y="132.48473"
290
+ x="521.38556"
291
+ id="tspan8263"
292
+ sodipodi:role="line"
293
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">a</tspan></text>
294
+ <text
295
+ id="text8265"
296
+ y="135.68472"
297
+ x="575.86041"
298
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
299
+ xml:space="preserve"><tspan
300
+ y="135.68472"
301
+ x="575.86041"
302
+ id="tspan8267"
303
+ sodipodi:role="line"
304
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">b</tspan></text>
305
+ <text
306
+ id="text8269"
307
+ y="132.48473"
308
+ x="631.10663"
309
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
310
+ xml:space="preserve"><tspan
311
+ y="132.48473"
312
+ x="631.10663"
313
+ id="tspan8271"
314
+ sodipodi:role="line"
315
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">c</tspan></text>
316
+ <text
317
+ id="text8273"
318
+ y="186.3622"
319
+ x="467.52243"
320
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
321
+ xml:space="preserve"><tspan
322
+ y="186.3622"
323
+ x="467.52243"
324
+ id="tspan8275"
325
+ sodipodi:role="line"
326
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">1</tspan></text>
327
+ <text
328
+ id="text8277"
329
+ y="252.34659"
330
+ x="466.72556"
331
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
332
+ xml:space="preserve"><tspan
333
+ y="252.34659"
334
+ x="466.72556"
335
+ id="tspan8279"
336
+ sodipodi:role="line"
337
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">2</tspan></text>
338
+ <text
339
+ id="text8281"
340
+ y="317.86221"
341
+ x="466.72556"
342
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
343
+ xml:space="preserve"><tspan
344
+ y="317.86221"
345
+ x="466.72556"
346
+ id="tspan8283"
347
+ sodipodi:role="line"
348
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">3</tspan></text>
349
+ <text
350
+ id="text8285"
351
+ y="187.33659"
352
+ x="520.29663"
353
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
354
+ xml:space="preserve"><tspan
355
+ y="187.33659"
356
+ x="520.29663"
357
+ id="tspan8287"
358
+ sodipodi:role="line"
359
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
360
+ <text
361
+ xml:space="preserve"
362
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
363
+ x="574.60657"
364
+ y="187.33659"
365
+ id="text8289"><tspan
366
+ sodipodi:role="line"
367
+ id="tspan8291"
368
+ x="574.60657"
369
+ y="187.33659"
370
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
371
+ <text
372
+ id="text8293"
373
+ y="187.33659"
374
+ x="628.935"
375
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
376
+ xml:space="preserve"><tspan
377
+ y="187.33659"
378
+ x="628.935"
379
+ id="tspan8295"
380
+ sodipodi:role="line"
381
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
382
+ <text
383
+ xml:space="preserve"
384
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
385
+ x="520.29663"
386
+ y="253.33659"
387
+ id="text8297"><tspan
388
+ sodipodi:role="line"
389
+ id="tspan8299"
390
+ x="520.29663"
391
+ y="253.33659"
392
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
393
+ <text
394
+ id="text8301"
395
+ y="253.33659"
396
+ x="575.435"
397
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
398
+ xml:space="preserve"><tspan
399
+ y="253.33659"
400
+ x="575.435"
401
+ id="tspan8303"
402
+ sodipodi:role="line"
403
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
404
+ <text
405
+ xml:space="preserve"
406
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
407
+ x="630.02588"
408
+ y="253.33659"
409
+ id="text8305"><tspan
410
+ sodipodi:role="line"
411
+ id="tspan8307"
412
+ x="630.02588"
413
+ y="253.33659"
414
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
415
+ <text
416
+ id="text8309"
417
+ y="315.83661"
418
+ x="520.29663"
419
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
420
+ xml:space="preserve"><tspan
421
+ y="315.83661"
422
+ x="520.29663"
423
+ id="tspan8311"
424
+ sodipodi:role="line"
425
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
426
+ <text
427
+ xml:space="preserve"
428
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
429
+ x="576.88477"
430
+ y="315.83661"
431
+ id="text8313"><tspan
432
+ sodipodi:role="line"
433
+ id="tspan8315"
434
+ x="576.88477"
435
+ y="315.83661"
436
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
437
+ <text
438
+ id="text8317"
439
+ y="315.83661"
440
+ x="630.73297"
441
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
442
+ xml:space="preserve"><tspan
443
+ y="315.83661"
444
+ x="630.73297"
445
+ id="tspan8319"
446
+ sodipodi:role="line"
447
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値</tspan></text>
448
+ <path
449
+ sodipodi:nodetypes="cc"
450
+ inkscape:connector-curvature="0"
451
+ id="path8321"
452
+ d="m 498,107.3622 0,230.10051"
453
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
454
+ <path
455
+ sodipodi:nodetypes="cc"
456
+ inkscape:connector-curvature="0"
457
+ id="path8323"
458
+ d="m 450,146.3622 217.03449,0"
459
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
460
+ <rect
461
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
462
+ id="rect8325"
463
+ width="43"
464
+ height="229"
465
+ x="7.9167361"
466
+ y="103.36221"
467
+ rx="5"
468
+ ry="5" />
469
+ <rect
470
+ ry="5"
471
+ rx="5"
472
+ y="103.36221"
473
+ x="61.916737"
474
+ height="229"
475
+ width="43"
476
+ id="rect8327"
477
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
478
+ <rect
479
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
480
+ id="rect8329"
481
+ width="43"
482
+ height="229"
483
+ x="116.91673"
484
+ y="103.36221"
485
+ rx="5"
486
+ ry="5" />
487
+ <text
488
+ xml:space="preserve"
489
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
490
+ x="241.67339"
491
+ y="87.481926"
492
+ id="text8331"><tspan
493
+ sodipodi:role="line"
494
+ id="tspan8333"
495
+ x="241.67339"
496
+ y="87.481926"
497
+ style="font-size:32px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">Apache</tspan><tspan
498
+ sodipodi:role="line"
499
+ x="241.67339"
500
+ y="127.48193"
501
+ style="font-size:32px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
502
+ id="tspan909">Arrow</tspan></text>
503
+ <text
504
+ xml:space="preserve"
505
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
506
+ x="82.575394"
507
+ y="383.02518"
508
+ id="text8335"><tspan
509
+ sodipodi:role="line"
510
+ x="82.575394"
511
+ y="383.02518"
512
+ id="tspan8339"
513
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">列ごと</tspan></text>
514
+ <text
515
+ id="text8341"
516
+ y="87.481926"
517
+ x="343.46625"
518
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
519
+ xml:space="preserve"><tspan
520
+ y="87.481926"
521
+ x="343.46625"
522
+ id="tspan8343"
523
+ sodipodi:role="line"
524
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">RDBMS</tspan></text>
525
+ <rect
526
+ ry="5"
527
+ rx="5"
528
+ y="-668"
529
+ x="153.36221"
530
+ height="209.5"
531
+ width="43"
532
+ id="rect8345"
533
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
534
+ transform="matrix(0,1,-1,0,0,0)" />
535
+ <rect
536
+ transform="matrix(0,1,-1,0,0,0)"
537
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
538
+ id="rect8347"
539
+ width="43"
540
+ height="209.5"
541
+ x="218.86221"
542
+ y="-668"
543
+ rx="5"
544
+ ry="5" />
545
+ <rect
546
+ ry="5"
547
+ rx="5"
548
+ y="-668"
549
+ x="283.36221"
550
+ height="209.5"
551
+ width="43"
552
+ id="rect8349"
553
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
554
+ transform="matrix(0,1,-1,0,0,0)" />
555
+ <text
556
+ xml:space="preserve"
557
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
558
+ x="79.90786"
559
+ y="435.40387"
560
+ id="text8357"><tspan
561
+ sodipodi:role="line"
562
+ x="79.90786"
563
+ y="435.40387"
564
+ id="tspan8361"
565
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">列</tspan></text>
566
+ <text
567
+ id="text8367"
568
+ y="435.52518"
569
+ x="567.90491"
570
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
571
+ xml:space="preserve"><tspan
572
+ id="tspan8371"
573
+ y="435.52518"
574
+ x="567.90491"
575
+ sodipodi:role="line"
576
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">行</tspan></text>
577
+ <text
578
+ xml:space="preserve"
579
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
580
+ x="214.57152"
581
+ y="383.1377"
582
+ id="text8373"><tspan
583
+ sodipodi:role="line"
584
+ id="tspan8375"
585
+ x="214.57152"
586
+ y="383.1377"
587
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">値の管理単位</tspan></text>
588
+ <text
589
+ id="text8407"
590
+ y="384.38913"
591
+ x="568.08716"
592
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
593
+ xml:space="preserve"><tspan
594
+ id="tspan8409"
595
+ y="384.38913"
596
+ x="568.08716"
597
+ sodipodi:role="line"
598
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">行ごと</tspan></text>
599
+ <text
600
+ id="text8411"
601
+ y="434.72702"
602
+ x="172.24052"
603
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
604
+ xml:space="preserve"><tspan
605
+ y="434.72702"
606
+ x="172.24052"
607
+ id="tspan8413"
608
+ sodipodi:role="line"
609
+ style="font-size:32px;line-height:1.25;font-family:sans-serif">高速なアクセス単位</tspan></text>
610
+ <path
611
+ style="fill:none;fill-rule:evenodd;stroke:#888a85;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
612
+ d="m 323.18747,66.595237 0,282.221393"
613
+ id="path8159"
614
+ inkscape:connector-curvature="0"
615
+ sodipodi:nodetypes="cc" />
616
+ <path
617
+ inkscape:connector-curvature="0"
618
+ id="path4228"
619
+ d="m 669.44147,349.23842 -733.446197,0"
620
+ style="fill:none;fill-rule:evenodd;stroke:#888a85;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
621
+ sodipodi:nodetypes="cc" />
622
+ <path
623
+ sodipodi:nodetypes="cc"
624
+ style="fill:none;fill-rule:evenodd;stroke:#888a85;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
625
+ d="m 669.44147,395.90747 -733.446197,0"
626
+ id="path4230"
627
+ inkscape:connector-curvature="0" />
628
+ <path
629
+ sodipodi:nodetypes="cc"
630
+ style="fill:none;fill-rule:evenodd;stroke:#a40000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
631
+ d="m 323.06964,349.23842 -387.074367,0"
632
+ id="path924"
633
+ inkscape:connector-curvature="0" />
634
+ <path
635
+ inkscape:connector-curvature="0"
636
+ id="path926"
637
+ d="M 323.06964,395.90747 H -64.004727"
638
+ style="fill:none;fill-rule:evenodd;stroke:#a40000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
639
+ sodipodi:nodetypes="cc" />
640
+ </g>
641
+ </svg>