
# 在本地Windows环境中调测Doris应用
#### 操作场景
在程序代码完成开发后，您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时，您可以直接在本地进行调测。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 如果Windows开发环境中使用IBM JDK，不支持在Windows环境中直接运行应用程序。
- 需要在运行样例代码的本机**hosts**文件中设置访问节点的主机名和公网IP地址映射，主机名和公网IP地址请保持一一对应。
 
#### 在本地Windows环境中调测Doris应用
1. 单击IDEA右边Maven窗口的"Reimport All Maven Projects"，进行maven项目依赖import。 
   图1reimport projects   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001674854836.png "点击放大")
   
   
2. 编译运行程序。 
   放置好配置文件，并修改代码匹配登录用户后，文件列表如下图所示。
   图2doris-example待编译目录列表   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001675014540.png "点击放大")
   1. 编译方式有以下两种：
      - 方法一 选择"Maven \> *样例工程名称*\> Lifecycle \> clean"，双击"clean"运行maven的clean命令。
        选择"Maven \> *样例工程名称* \> Lifecycle \> compile"，双击"compile"运行maven的compile命令。
        图3maven工具 clean和compile   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001722813957.png) 
      
      - 方法二 在IDEA的下方Terminal窗口进入"pom.xml"所在目录，手动输入**mvn clean compile**命令进行编译。
        图4"mvn clean compile"命令编译   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001722813961.png "点击放大")
        编译完成，打印"Build Success"，生成target目录。
        图5"doris-jdbc-example"编译完成   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001675014544.png "点击放大")
        图6"doris-stream-load-example"编译完成（MRS 3.3.1-LTS及之后版本）   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002391493560.png "点击放大")
        ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
        MRS 3.6.0-LTS及之后版本，如果在编译过程中报错提示"请使用**-source 7** 或更高版本以启用**try-with-resources** "，需要在配置文件"pom.xml"的**properties**标签中新增如下内容，请根据实际需求添加JDK 8、JDK 17或JDK 21，例如：
        ```
        <maven.compoler.source>8</maven.compoler.source>
        <maven.compoler.target>8</maven.compoler.target>
        ```
        
       
   
   2. 运行程序。
      - 右键"JDBCExample.java"文件，选择"Run 'JDBCExample.main() '"。
        图7运行Doris样例程序   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001722934093.png "点击放大") 
      
      - 右键"DorisApplication.java"文件，选择"Run 'DorisApplication'"。
        图8运行Doris SpringBoot样例程序   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002486420670.png) 
      
      - MRS 3.3.1-LTS及之后版本，右键"DorisStreamLoader.java"文件，选择"Run 'DorisStreamLoader.main()'"。
        图9运行Doris Stream Load样例程序   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002425093349.png "点击放大") 
       
   
   
   
   
 
#### 查看Windows调测结果
Doris应用程序运行完成后，可通过如下方式查看运行情况。
- 通过IntelliJ IDEA运行结果查看应用程序运行情况。
- 通过Doris日志获取应用程序运行情况。
各样例程序运行结果如下：
- "doris-jdbc-example"样例运行成功后，显示信息如下：
  ```
  2023-08-17 23:13:13,473 | INFO  | main | Start execute doris example. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:41)
  2023-08-17 23:13:13,885 | INFO  | main | Start create database. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:44)
  2023-08-17 23:13:13,949 | INFO  | main | Database created successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:46)
  2023-08-17 23:13:13,950 | INFO  | main | Start create table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:49)
  2023-08-17 23:13:14,132 | INFO  | main | Table created successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:51)
  2023-08-17 23:13:14,133 | INFO  | main | Start to insert data into the table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:54)
  2023-08-17 23:13:14,733 | INFO  | main | Inserting data to the table succeeded. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:56)
  2023-08-17 23:13:14,733 | INFO  | main | Start to query table data. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:59)
  2023-08-17 23:13:15,079 | INFO  | main | Start to print query result. | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:121)
  2023-08-17 23:13:15,079 | INFO  | main | c1  c2  c3   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:126)
  2023-08-17 23:13:15,079 | INFO  | main | 0  0  0   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 1  10  100   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 2  20  200   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 3  30  300   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 4  40  400   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 5  50  500   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 6  60  600   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,080 | INFO  | main | 7  70  700   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,081 | INFO  | main | 8  80  800   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,081 | INFO  | main | 9  90  900   | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134)
  2023-08-17 23:13:15,081 | INFO  | main | Querying table data succeeded. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:61)
  2023-08-17 23:13:15,081 | INFO  | main | Start to delete the table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:64)
  2023-08-17 23:13:15,114 | INFO  | main | Table deleted successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:66)
  2023-08-17 23:13:15,124 | INFO  | main | Doris example execution successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:71)
  Process finished with exit code 0
  ```
  
