• 在本地运行Kusto服务器


    我喜欢Kusto (或商用版本 Azure Data Explorer,简称 ADX) 是大家可以有目共睹的,之前还专门写过这方面的书籍,请参考 大数据分析新玩法之Kusto宝典, 很可能在今年还会推出第二季,正在酝酿题材和场景中。

    为了使用Kusto,你既可以购买正式的服务(Azure Data Explorer)用于生产环境,也可以注册免费版https://aka.ms/kustofree来做研究和试验。而今天我要给大家介绍的是,你还可以在本地运行自己的Kusto服务器(官方叫法是模拟器)呢。

    请注意,模拟器是没有技术支持的,建议不要用于生产环境啊。

    你可以通过 https://learn.microsoft.com/en-us/azure/data-explorer/kusto-emulator-overview 这个文档了解详细信息,但我这里给大家一个实操的步骤,避免大家走弯路。

    我推荐使用linux 的容器来做,而不是Windows,而且我当然推荐大家在启动容器的时候,把本地的磁盘mount上去,这样你自己创建的数据库,就可以在下次启动容器时还原回来。下面着重讲解几个关键步骤。

    1. 启动容器

    docker run -v /mnt/c/kustodata:/kustodata -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
    

    我用的是ubuntu服务器,通过WSL来启动的,所以你可以看到/mnt/c/kustodata 这个目录,其实是我的宿主机Windows上面C 盘下面的一个目录,然后我们映射到容器里的 /kustodata这个目录。

    2. 使用Kusto Explorer 来连接

    这里的关键是,本地服务器只支持 http 协议,而且不需要身份验证(请用自己的方式来保证安全性),所以你在连接时的连接字符串应该是下面这样的。

    3. 创建数据库

    这个没有特别的,你可以用下面的语法来创建数据库。

    .create database test persist (
      @"/kustodata/test/md",
      @"/kustodata/test/data"
      )
    

    这个查询是在容器里面执行的,所以这里的路径也应该是容器里面的路径,这也就是为什么我们此前要映射目录的原因了。

    一旦创建数据库,你就可以正常地进行数据方面的操作了,例如创建表格,导入数据等。

    # 创建表格
    .create table test(id:int,name:string)
    
    # 导入数据,按行导入
    .ingest inline into table test <| 
    1,'ares'
    
    # 导入数据,从文件导入
    .ingest into table test(@'/kustodata/data.csv') with(format ='csv', ignoreFirstRecord =true)
    

    4. 关闭服务器

    既然是本地服务器,你就可以完全控制它,按照你的需求可以随时关闭它。因为它是容器启动的,所以要关闭它也很简单,通常用一句命令即可。

    # xxxx 是容器编号,一般取前4位即可。通过 docker ps 可以看到当前正在运行的容器,以及他们的编号
    docker stop xxxx
    

    5. 重启后还原数据库

    最后一个关键步骤是,如何重启后还原数据库。因为容器如果关闭的话,数据会全部丢失,为了确保你的数据在下次启动时还在,你必须把它映射到外部宿主环境的一个目录来。

    此处你可以用到一个未公开的命令。

    .attach database test from @'/kustodata/test/md'
    

    希望对大家有所帮助,欢迎反馈和交流。

  • 相关阅读:
    [免费专栏] ATTACK安全之Android ICMP隧道攻击原理与入侵检测实践
    答应我,在vue中不要滥用watch好吗?
    C语言练习之递归实现n的k次方
    PHP多功能投票微信小程序系统源码
    带权有向图最短路径之Dijkstra和Floyd
    《Solidity 简易速速上手小册》第4章:智能合约的设计与开发(2024 最新版)
    copilot使用问题
    月薪9.2k, 90后转行网络优化工程师,我选择跳出社会认知怪圈
    FPGA高端项目:FPGA基于GS2971的SDI视频接收+图像缩放,提供3套工程源码和技术支持
    CentOS中实现基于Docker部署BI数据分析
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/17670476.html