import{_ as e,O as t,P as o,ah as i,aW as n}from"./framework-5638dcb2.js";const a={},s=n('<h2 id="schemafilesketch-tool" tabindex="-1"><a class="header-anchor" href="#schemafilesketch-tool" aria-hidden="true">#</a> SchemaFileSketch Tool</h2><p>Since version 0.14.0, IoTDB could store schema into a persistent slotted file.</p><p>If you want to parse schema file into a human-readable way, you can use this tool to parse the specified schema file.</p><p>The tool can sketch .pst file.</p><h3 id="how-to-use" tabindex="-1"><a class="header-anchor" href="#how-to-use" aria-hidden="true">#</a> How to use</h3><p>Linux/MacOS</p><blockquote><p>./print-schema-file.sh -f your/path/to/schema_file.pst -o /your/path/to/sketch.txt</p></blockquote><p>Windows</p><blockquote><p>./print-schema-file.bat -f your/path/to/schema_file.pst -o /your/path/to/sketch.txt</p></blockquote>',9);function c(h,r){return t(),o("div",null,[i(`

    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.

`),s])}const p=e(a,[["render",c],["__file","SchemaFileSketch-Tool.html.vue"]]);export{p as default};