- Doris对接SpringBoot运行结果
  - 通过SpringBoot运行Doris JDBC样例程序结果： 在浏览器访问链接"http://*样例运行节点IP地址*:8080/doris/example/executesql"，IDEA正常打印日志，请求返回如下图所示：
    图10Doris JDBC样例运行信息   
    ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002518460579.png "点击放大") 
  
  - 通过SpringBoot运行DBalancer样例程序结果： 在浏览器访问链接"http://*样例运行节点IP地址*:8080/doris/example/dbalancer/executesql"，IDEA正常打印日志，请求返回如下图所示：
    图11Doris DBalancer样例运行信息   
    ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002486260708.png "点击放大") 
   
- "doris-stream-load-example"样例运行成功后，显示信息如下：
  MRS 3.6.0-LTS之前版本：
  ```
  Start create database.
  Database created successfully.
  Start create table.
  Table created successfully.
  {
      "TxnId": 27,
      "Label": "3661e112-f0e9-4aaa-80c3-4c2b7aefeefb",
      "Comment": "",
      "TwoPhaseCommit": "false",
      "Status": "Success",
      "Message": "OK",
      "NumberTotalRows": 4,
      "NumberLoadedRows": 4,
      "NumberFilteredRows": 0,
      "NumberUnselectedRows": 0,
      "LoadBytes": 141,
      "LoadTimeMs": 387,
      "BeginTxnTimeMs": 58,
      "StreamLoadPutTimeMs": 137,
      "ReadDataTimeMs": 0,
      "WriteDataTimeMs": 94,
      "CommitAndPublishTimeMs": 95
  }
  curl{
      "TxnId": 27,
      "Label": "3661e112-f0e9-4aaa-80c3-4c2b7aefeefb",
      "Comment": "",
      "TwoPhaseCommit": "false",
      "Status": "Success",
      "Message": "OK",
      "NumberTotalRows": 4,
      "NumberLoadedRows": 4,
      "NumberFilteredRows": 0,
      "NumberUnselectedRows": 0,
      "LoadBytes": 141,
      "LoadTimeMs": 387,
      "BeginTxnTimeMs": 58,
      "StreamLoadPutTimeMs": 137,
      "ReadDataTimeMs": 0,
      "WriteDataTimeMs": 94,
      "CommitAndPublishTimeMs": 95
  }
  ```
  运行成功后，还可在MySQL客户端连接Doris，执行以下命令查看导入的数据：
  **select \* from** *doris_test_sink* **;**
  ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002391653436.png "点击放大")
  MRS 3.6.0-LTS及之后版本：
  ```
  ... Stream load job result: {
      "TxnId": 17,
      "Label": "label_stream_load_400c9155-c74e-4c1c-bcfc-0aa5991d309b",
      "Comment": "",
      "TwoPhaseCommit": "false",
      "Status": "Success",
      "Message": "OK",
      "NumberTotalRows": 1,
      "NumberLoadedRows": 1,
      "NumberFilteredRows": 0,
      "NumberUnselectedRows": 0,
      "LoadBytes": 34,
      "LoadTimeMs": 361,
      "BeginTxnTimeMs": 64,
      "StreamLoadPutTimeMs": 171,
      "ReadDataTimeMs": 0,
      "WriteDataTimeMs": 47,
      "ReceiveDataTimeMs": 278,
      "CommitAndPublishTimeMs": 77
  }
   | com.example.stream.load.dorisstreamloadexample.DorisSecurityStreamLoader.testHttpsClient(DorisSecurityStreamLoader.java:198)
  Process finished with exit code 0
  ```
  运行成功后，还可在MySQL客户端连接Doris，执行以下命令查看导入的数据：
  **select \* from** *test_2.doris_test_sink* **;**
  ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002486420672.png)
  
 
