blob: 3987e5fe5b5a8aa727f6818e1df15e8f4b95fd4e [file]
import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as p,a as n,d as a,e as t,w as r,r as i,o as c}from"./app-xkEPX-KM.js";const d={};function y(F,s){const l=i("RouteLink");return c(),o("div",null,[s[3]||(s[3]=p(`<h1 id="快速上手-java" tabindex="-1"><a class="header-anchor" href="#快速上手-java"><span>快速上手 - Java</span></a></h1><h2 id="依赖" tabindex="-1"><a class="header-anchor" href="#依赖"><span>依赖</span></a></h2><ul><li>JDK &gt;=1.8</li><li>Maven &gt;=3.6</li></ul><h2 id="安装" tabindex="-1"><a class="header-anchor" href="#安装"><span>安装</span></a></h2><p>在 Maven 中引用 TsFile API:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;">&lt;dependency&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#61AFEF;">groupId</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#98C379;">org.apache.tsfile</span><span style="color:#ABB2BF;">&lt;/groupId&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#61AFEF;">artifactId</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#98C379;">tsfile</span><span style="color:#ABB2BF;">&lt;/artifactId&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#61AFEF;">version</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#98C379;">2.1.1</span><span style="color:#ABB2BF;">&lt;/version&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;">&lt;/dependency&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="写入示例" tabindex="-1"><a class="header-anchor" href="#写入示例"><span>写入示例</span></a></h2><h3 id="构造-itsfilewriter" tabindex="-1"><a class="header-anchor" href="#构造-itsfilewriter"><span>构造 ITsFileWriter</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">String</span><span style="color:#98C379;"> path</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> &quot;test.tsfile&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#61AFEF;">File</span><span style="color:#98C379;"> f</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> FSFactoryProducer.getFSFactory</span><span style="color:#ABB2BF;">()</span><span style="color:#98C379;">.getFile</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">path</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">String</span><span style="color:#98C379;"> tableName</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> &quot;table1&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">TableSchema</span><span style="color:#98C379;"> tableSchema</span><span style="color:#98C379;"> =</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> TableSchema</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#61AFEF;"> tableName,</span></span>
<span class="line"><span style="color:#61AFEF;"> Arrays.asList(</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> ColumnSchemaBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .name(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .dataType(TSDataType.STRING</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .category(Tablet.ColumnCategory.TAG</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">(),</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> ColumnSchemaBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .name(</span><span style="color:#61AFEF;">&quot;id2&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .dataType(TSDataType.STRING</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .category(Tablet.ColumnCategory.TAG</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">(),</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> ColumnSchemaBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .name(</span><span style="color:#61AFEF;">&quot;s1&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .dataType(TSDataType.INT32</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .category(Tablet.ColumnCategory.FIELD</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">(),</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> ColumnSchemaBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .name(</span><span style="color:#61AFEF;">&quot;s2&quot;</span><span style="color:#ABB2BF;">).</span></span>
<span class="line"><span style="color:#61AFEF;"> dataType(TSDataType.BOOLEAN</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">()));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">long</span><span style="color:#98C379;"> memoryThreshold</span><span style="color:#98C379;"> =</span><span style="color:#D19A66;"> 10</span><span style="color:#E5C07B;"> *</span><span style="color:#D19A66;"> 1024</span><span style="color:#E5C07B;"> *</span><span style="color:#D19A66;"> 1024</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">ITsFileWriter</span><span style="color:#98C379;"> writer</span><span style="color:#98C379;"> =</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> TsFileWriterBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .file(f</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .tableSchema(tableSchema</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .memoryThreshold(memoryThreshold</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="写入数据" tabindex="-1"><a class="header-anchor" href="#写入数据"><span>写入数据</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">Tablet</span><span style="color:#98C379;"> tablet</span><span style="color:#98C379;"> =</span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> Tablet</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#61AFEF;"> Arrays.asList(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#61AFEF;">,</span><span style="color:#98C379;"> &quot;id2&quot;,</span><span style="color:#98C379;"> &quot;s1&quot;,</span><span style="color:#98C379;"> &quot;s2&quot;</span><span style="color:#ABB2BF;">)</span><span style="color:#98C379;">,</span></span>
<span class="line"><span style="color:#61AFEF;"> Arrays.asList(</span></span>
<span class="line"><span style="color:#61AFEF;"> TSDataType.STRING,</span><span style="color:#98C379;"> TSDataType.STRING,</span><span style="color:#98C379;"> TSDataType.INT32,</span><span style="color:#98C379;"> TSDataType.BOOLEAN</span><span style="color:#ABB2BF;">));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">for</span><span style="color:#ABB2BF;"> (</span><span style="color:#61AFEF;">int</span><span style="color:#98C379;"> row</span><span style="color:#98C379;"> =</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">; </span><span style="color:#61AFEF;">row</span><span style="color:#ABB2BF;"> &lt; </span><span style="color:#D19A66;">5</span><span style="color:#ABB2BF;">; </span><span style="color:#61AFEF;">row++</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#61AFEF;"> long</span><span style="color:#98C379;"> timestamp</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> row</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#61AFEF;"> tablet.addTimestamp(row,</span><span style="color:#98C379;"> timestamp</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> tablet.addValue(row,</span><span style="color:#98C379;"> &quot;id1&quot;,</span><span style="color:#98C379;"> &quot;id1_filed_1&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> tablet.addValue(row,</span><span style="color:#98C379;"> &quot;id2&quot;,</span><span style="color:#98C379;"> &quot;id2_filed_1&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> tablet.addValue(row,</span><span style="color:#98C379;"> &quot;s1&quot;,</span><span style="color:#98C379;"> row</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> tablet.addValue(row,</span><span style="color:#98C379;"> &quot;s2&quot;,</span><span style="color:#D19A66;"> true</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">writer.write(tablet</span><span style="color:#ABB2BF;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="关闭文件" tabindex="-1"><a class="header-anchor" href="#关闭文件"><span>关闭文件</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">writer.close</span><span style="color:#ABB2BF;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="示例代码" tabindex="-1"><a class="header-anchor" href="#示例代码"><span>示例代码</span></a></h3><p>使用这些接口的示例代码位于:<a href="https://github.com/apache/tsfile/blob/develop/java/examples/src/main/java/org/apache/tsfile/v4/WriteTabletWithITsFileWriter.java" target="_blank" rel="noopener noreferrer">https://github.com/apache/tsfile/blob/develop/java/examples/src/main/java/org/apache/tsfile/v4/WriteTabletWithITsFileWriter.java</a></p><h2 id="查询示例" tabindex="-1"><a class="header-anchor" href="#查询示例"><span>查询示例</span></a></h2><h3 id="构造-itsfilereader" tabindex="-1"><a class="header-anchor" href="#构造-itsfilereader"><span>构造 ITsFileReader</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">String</span><span style="color:#98C379;"> path</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> &quot;test.tsfile&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#61AFEF;">File</span><span style="color:#98C379;"> f</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> FSFactoryProducer.getFSFactory</span><span style="color:#ABB2BF;">()</span><span style="color:#98C379;">.getFile</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">path</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">ITsFileReader</span><span style="color:#98C379;"> reader</span><span style="color:#98C379;"> =</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"><span style="color:#61AFEF;"> new</span><span style="color:#98C379;"> TsFileReaderBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#61AFEF;"> .file(f</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .build</span><span style="color:#ABB2BF;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="构建查询请求" tabindex="-1"><a class="header-anchor" href="#构建查询请求"><span>构建查询请求</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">TableSchema</span><span style="color:#98C379;"> schema</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> reader.getTableSchemas</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">tableName</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;">TagFilterBuilder</span><span style="color:#98C379;"> filterBuilder</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> new</span><span style="color:#98C379;"> TagFilterBuilder</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">schema</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;">ResultSet</span><span style="color:#98C379;"> resultSet</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> reader.query</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">tableName,</span><span style="color:#98C379;"> Arrays.asList</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#61AFEF;">,</span><span style="color:#98C379;"> &quot;id2&quot;,</span><span style="color:#98C379;"> &quot;s1&quot;,</span><span style="color:#98C379;"> &quot;s2&quot;</span><span style="color:#ABB2BF;">)</span><span style="color:#98C379;">,</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"><span style="color:#61AFEF;"> 2,</span><span style="color:#98C379;"> 8,</span><span style="color:#98C379;"> filterBuilder.eq</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#61AFEF;">,</span><span style="color:#98C379;"> &quot;id1_filed_1&quot;</span><span style="color:#ABB2BF;">));</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="查询数据" tabindex="-1"><a class="header-anchor" href="#查询数据"><span>查询数据</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">ResultSetMetadata</span><span style="color:#98C379;"> metadata</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.getMetadata</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#61AFEF;">System.out.println(metadata</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;">StringJoiner</span><span style="color:#98C379;"> sj</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> new</span><span style="color:#98C379;"> StringJoiner</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot; &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;">for</span><span style="color:#ABB2BF;"> (</span><span style="color:#61AFEF;">int</span><span style="color:#98C379;"> column</span><span style="color:#98C379;"> =</span><span style="color:#D19A66;"> 1</span><span style="color:#ABB2BF;">; </span><span style="color:#61AFEF;">column</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">=</span><span style="color:#D19A66;"> 5</span><span style="color:#ABB2BF;">; </span><span style="color:#61AFEF;">column++</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#61AFEF;"> sj.add(metadata.getColumnName(column</span><span style="color:#ABB2BF;">) + </span><span style="color:#98C379;">&quot;(&quot;</span><span style="color:#ABB2BF;"> + metadata.getColumnType(</span><span style="color:#61AFEF;">column</span><span style="color:#ABB2BF;">) + </span><span style="color:#98C379;">&quot;) &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span>
<span class="line"><span style="color:#61AFEF;">System.out.println(sj.toString(</span><span style="color:#ABB2BF;">));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">while</span><span style="color:#ABB2BF;"> (</span><span style="color:#61AFEF;">resultSet.next</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"><span style="color:#61AFEF;"> Long</span><span style="color:#98C379;"> timeField</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.getLong</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;Time&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> String</span><span style="color:#98C379;"> id1Field</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.isNull</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#ABB2BF;">) </span><span style="color:#98C379;">?</span><span style="color:#98C379;"> null</span><span style="color:#98C379;"> :</span><span style="color:#98C379;"> resultSet.getString</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id1&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> String</span><span style="color:#98C379;"> id2Field</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.isNull</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id2&quot;</span><span style="color:#ABB2BF;">) </span><span style="color:#98C379;">?</span><span style="color:#98C379;"> null</span><span style="color:#98C379;"> :</span><span style="color:#98C379;"> resultSet.getString</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;id2&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> Integer</span><span style="color:#98C379;"> s1Field</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.isNull</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;s1&quot;</span><span style="color:#ABB2BF;">) </span><span style="color:#98C379;">?</span><span style="color:#98C379;"> null</span><span style="color:#98C379;"> :</span><span style="color:#98C379;"> resultSet.getInt</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">4</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> Boolean</span><span style="color:#98C379;"> s2Field</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> resultSet.isNull</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot;s2&quot;</span><span style="color:#ABB2BF;">) </span><span style="color:#98C379;">?</span><span style="color:#98C379;"> null</span><span style="color:#98C379;"> :</span><span style="color:#98C379;"> resultSet.getBoolean</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">5</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> sj</span><span style="color:#98C379;"> =</span><span style="color:#98C379;"> new</span><span style="color:#98C379;"> StringJoiner</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">&quot; &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> System.out.println(</span></span>
<span class="line"><span style="color:#61AFEF;"> sj.add(timeField</span><span style="color:#98C379;"> +</span><span style="color:#98C379;"> &quot;&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .add(id1Field</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .add(id2Field</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .add(s1Field</span><span style="color:#98C379;"> +</span><span style="color:#98C379;"> &quot;&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .add(s2Field</span><span style="color:#98C379;"> +</span><span style="color:#98C379;"> &quot;&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#61AFEF;"> .toString</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="关闭文件-1" tabindex="-1"><a class="header-anchor" href="#关闭文件-1"><span>关闭文件</span></a></h3><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">reader.close</span><span style="color:#ABB2BF;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="示例代码-1" tabindex="-1"><a class="header-anchor" href="#示例代码-1"><span>示例代码</span></a></h3><p>使用这些接口的示例代码位于:<a href="https://github.com/apache/tsfile/blob/develop/java/examples/src/main/java/org/apache/tsfile/v4/ITsFileReaderAndITsFileWriter.java" target="_blank" rel="noopener noreferrer">https://github.com/apache/tsfile/blob/develop/java/examples/src/main/java/org/apache/tsfile/v4/ITsFileReaderAndITsFileWriter.java</a></p>`,26)),n("blockquote",null,[n("p",null,[s[1]||(s[1]=a("注意:以上读写示例均基于表模型接口,接口定义介绍可见",-1)),t(l,{to:"/zh/UserGuide/latest/QuickStart/InterfaceDefinition/InterfaceDefinition-Java.html"},{default:r(()=>[...s[0]||(s[0]=[a("Java 接口定义",-1)])]),_:1}),s[2]||(s[2]=a("。若需了解树模型相关内容,请联系我们。",-1))])])])}const v=e(d,[["render",y]]),A=JSON.parse('{"path":"/zh/UserGuide/latest/QuickStart/QuickStart.html","title":"快速上手 - Java","lang":"zh-CN","frontmatter":{"description":"快速上手 - Java 依赖 JDK >=1.8 Maven >=3.6 安装 在 Maven 中引用 TsFile API: 写入示例 构造 ITsFileWriter 写入数据 关闭文件 示例代码 使用这些接口的示例代码位于:https://github.com/apache/tsfile/blob/develop/java/examples/sr...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://tsfile.apache.org/UserGuide/latest/QuickStart/QuickStart.html"}],["meta",{"property":"og:url","content":"https://tsfile.apache.org/zh/UserGuide/latest/QuickStart/QuickStart.html"}],["meta",{"property":"og:site_name","content":"Apache TsFile"}],["meta",{"property":"og:title","content":"快速上手 - Java"}],["meta",{"property":"og:description","content":"快速上手 - Java 依赖 JDK >=1.8 Maven >=3.6 安装 在 Maven 中引用 TsFile API: 写入示例 构造 ITsFileWriter 写入数据 关闭文件 示例代码 使用这些接口的示例代码位于:https://github.com/apache/tsfile/blob/develop/java/examples/sr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2026-01-09T01:45:21.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T01:45:21.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快速上手 - Java\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T01:45:21.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"依赖","slug":"依赖","link":"#依赖","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"写入示例","slug":"写入示例","link":"#写入示例","children":[{"level":3,"title":"构造 ITsFileWriter","slug":"构造-itsfilewriter","link":"#构造-itsfilewriter","children":[]},{"level":3,"title":"写入数据","slug":"写入数据","link":"#写入数据","children":[]},{"level":3,"title":"关闭文件","slug":"关闭文件","link":"#关闭文件","children":[]},{"level":3,"title":"示例代码","slug":"示例代码","link":"#示例代码","children":[]}]},{"level":2,"title":"查询示例","slug":"查询示例","link":"#查询示例","children":[{"level":3,"title":"构造 ITsFileReader","slug":"构造-itsfilereader","link":"#构造-itsfilereader","children":[]},{"level":3,"title":"构建查询请求","slug":"构建查询请求","link":"#构建查询请求","children":[]},{"level":3,"title":"查询数据","slug":"查询数据","link":"#查询数据","children":[]},{"level":3,"title":"关闭文件","slug":"关闭文件-1","link":"#关闭文件-1","children":[]},{"level":3,"title":"示例代码","slug":"示例代码-1","link":"#示例代码-1","children":[]}]}],"git":{"createdTime":1767923121000,"updatedTime":1767923121000,"contributors":[{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":1,"url":"https://github.com/leto-b"}]},"readingTime":{"minutes":1.66,"words":499},"filePathRelative":"zh/UserGuide/latest/QuickStart/QuickStart.md","localizedDate":"2026年1月9日","autoDesc":true}');export{v as comp,A as data};