首页 > 其他分享 >Apache IoTDB开发之Watermark工具

Apache IoTDB开发之Watermark工具

时间:2023-09-01 19:31:46浏览次数:45  
标签:00 01 Watermark 08 watermark 01T08 1970 IoTDB Apache

Watermark工具

该工具有两个功能:

  1. IoTDB查询结果的Watermark嵌入
  2. 可疑数据的Watermark检测

1. Watermark嵌入

1.1 配置

默认情况下,IoTDB中的Watermark处于禁用状态。要启用Watermark嵌入,首先要修改配置文件中的以下字段:iotdb-engine.properties

名字


解释

watermark_module_opened


true启用IoTDB服务器的水印嵌入; 以禁用false

watermark_secret_key

碘丁苯*2019@Beijing

自定义密钥

watermark_bit_string

100101110100

要嵌入的 0-1 位字符串

watermark_method

GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)

指定水印算法及其参数

笔记:

  • watermark_module_opened:如果要启用Watermark嵌入,请将其设置为 true
  • watermark_secret_key:不允许使用字符“&”。对密钥的长度没有限制。一般来说,密钥越长,入侵者的门槛就越高。
  • watermark_bit_string:位字符串的长度没有限制(除了它不应该为空)。但请注意,如果位串太短,则很难在水印检测阶段达到所需的显著性级别。
  • watermark_method:现在只支持基于组的LSBMethod,所以实际上你只能调整此方法的两个参数,即和。embed_row_cycleembed_lsb_num
  • 它们都应该是正整数。
  • embed_row_cycle控制带水印的行的比例。越小,带水印的行的比例越大。当等于 1 时,每一行都有水印。embed_row_cycleembed_row_cycle
  • GroupBasedLSBMethod使用LSB嵌入。 控制可用于水印嵌入的最低有效位数。越大,数据点的变化范围越大。embed_lsb_numembed_lsb_num
  • watermark_secret_key,并且应对可能的攻击者保密。也就是说,您有责任照顾.watermark_bit_stringwatermark_methodiotdb-engine.properties

1.2 使用示例

第 1 步:创建新用户 Alice,授予读取权限和查询

默认情况下,新创建的用户不使用水印。所以查询结果是原始数据。

  1. .\start-client.bat -u root -pw root
  2. create user Alice 1234
  3. grant user Alice privileges 'READ_TIMESERIES' on root.vehicle
  4. exit

  5. .\start-client.bat -u Alice -pw 1234
  6. select * from root
  7. +-----------------------------------+------------------+
  8. | Time|root.vehicle.d0.s0|
  9. +-----------------------------------+------------------+
  10. | 1970-01-01T08:00:00.001+08:00| 21.5|
  11. | 1970-01-01T08:00:00.002+08:00| 22.5|
  12. | 1970-01-01T08:00:00.003+08:00| 23.5|
  13. | 1970-01-01T08:00:00.004+08:00| 24.5|
  14. | 1970-01-01T08:00:00.005+08:00| 25.5|
  15. | 1970-01-01T08:00:00.006+08:00| 26.5|
  16. | 1970-01-01T08:00:00.007+08:00| 27.5|
  17. | 1970-01-01T08:00:00.008+08:00| 28.5|
  18. | 1970-01-01T08:00:00.009+08:00| 29.5|
  19. | 1970-01-01T08:00:00.010+08:00| 30.5|
  20. | 1970-01-01T08:00:00.011+08:00| 31.5|
  21. | 1970-01-01T08:00:00.012+08:00| 32.5|
  22. | 1970-01-01T08:00:00.013+08:00| 33.5|
  23. | 1970-01-01T08:00:00.014+08:00| 34.5|
  24. | 1970-01-01T08:00:00.015+08:00| 35.5|
  25. | 1970-01-01T08:00:00.016+08:00| 36.5|
  26. | 1970-01-01T08:00:00.017+08:00| 37.5|
  27. | 1970-01-01T08:00:00.018+08:00| 38.5|
  28. | 1970-01-01T08:00:00.019+08:00| 39.5|
  29. | 1970-01-01T08:00:00.020+08:00| 40.5|
  30. | 1970-01-01T08:00:00.021+08:00| 41.5|
  31. | 1970-01-01T08:00:00.022+08:00| 42.5|
  32. | 1970-01-01T08:00:00.023+08:00| 43.5|
  33. | 1970-01-01T08:00:00.024+08:00| 44.5|
  34. | 1970-01-01T08:00:00.025+08:00| 45.5|
  35. | 1970-01-01T08:00:00.026+08:00| 46.5|
  36. | 1970-01-01T08:00:00.027+08:00| 47.5|
  37. | 1970-01-01T08:00:00.028+08:00| 48.5|
  38. | 1970-01-01T08:00:00.029+08:00| 49.5|
  39. | 1970-01-01T08:00:00.030+08:00| 50.5|
  40. | 1970-01-01T08:00:00.031+08:00| 51.5|
  41. | 1970-01-01T08:00:00.032+08:00| 52.5|
  42. | 1970-01-01T08:00:00.033+08:00| 53.5|
  43. +-----------------------------------+------------------+

