更新时间:2022-09-30 GMT+08:00

ClickHouse数据导入导出

使用ClickHouse客户端导入导出数据

本章节主要介绍使用ClickHouse客户端导入导出文件数据的基本语法和使用说明。

  • CSV格式数据导入

    clickhouse client --host 主机名/ClickHouse实例IP地址 --database 数据库名 --port 端口号 --secure --format_csv_delimiter="csv文件数据分隔符" --query="INSERT INTO 数据表名 FORMAT CSV" < csv文件所在主机路径

    使用示例:
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 --secure --format_csv_delimiter="," --query="INSERT INTO testdb.csv_table FORMAT CSV" < /opt/data

    数据表需提前创建好。

  • CSV格式数据导出

    导出数据为CSV格式的文件,可能存在CSV注入的安全风险,请谨慎使用。

    clickhouse client --host 主机名/ClickHouse实例IP地址 --database 数据库名 --port 端口号 -m --secure --query="SELECT * FROM 表名" > csv文件导出路径

    使用示例:
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="SELECT * FROM test_table" > /opt/test
  • parquet格式数据导入

    cat parquet格式文件 | clickhouse client --host 主机名/ClickHouse实例IP --database 数据库名 --port 端口号 -m --secure --query="INSERT INTO 表名 FORMAT Parquet"

    使用示例:
    cat /opt/student.parquet | clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="INSERT INTO parquet_tab001 FORMAT Parquet"
  • parquet格式数据导出

    clickhouse client --host 主机名/ClickHouse实例IP --database 数据库名 --port 端口号 -m --secure --query="select * from 表名 FORMAT Parquet" > parquet格式文件输出路径

    使用示例:
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="select * from test_table FORMAT Parquet" > /opt/student.parquet
  • ORC格式数据导入

    cat orc格式文件路径 | clickhouse client --host 主机名/ClickHouse实例IP --database 数据库名 --port 端口号 -m --secure --query="INSERT INTO 表名 FORMAT ORC"

    使用示例:
    cat /opt/student.orc | clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="INSERT INTO orc_tab001 FORMAT ORC"
    #orc格式文件格式文件数据可以从HDFS中导出,例如:
    hdfs dfs -cat /user/hive/warehouse/hivedb.db/emp_orc/000000_0_copy_1 | clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="INSERT INTO orc_tab001 FORMAT ORC"
  • ORC格式数据导出

    clickhouse client --host 主机名/ClickHouse实例IP --database 数据库名 --port 端口 -m --secure --query="select * from 表名 FORMAT ORC" > 输出的ORC格式文件路径

    使用示例:
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="select * from csv_tab001 FORMAT ORC" > /opt/student.orc
  • JSON格式数据导入

    INSERT INTO 表名 FORMAT JSONEachRow JSON格式字符串1 JSON格式字符串2

    使用示例:
    INSERT INTO test_table001 FORMAT JSONEachRow {"PageViews":5, "UserID":"4324182021466249494", "Duration":146,"Sign":-1} {"UserID":"4324182021466249494","PageViews":6,"Duration":185,"Sign":1}
  • JSON格式数据导出

    clickhouse client --host 主机名/ClickHouse实例IP --database 数据库名 --port 端口号 -m --secure --query="SELECT * FROM 表名 FORMAT JSON|JSONEachRow|JSONCompact|..." > json文件输出路径

    使用示例
    #导出json
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="SELECT * FROM test_table FORMAT JSON" > /opt/test.json
    
    #导出json(JSONEachRow)
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="SELECT * FROM test_table FORMAT JSONEachRow" > /opt/test_jsoneachrow.json
    
    #导出json(JSONCompact)
    clickhouse client --host 10.5.208.5 --database testdb --port 9440 -m --secure --query="SELECT * FROM test_table FORMAT JSONCompact" > /opt/test_jsoncompact.json