提交 e0947cc3 编写于 作者: S Stephan Ewen

[docs] Add description and illustration about Watermarks in streams

上级 cdc8f0a9
......@@ -112,6 +112,7 @@ stream
<div data-lang="scala" markdown="1">
{% highlight scala %}
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime)
// alternatively:
......@@ -141,8 +142,67 @@ to use timestamp assignment and watermark generation in the Flink DataStream API
# Event Time and Watermarks
*Note: For a deep introduction to Event Time, please refer also to the paper on the [Dataflow Model](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43864.pdf)*
*Note: Flink implements many techniques from the Dataflow Model. For a good introduction to Event Time and, have also a look at these articles*
- [Streaming 101](https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101) by Tyler Akidau
- The [Dataflow Model paper](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43864.pdf)
A stream processor that supports *event time* needs a way to measure the progress of event time.
For example, a window operator that builds hourly windows needs to be notified when event time has reached the
next full hour, such that the operator can close the next window.
*Event Time* can progress independently of *Processing Time* (measures by wall clocks).
For example, in one program, the current *event time* of an operator can trail slightly behind the processing time
(accounting for a delay in receiving the latest elements) and both proceed at the same speed. In another streaming
program, which reads fast-forward through some data already buffered in a Kafka topic (or another message queue), event time
can progress by weeks in seconds.
------
The mechanism in Flink to measure progress in event time are **Watermarks**.
Watermarks flow as part of the data stream and carry a timestamp *t*. A *Watermark(t)* declares that event time has reached time
*t* in that stream, meaning that all events with a timestamps *t' < t* have occurred.
The figure below shows a stream of events with (logical) timestamps, and watermarks flowing inline. The events are in order
(with respect to their timestamp), meaning that watermarks are simply periodic markers in the stream with an in-order timestamp.
<img src="fig/stream_watermark_in_order.svg" alt="A data stream with events (in order) and watermarks" class="center" width="65%" />
Watermarks are crucial for *out-of-order* streams, as shown in the figure below, where, events do not occur ordered by their timestamp.
Watermarks establish points in the stream where all events up to a certain timestamp have occurred. Once these watermarks reach an
operator, the operator can advance its internal *event time clock* to the value of the watermark.
<img src="fig/stream_watermark_out_of_order.svg" alt="A data stream with events (out of order) and watermarks" class="center" width="65%" />
## Watermarks in Parallel Streams
Watermarks are generated at source functions, or directly after source functions. Each parallel subtask of a source function usually
generates its watermarks independently. These watermarks define the event time at that particular parallel source.
As the watermarks flow through the streaming program, they advance the event time at the operators where they arrive. Whenever an
operator advances its event time, it generates a new watermark downstream for its successor operators.
Operators that consume multiple input streams (e.g., after a *keyBy(...)* or *partition(...)* function, or a union) track the event time
on each of their input streams. The operator's current event time is the minimum of the input streams' event time. As the input streams
update their event time, so does the operator.
The figure below shows an example of events and watermarks flowing through parallel streams, and operators tracking event time.
<img src="fig/parallel_streams_watermarks.svg" alt="Parallel data streams and operators with events and watermarks" class="center" width="80%" />
## Late Elements
It is possible that certain elements violate the watermark condition, meaning that even after the *Watermark(t)* has occurred,
more elements with timestamp *t' < t* will occur. In fact, in many real world setups, certain elements can be arbitrarily
delayed, which it is impossible to define a time when all elements of a certain event timestamp have occurred.
Further more, even if the lateness can be bounded, delaying the watermarks by too much is often not desirable, because it delays
the evaluation of the event time windows by too much.
Due to that, some streaming programs will explicitly expect a number of *late* elements. Late elements are elements that
arrive after the system's event time clock (as signaled by the watermarks) has already passed the time of the late element's
timestamp.
此差异已折叠。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="534.41998"
height="157.25"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-276.19474,-304.69235)"
id="layer1">
<g
transform="translate(235.51811,294.2736)"
id="g3458">
<path
d="m 81.029039,44.630667 0,40.786429 454.276431,0 0,-40.786429 -454.276431,0 z"
id="path3460"
style="fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 41.967829,57.635444 15.705119,0 0,-7.857248 15.70512,15.705119 -15.70512,15.705119 0,-7.847871 -15.705119,0 z"
id="path3462"
style="fill:#a6a6a6;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 542.9752,57.64482 15.69574,0 0,-7.857248 15.7145,15.695743 -15.7145,15.714496 0,-7.857248 -15.69574,0 z"
id="path3464"
style="fill:#a6a6a6;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<text
x="247.10393"
y="21.845293"
id="text3466"
xml:space="preserve"
style="font-size:13.80175209px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Stream </text>
<text
x="302.61096"
y="21.845293"
id="text3468"
xml:space="preserve"
style="font-size:13.80175209px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">(in order)</text>
<path
d="m 371.54093,44.630667 0,7.500953 -1.87524,0 0,-7.500953 1.87524,0 z m 0,13.126667 0,7.500953 -1.87524,0 0,-7.500953 1.87524,0 z m 0,13.126667 0,7.500952 -1.87524,0 0,-7.500952 1.87524,0 z m 0,13.126667 0,2.662838 -1.87524,0 0,-2.662838 1.87524,0 z"
id="path3470"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 503.5952,55.882096 0,20.15881 23.74051,0 0,-20.15881 -23.74051,0 z"
id="path3472"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 503.5952,55.882096 23.74051,0 0,20.15881 -23.74051,0 z"
id="path3474"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="511.93024"
y="70.391273"
id="text3476"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">7</text>
<path
d="m 161.98307,44.621291 0,7.500953 -1.87524,0 0,-7.500953 1.87524,0 z m 0,13.126667 0,7.500952 -1.87524,0 0,-7.500952 1.87524,0 z m 0,13.126667 0,7.500952 -1.87524,0 0,-7.500952 1.87524,0 z m 0,13.126667 0,2.662838 -1.87524,0 0,-2.662838 1.87524,0 z"
id="path3478"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.00937619px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<text
x="356.53876"
y="104.57372"
id="text3480"
xml:space="preserve"
style="font-size:10.05127621px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">W(11)</text>
<text
x="145.13034"
y="104.57372"
id="text3482"
xml:space="preserve"
style="font-size:10.05127621px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">W(20)</text>
<text
x="207.48544"
y="141.57475"
id="text3484"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Watermark</text>
<path
d="m 209.21094,125.0315 -26.92842,-13.5861 0.56257,-1.11577 26.92842,13.58611 -0.56257,1.11576 z m -27.21908,-10.2388 -5.00689,-6.72273 8.38232,0.0281 -3.37543,6.6946 z"
id="path3486"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.00937619px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 280.91067,128.3413 65.22078,-18.28357 -0.33754,-1.21891 -65.22078,18.28357 0.33754,1.21891 z m 64.86449,-14.94565 6.20704,-5.64447 -8.2323,-1.5752 2.02526,7.21967 z"
id="path3488"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 476.40424,55.882096 0,20.15881 23.5905,0 0,-20.15881 -23.5905,0 z"
id="path3490"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 476.40424,55.882096 23.5905,0 0,20.15881 -23.5905,0 z"
id="path3492"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="484.68994"
y="70.391273"
id="text3494"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">9</text>
<path
d="m 434.51142,55.882096 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3496"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 434.51142,55.882096 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3498"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="442.94125"
y="70.391273"
id="text3500"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">9</text>
<path
d="m 409.19571,55.882096 0,20.15881 23.60925,0 0,-20.15881 -23.60925,0 z"
id="path3502"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 409.19571,55.882096 23.60925,0 0,20.15881 -23.60925,0 z"
id="path3504"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="413.87704"
y="70.391273"
id="text3506"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">10</text>
<path
d="m 374.50381,55.882096 0,20.15881 23.60924,0 0,-20.15881 -23.60924,0 z"
id="path3508"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 374.50381,55.882096 23.60924,0 0,20.15881 -23.60924,0 z"
id="path3510"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="379.23441"
y="70.391273"
id="text3512"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">11</text>
<path
d="m 340.13069,55.882096 0,20.15881 23.5905,0 0,-20.15881 -23.5905,0 z"
id="path3514"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 340.13069,55.882096 23.5905,0 0,20.15881 -23.5905,0 z"
id="path3516"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="344.81403"
y="70.391273"
id="text3518"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">14</text>
<path
d="m 306.99523,55.882096 0,20.15881 23.60925,0 0,-20.15881 -23.60925,0 z"
id="path3520"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 306.99523,55.882096 23.60925,0 0,20.15881 -23.60925,0 z"
id="path3522"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="311.71414"
y="70.391273"
id="text3524"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">15</text>
<path
d="m 279.65426,55.87272 0,20.15881 23.74989,0 0,-20.15881 -23.74989,0 z"
id="path3526"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 279.65426,55.87272 23.74989,0 0,20.15881 -23.74989,0 z"
id="path3528"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="284.41156"
y="70.391273"
id="text3530"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">17</text>
<text
x="497.42996"
y="129.83479"
id="text3532"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Event</text>
<text
x="396.06403"
y="163.61626"
id="text3534"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Event timestamp</text>
<path
d="m 516.90939,113.35814 -1.72522,-31.053939 1.25641,-0.05626 1.72522,31.035189 -1.25641,0.075 z m -4.76311,-29.628758 3.31917,-7.688476 4.16303,7.275924 -7.4822,0.412552 z"
id="path3536"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 450.01964,146.96241 56.76346,-72.946761 -0.99387,-0.768848 -56.76346,72.946759 0.99387,0.76885 z m 58.45118,-70.040142 1.65021,-8.232296 -7.55721,3.61921 5.907,4.613086 z"
id="path3538"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 253.08214,55.87272 0,20.15881 23.75926,0 0,-20.15881 -23.75926,0 z"
id="path3540"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 253.08214,55.87272 23.75926,0 0,20.15881 -23.75926,0 z"
id="path3542"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="257.91165"
y="70.391273"
id="text3544"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">18</text>
<path
d="m 178.86021,55.87272 0,20.15881 23.74989,0 0,-20.15881 -23.74989,0 z"
id="path3546"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 178.86021,55.87272 23.74989,0 0,20.15881 -23.74989,0 z"
id="path3548"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="183.66698"
y="70.391273"
id="text3550"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">20</text>
<path
d="m 209.17344,55.87272 0,20.15881 23.59987,0 0,-20.15881 -23.59987,0 z"
id="path3552"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 209.17344,55.87272 23.59987,0 0,20.15881 -23.59987,0 z"
id="path3554"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="213.86813"
y="70.391273"
id="text3556"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">19</text>
<path
d="m 129.78523,55.87272 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3558"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 129.78523,55.87272 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3560"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="134.54695"
y="70.391273"
id="text3562"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">21</text>
<path
d="m 93.377482,55.87272 0,20.15881 23.599868,0 0,-20.15881 -23.599868,0 z"
id="path3564"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 93.377482,55.87272 23.599868,0 0,20.15881 -23.599868,0 z"
id="path3566"
style="fill:none;stroke:#000000;stroke-width:0.62820476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="98.096954"
y="70.391273"
id="text3568"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">23</text>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="534.41998"
height="157.25"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-276.19474,-304.69235)"
id="layer1">
<g
transform="translate(234.9412,-56.421315)"
id="g3282">
<path
d="m 81.029039,395.76901 0,40.78642 454.276431,0 0,-40.78642 -454.276431,0 z"
id="path3284"
style="fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 41.967829,408.78316 15.714496,0 0,-7.85725 15.695743,15.69574 -15.695743,15.7145 0,-7.85725 -15.714496,0 z"
id="path3286"
style="fill:#a6a6a6;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 542.9752,408.78316 15.69574,0 0,-7.85725 15.7145,15.69574 -15.7145,15.7145 0,-7.85725 -15.69574,0 z"
id="path3288"
style="fill:#a6a6a6;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<text
x="232.96123"
y="372.95453"
id="text3290"
xml:space="preserve"
style="font-size:13.80175209px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Stream </text>
<text
x="288.46829"
y="372.95453"
id="text3292"
xml:space="preserve"
style="font-size:13.80175209px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">(out of order)</text>
<path
d="m 371.54093,395.76901 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12666 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12667 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12667 0,2.66283 -1.87524,0 0,-2.66283 1.87524,0 z"
id="path3294"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 503.5952,407.02043 0,20.15881 23.74051,0 0,-20.15881 -23.74051,0 z"
id="path3296"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 503.5952,407.02043 23.74051,0 0,20.15881 -23.74051,0 z"
id="path3298"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="511.93024"
y="421.50052"
id="text3300"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">7</text>
<path
d="m 161.98307,395.76901 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12666 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12667 0,7.50095 -1.87524,0 0,-7.50095 1.87524,0 z m 0,13.12667 0,2.66283 -1.87524,0 0,-2.66283 1.87524,0 z"
id="path3302"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<text
x="356.53876"
y="455.68298"
id="text3304"
xml:space="preserve"
style="font-size:10.05127621px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">W(11)</text>
<text
x="145.13034"
y="455.68298"
id="text3306"
xml:space="preserve"
style="font-size:10.05127621px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">W(17)</text>
<path
d="m 476.40424,407.02043 0,20.15881 23.5905,0 0,-20.15881 -23.5905,0 z"
id="path3308"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 476.40424,407.02043 23.5905,0 0,20.15881 -23.5905,0 z"
id="path3310"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="481.08948"
y="421.50052"
id="text3312"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">11</text>
<path
d="m 434.51142,407.02043 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3314"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 434.51142,407.02043 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3316"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="439.34079"
y="421.50052"
id="text3318"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">15</text>
<path
d="m 409.19571,407.02043 0,20.15881 23.60925,0 0,-20.15881 -23.60925,0 z"
id="path3320"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 409.19571,407.02043 23.60925,0 0,20.15881 -23.60925,0 z"
id="path3322"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="417.47748"
y="421.50052"
id="text3324"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">9</text>
<path
d="m 374.50381,407.02043 0,20.15881 23.60924,0 0,-20.15881 -23.60924,0 z"
id="path3326"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 374.50381,407.02043 23.60924,0 0,20.15881 -23.60924,0 z"
id="path3328"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="379.23441"
y="421.50052"
id="text3330"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">12</text>
<path
d="m 340.13069,407.02043 0,20.15881 23.5905,0 0,-20.15881 -23.5905,0 z"
id="path3332"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 340.13069,407.02043 23.5905,0 0,20.15881 -23.5905,0 z"
id="path3334"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="344.81403"
y="421.50052"
id="text3336"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">14</text>
<path
d="m 306.99523,407.02043 0,20.15881 23.60925,0 0,-20.15881 -23.60925,0 z"
id="path3338"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 306.99523,407.02043 23.60925,0 0,20.15881 -23.60925,0 z"
id="path3340"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="311.71414"
y="421.50052"
id="text3342"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">17</text>
<path
d="m 279.65426,407.02043 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3344"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 279.65426,407.02043 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3346"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="284.41156"
y="421.50052"
id="text3348"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">12</text>
<path
d="m 253.08214,407.02043 0,20.15881 23.75926,0 0,-20.15881 -23.75926,0 z"
id="path3350"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 253.08214,407.02043 23.75926,0 0,20.15881 -23.75926,0 z"
id="path3352"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="257.91165"
y="421.50052"
id="text3354"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">22</text>
<path
d="m 178.86021,407.02043 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3356"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 178.86021,407.02043 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3358"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="183.66698"
y="421.50052"
id="text3360"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">20</text>
<path
d="m 209.18281,407.02043 0,20.15881 23.5905,0 0,-20.15881 -23.5905,0 z"
id="path3362"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 209.18281,407.02043 23.5905,0 0,20.15881 -23.5905,0 z"
id="path3364"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="213.86813"
y="421.50052"
id="text3366"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">17</text>
<path
d="m 129.78523,407.02043 0,20.15881 23.75927,0 0,-20.15881 -23.75927,0 z"
id="path3368"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 129.78523,407.02043 23.75927,0 0,20.15881 -23.75927,0 z"
id="path3370"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="134.54695"
y="421.50052"
id="text3372"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">19</text>
<path
d="m 93.386858,407.02043 0,20.15881 23.590492,0 0,-20.15881 -23.590492,0 z"
id="path3374"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 93.386858,407.02043 23.590492,0 0,20.15881 -23.590492,0 z"
id="path3376"
style="fill:none;stroke:#000000;stroke-width:0.61882859px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
x="98.096954"
y="421.50052"
id="text3378"
xml:space="preserve"
style="font-size:11.2514286px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">21</text>
<text
x="207.48544"
y="493.10297"
id="text3380"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Watermark</text>
<path
d="m 209.22032,476.64803 -26.92842,-13.59548 0.56257,-1.10639 26.92842,13.57672 -0.56257,1.12515 z m -27.22846,-10.2388 -5.00689,-6.73211 8.38232,0.0375 -3.37543,6.6946 z"
id="path3382"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 280.91067,479.77967 65.22078,-18.28357 -0.33754,-1.20015 -65.22078,18.28357 0.33754,1.20015 z m 64.86449,-14.92689 6.20704,-5.64447 -8.2323,-1.5752 2.02526,7.21967 z"
id="path3384"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<text
x="497.42996"
y="481.36301"
id="text3386"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Event</text>
<text
x="396.06403"
y="515.14447"
id="text3388"
xml:space="preserve"
style="font-size:12.451581px;font-style:italic;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Verdana">Event timestamp</text>
<path
d="m 516.90939,464.79652 -1.72522,-31.03519 1.25641,-0.075 1.72522,31.05394 -1.25641,0.0563 z m -4.76311,-29.61001 3.31917,-7.70723 4.16303,7.29468 -7.4822,0.41255 z"
id="path3390"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 450.01964,498.56956 56.76346,-72.94676 -0.99387,-0.76885 -56.76346,72.94676 0.99387,0.76885 z m 58.45118,-70.04014 1.65021,-8.2323 -7.55721,3.61921 5.907,4.61309 z"
id="path3392"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875238px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
</svg>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册