第 2 步:授予watermark_embedding

用法:grant watermark_embedding to Alice

请注意,您可以使用 向多个用户授予watermark_embedding。grant watermark_embedding to user1,user2,...

只有 root 可以运行此命令。将根权限watermark_embedding给 Alice 后,Alice 的所有查询结果都会加Watermark。

  1. .\start-client.bat -u root -pw root
  2. grant watermark_embedding to Alice
  3. exit

  4. .\start-client.bat -u Alice -pw 1234
  5. select * from root
  6. +-----------------------------------+------------------+
  7. | Time|root.vehicle.d0.s0|
  8. +-----------------------------------+------------------+
  9. | 1970-01-01T08:00:00.001+08:00| 21.5|
  10. | 1970-01-01T08:00:00.002+08:00| 22.5|
  11. | 1970-01-01T08:00:00.003+08:00| 23.500008|
  12. | 1970-01-01T08:00:00.004+08:00| 24.500015|
  13. | 1970-01-01T08:00:00.005+08:00| 25.5|
  14. | 1970-01-01T08:00:00.006+08:00| 26.500015|
  15. | 1970-01-01T08:00:00.007+08:00| 27.5|
  16. | 1970-01-01T08:00:00.008+08:00| 28.500004|
  17. | 1970-01-01T08:00:00.009+08:00| 29.5|
  18. | 1970-01-01T08:00:00.010+08:00| 30.5|
  19. | 1970-01-01T08:00:00.011+08:00| 31.5|
  20. | 1970-01-01T08:00:00.012+08:00| 32.5|
  21. | 1970-01-01T08:00:00.013+08:00| 33.5|
  22. | 1970-01-01T08:00:00.014+08:00| 34.5|
  23. | 1970-01-01T08:00:00.015+08:00| 35.500004|
  24. | 1970-01-01T08:00:00.016+08:00| 36.5|
  25. | 1970-01-01T08:00:00.017+08:00| 37.5|
  26. | 1970-01-01T08:00:00.018+08:00| 38.5|
  27. | 1970-01-01T08:00:00.019+08:00| 39.5|
  28. | 1970-01-01T08:00:00.020+08:00| 40.5|
  29. | 1970-01-01T08:00:00.021+08:00| 41.5|
  30. | 1970-01-01T08:00:00.022+08:00| 42.500015|
  31. | 1970-01-01T08:00:00.023+08:00| 43.5|
  32. | 1970-01-01T08:00:00.024+08:00| 44.500008|
  33. | 1970-01-01T08:00:00.025+08:00| 45.50003|
  34. | 1970-01-01T08:00:00.026+08:00| 46.500008|
  35. | 1970-01-01T08:00:00.027+08:00| 47.500008|
  36. | 1970-01-01T08:00:00.028+08:00| 48.5|
  37. | 1970-01-01T08:00:00.029+08:00| 49.5|
  38. | 1970-01-01T08:00:00.030+08:00| 50.5|
  39. | 1970-01-01T08:00:00.031+08:00| 51.500008|
  40. | 1970-01-01T08:00:00.032+08:00| 52.5|
  41. | 1970-01-01T08:00:00.033+08:00| 53.5|
  42. +-----------------------------------+------------------+

第 3 步:撤销atermark_embedding

用法:revoke watermark_embedding from Alice

请注意,您可以使用 撤消多个用户的watermark_embedding。revoke watermark_embedding from user1,user2,...

只有 root 可以运行此命令。根从 Alice 撤销watermark_embedding后,Alice 的所有查询结果再次为原始结果。

2. Watermark检测

detect-watermark.sh并为不同的平台提供。detect-watermark.bat

用法: ./detect-watermark.sh [文件路径] [秘密键] [水印位字符串] [embed_row_cycle] [embed_lsb_num] [alpha] [columnIndex] [数据类型: int/float/double]

示例:./detect-watermark.sh /home/data/dump1.csv IoTDB*2019@Beijing 100101110100 2 5 0.05 1 浮点数

参数


解释

文件路径

/home/data/dump1.csv

可疑数据文件路径

秘密密钥

碘丁苯*2019@Beijing

请参阅水印嵌入部分

水印位字符串

100101110100

请参阅水印嵌入部分

embed_row_cycle

2

请参阅水印嵌入部分

embed_lsb_num

5

请参阅水印嵌入部分

阿尔法

0.05

显著性水平

列索引

1

指定要检测的一列数据

数据类型


指定检测到的列的数据类型;整数/浮点数/双精度

注意:

  • filePath:您可以使用导出-csv工具生成此类数据文件。第一行是标题,第一列是时间。文件中的数据如下所示:

时间

root.vehicle.d0.s1

root.vehicle.d0.s1

1970-01-01T08:00:00.001+08:00

100


...

...

...

  • watermark_secret_key、 ,并且应与嵌入阶段中使用的一致。watermark_bit_stringembed_row_cycleembed_lsb_num
  • alpha:它应该在 [0,1] 的范围内。水印检测基于显著性检验。越小,检测出没有水印的数据被嵌入水印的概率越低,因此检测数据中是否存在水印的结果的可信度就越高。alpha
  • columnIndex:它应该是一个正整数。

标签:00,01,Watermark,08,watermark,01T08,1970,IoTDB,Apache
From: https://blog.51cto.com/u_15123639/7325779

相关文章

  • 制作Ubuntu64位的apache+asp+mssqlserver运行环境压缩包
    上一篇我在Ubuntu15.04下成功搭建了apache+asp+mssqlserver运行环境,但今天我又在Ubuntu20.04下重复了一次,一切顺利。但启动apache后,运行asp时页面停止了响应,查看日志发现apache的进程崩溃了。我这两个系统都是64位的,比较了apache2/bin下的问题,发现两个apache文件大小并不一样,Ubun......
  • 使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
    现在到了使用ApacheIoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句:本节中列出了有关架构管理的语句。数据管理语句:本节中......
  • Apache Commons Logging 是如何决定使用哪个日志实现类的
    ApacheCommonsLogging像SLF4J一样,是个通用日志框架,广泛应用在各个开源组件中。说其通用,是因为它本身只提供了简单的日志输出的实现(org.apache.commons.logging.impl.SimpleLog和org.apache.commons.logging.impl.NoOpLog),主要是为你统一使用其他专业日志实现(Log4j、jdk1.4......
  • 16、Flink 的table api与sql之连接外部系统_ 读写外部系统的连接器和格式以及Apache H
    (文章目录)本文介绍了ApacheHive连接器的使用,以具体的示例演示了通过java和flinksqlcli创建catalog。本文依赖环境是hadoop、zookeeper、hive、flink环境好用,本文内容以flink1.17版本进行介绍的,具体示例是在1.13版本中运行的(因为hadoop集群环境是基于jdk8的,flink1.17版本需......
  • 实操教程 | 触发器实现 Apache DolphinScheduler 失败钉钉自动告警
    作者|sqlboy-yuzhenc背景介绍在实际应用中,我们经常需要将特定的任务通知给特定的人,虽然ApacheDolphinScheduler在安全中心提供了告警组和告警实例,但是配置起来相对复杂,并且还需要在定时调度时指定告警组。通过这篇文章,你将学到一个简单的方法,无需任何配置,只需要在用户表(t_......
  • Apache RocketMQ 5.0 消息进阶:如何支撑复杂的业务消息场景?
    作者:隆基一致性首先来看RocketMQ的第一个特性-事务消息,事务消息是RocketMQ与一致性相关的特性,也是RocketMQ有别于其他消息队列的最具区分度的特性。以大规模电商系统为例,付款成功后会在交易系统中订单数据库将订单状态更新为已付款。然后交易系统再发送一条消息给Rocke......
  • centos7.9+php+apache 配置阿里云ssl
     1、前往阿里云官网申请免费证书选择 2、证书存放在/etc/cert 3、httpd.cof配置ssl<VirtualHost_default_:443> ServerName域名 DocumentRoot网站根目录 SSLEngineon SSLProtocolall-SSLv2-SSLv3 SSLCipherSuiteHIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:......
  • 使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(11)
    账户管理报表IoTDB可以为用户提供账号权限管理操作,保障数据安全。接下来我将通过以下具体示例向朋友们展示基本的用户权限管理操作,介绍详细的SQL语法和用法详细信息。基本概念用户用户是数据库的合法用户。用户对应于唯一的用户名,并具有密码作为身份验证方式。在使用数据库之前,一......
  • Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!
    时隔两个月,ApacheSeaTunnel终于迎来大版本更新。此次发布的2.3.3版本在功能和性能上均有较大优化改进,其中大家期待已久的CDCSchemaevolution(DDL变更同步)、主键Split拆分、JDBCSink自动建表功能、SeaTunnelZeta引擎支持作业配置支持变量替换和传参等都是更新的亮......
  • ETL之apache hop系列3-hop Server环境部署与客户端发布管道工作流
    前言该文档主要是apachehop2.5的Windows10和Linuxdocker环境部署和客户端发布工作流和管道的相关内容不使用Docker直接使用应用程序包,下载压缩包文件后,需要解压缩文件并使用以下命令启动HopGUI:在Linux上:./hop-gui.sh在Windows上(需要JDK11):Hop-gui.bat一、Windo......