{"id":46819,"date":"2023-06-02T01:19:59","date_gmt":"2022-12-30T17:28:57","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/"},"modified":"2024-04-30T06:57:26","modified_gmt":"2024-04-29T22:57:26","slug":"%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/","title":{"rendered":"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd"},"content":{"rendered":"<h2>\u5927\u7eb2<\/h2>\n<p>\u6211\u5df2\u7ecf\u5728 AKS \u4e0a\u7684 Confluent Platform \u4e0a\u5bf9 topic \/ connector \/ stream \u8fdb\u884c\u4e86\u914d\u7f6e\uff0c\u5e76\u4e14\u4f7f\u7528 Kafka Connector \u8fde\u63a5\u4e86 Azure Database for MySQL \u4f5c\u4e3a\u6570\u636e\u6e90\uff0c\u5e76\u8fde\u63a5\u4e86 Azure Synapse Analytics \u4f5c\u4e3a\u6570\u636e\u5206\u6790\u5e73\u53f0\u7684\u6570\u636e\u63a5\u6536\u7aef\u3002\u4e0b\u9762\u662f\u6b65\u9aa4\u603b\u7ed3\uff1a<\/p>\n<p>\u6211\u5df2\u7ecf\u786e\u8ba4\u4e86\u5c06\u6570\u636e\u5199\u5165MySQL\uff0c\u5e76\u4e14\u901a\u8fc7Confluent Platform\u7684Stream\u5b9e\u65f6\u5904\u7406\u6570\u636e\uff0c\u5e76\u5c06\u6570\u636e\u5b58\u50a8\u5230Synapse Analytics\u4e2d\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aeb913a08637a69799d\/3-0.png\" alt=\"image.png\" \/><\/div>\n<hr \/>\n<h2>\u672c\u5730\u73af\u5883<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">macOS Monterey 12.3.1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">python 3.8.12<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Azure CLI 2.34.1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">helm v3.6.3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">mssql-cli v1.0.0<\/ul>\n<h2>\u4e8b\u524d\u51c6\u5907<\/h2>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u6267\u884c\u672c\u6587\u7ae0\uff0c\u786e\u4fddConfluent Platform\u5728AKS\u4e0a\u8fd0\u884c\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>\u6267\u884c\u672c\u6587\u7ae0\uff0c\u786e\u4fddAzure Database for MySQL\u4ee5\u5355\u4e00\u914d\u7f6e\u8fd0\u884c\u3002<\/p>\n<p>\u6267\u884c\u672c\u6587\u7ae0\uff0c\u786e\u4fddAzure Synapse Analytics\u8fd0\u884c\u3002<\/p>\n<hr \/>\n<h2>\u5404\u79cd\u914d\u7f6e<\/h2>\n<h3>\u786e\u8ba4MySQL\u670d\u52a1\u5668\u7684\u9644\u52a0\u8bbe\u7f6e\u3002<\/h3>\n<p>\u8bf7\u4f7f\u7528Azure\u95e8\u6237\uff0c\u5728Confluent Platform\u4e0a\u8fd0\u884c\u7684AKS\u4e2d\u5c06\u4eceAzure Database for MySQL\u8bbf\u95ee\u6743\u9650\u8bbe\u7f6e\u4e3a\u201c\u662f\u201d\uff0c\u8fd9\u9700\u8981\u5728\u8d44\u6e90\u7684\u201c\u8fde\u63a5\u5b89\u5168\u6027\u201d\u8bbe\u7f6e\u4e2d\u4fee\u6539\u201c\u5141\u8bb8\u8bbf\u95eeAzure\u670d\u52a1\u201d\u4e3a\u201c\u662f\u201d\u3002<\/p>\n<p>\u8bf7\u53c2\u8003\u521b\u5efa Azure Database for MySQL \u670d\u52a1\u5668\u7684\u9632\u706b\u5899\u89c4\u5219\u3002<\/p>\n<p>\u8bf7\u786e\u8ba4\u4ee5\u4e0b&#8221;\u670d\u52a1\u5668\u53c2\u6570&#8221;\u7684\u9879\u76ee\u503c\u7684\u53d8\u66f4\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">time_zone : SYSTEM \u2192 +9:00<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">binlog_row_image : MINIMAL \u2192 FULL<\/ul>\n<h3>\u786e\u8ba4Pod<\/h3>\n<pre class=\"post-pre\"><code>## AKS\u30af\u30e9\u30b9\u30bf\u63a5\u7d9a\u306e\u305f\u3081\u306e\u305f\u3081\u306e\u8a8d\u8a3c\u60c5\u5831\u306e\u53d6\u5f97\r\n$ az aks get-credentials --resource-group rg_ituru_aks01 --name aks_ituru_cp01\r\n\r\n## namespace \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3057\u3066\u306e\u6307\u5b9a\r\n$ kubectl config set-context --current --namespace akscp610\r\n\r\n## Pod \u306e\u78ba\u8a8d\r\n$ kubectl get pod -o wide\r\nNAME                                       READY   STATUS    RESTARTS        AGE     IP          NODE                               NOMINATED NODE   READINESS GATES\r\ncp610-cp-control-center-f46bc647d-nb42w    1\/1     Running   2 (2m52s ago)   3m33s   10.0.1.36   aks-cpdemo01-26269800-vmss000001   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-kafka-0                           2\/2     Running   1 (113s ago)    3m33s   10.0.1.16   aks-cpdemo01-26269800-vmss000000   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-kafka-1                           2\/2     Running   0               2m39s   10.0.1.47   aks-cpdemo01-26269800-vmss000001   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-kafka-2                           2\/2     Running   0               2m7s    10.0.1.79   aks-cpdemo01-26269800-vmss000002   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-kafka-connect-7b6cd684b5-6s5gf    2\/2     Running   2 (111s ago)    3m33s   10.0.1.11   aks-cpdemo01-26269800-vmss000000   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-ksql-server-656b866794-kw76z      2\/2     Running   0               3m33s   10.0.1.68   aks-cpdemo01-26269800-vmss000002   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-schema-registry-d8466d9dd-msm5p   2\/2     Running   2 (2m43s ago)   3m33s   10.0.1.67   aks-cpdemo01-26269800-vmss000002   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-zookeeper-0                       2\/2     Running   0               3m33s   10.0.1.44   aks-cpdemo01-26269800-vmss000001   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-zookeeper-1                       2\/2     Running   0               2m39s   10.0.1.73   aks-cpdemo01-26269800-vmss000002   &lt;none&gt;           &lt;none&gt;\r\ncp610-cp-zookeeper-2                       2\/2     Running   0               115s    10.0.1.12   aks-cpdemo01-26269800-vmss000000   &lt;none&gt;           &lt;none&gt;\r\nkafka-client                               1\/1     Running   0               6m15s   10.0.1.69   aks-cpdemo01-26269800-vmss000002   &lt;none&gt;           &lt;none&gt;\r\nksql-client                                1\/1     Running   0               6m2s    10.0.1.14   aks-cpdemo01-26269800-vmss000000   &lt;none&gt;           &lt;none&gt;\r\n\r\n\r\n## \u8d77\u52d5\u30b5\u30fc\u30d3\u30b9\u306e\u78ba\u8a8d\r\n$ kubectl get svc\r\nNAME                          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)             AGE\r\ncp610-cp-control-center       ClusterIP   10.1.0.73    &lt;none&gt;        9021\/TCP            4m16s\r\ncp610-cp-kafka                ClusterIP   10.1.0.63    &lt;none&gt;        9092\/TCP,5556\/TCP   4m16s\r\ncp610-cp-kafka-connect        ClusterIP   10.1.0.26    &lt;none&gt;        8083\/TCP,5556\/TCP   4m16s\r\ncp610-cp-kafka-headless       ClusterIP   None         &lt;none&gt;        9092\/TCP            4m16s\r\ncp610-cp-ksql-server          ClusterIP   10.1.0.86    &lt;none&gt;        8088\/TCP,5556\/TCP   4m16s\r\ncp610-cp-schema-registry      ClusterIP   10.1.0.157   &lt;none&gt;        8081\/TCP,5556\/TCP   4m16s\r\ncp610-cp-zookeeper            ClusterIP   10.1.0.119   &lt;none&gt;        2181\/TCP,5556\/TCP   4m16s\r\ncp610-cp-zookeeper-headless   ClusterIP   None         &lt;none&gt;        2888\/TCP,3888\/TCP   4m16s\r\n<\/code><\/pre>\n<hr \/>\n<h3>\u521b\u5efa Kafka \u4e3b\u9898<\/h3>\n<pre class=\"post-pre\"><code>## Kafka-client \u3078\u306e\u63a5\u7d9a\r\n$ kubectl exec -it kafka-client -- \/bin\/bash\r\n\r\n## topic_002 \u306e\u4f5c\u6210\r\n[appuser@kafka-client ~]$ kafka-topics --zookeeper cp610-cp-zookeeper:2181 --create --topic topic002 --partitions 1 --replication-factor 1\r\nCreated topic topic002.\r\n\r\n## topic \u306e\u78ba\u8a8d\r\n[appuser@kafka-client ~]$ kafka-topics --zookeeper cp610-cp-zookeeper:2181 --list\r\n<\/code><\/pre>\n<hr \/>\n<h3>\u8fde\u63a5\u5668\u7684\u5b9a\u4e49\u6587\u4ef6<\/h3>\n<h4>MySqlConnector\u7684\u5b9a\u4e49\u6587\u4ef6<\/h4>\n<p>\u8bf7\u53c2\u8003Debezium\u6587\u6863-\u5165\u95e8-\u6559\u7a0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"MySqlSourceConnector_1\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"config\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"connectionTimeZone\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"JST\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"connector.class\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"io.debezium.connector.mysql.MySqlConnector\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"tasks.max\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"1\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.hostname\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"iturumysql01.mysql.database.azure.com\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.port\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"3306\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.user\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"adminadmin@iturumysql01\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.password\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"HogeHogeHoge!\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.server.name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"iturumysql01\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.ssl.mode\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"preferred\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.history.kafka.bootstrap.servers\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cp610-cp-kafka:9092\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.history.kafka.topic\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"history.cpdemo.inventory\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"database.include.list\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"iotdummydb\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h4>SqlDwSinkConnector\u7684\u914d\u7f6e\u6587\u4ef6<\/h4>\n<p>\u8bf7\u67e5\u770b\u9002\u7528\u4e8eConfluent Platform\u7684Azure Synapse Analytics Sink Connector\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"SqlDwSinkConnector_1\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"config\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"connector.class\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"io.confluent.connect.azuresqldw.AzureSqlDwSinkConnector\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"tasks.max\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"1\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"topics\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"topic002\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"azure.sql.dw.url\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"jdbc:sqlserver:\/\/cpworkspace01.sql.azuresynapse.net:1433;\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"azure.sql.dw.user\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"adminadmin\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"azure.sql.dw.password\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"HogeHogeHoge1!\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"azure.sql.dw.database.name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cpdemosqldb\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"auto.create\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"true\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"auto.evolve\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"true\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"table.name.format\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"kafka_${topic}\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u8fde\u63a5\u5668\u7684\u8bbe\u7f6e<\/h3>\n<p>\u5c06Kafka Connect\u7684\u8fde\u63a5\u7aef\u53e3\uff088083\uff09\u91cd\u5b9a\u5411\u5230\u672c\u5730\u73af\u5883\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl port-forward --address localhost svc\/cp610-cp-kafka-connect 8083:8083\r\nForwarding from 127.0.0.1:8083 -&gt; 8083\r\nForwarding from [::1]:8083 -&gt; 8083\r\n\r\n\u203b CTRL+C \u3067\u7d42\u4e86\u3067\u304d\u307e\u3059\r\n<\/code><\/pre>\n<p>\u6253\u5f00\u53e6\u4e00\u4e2a\u7ec8\u7aef\uff0c\u5e76\u521b\u5efa\u4ee5\u4e0b\u7684 Kafka \u8fde\u63a5\u5668\u3002<\/p>\n<h4>\u521b\u5efa MySqlConnector<\/h4>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4ee5\u4e0b\u306e\uff13\u3064\u306e\u30c8\u30d4\u30c3\u30af\u304c\u81ea\u52d5\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>iturumysql01 \uff1aCREATE,DROP \/ Database,Table \u7b49\u306e\u64cd\u4f5c\u30ed\u30b0\uff0bSchema\u60c5\u5831\u304c\u4fdd\u5b58\u3055\u308c\u308b<br \/>\niturumysql01.iotdummydb.inventory \uff1a\u30c7\u30fc\u30bf\u304c\u4fdd\u5b58\u3055\u308c\u308b\uff08MySQL\u306e\u5bfe\u8c61DB\u306b\u30c7\u30fc\u30bf\u304c\u3042\u308b\u3068\u304d\uff09<br \/>\nhistory.cpdemo.inventory \uff1aConnector\u304c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30b9\u30ad\u30fc\u30de\u5c65\u6b74\u3092\u4fdd\u7ba1\u3059\u308b\u305f\u3081\u306b\u5229\u7528<\/p>\n<pre class=\"post-pre\"><code>## MySQL\u3078\u306e\u63a5\u7d9a\u78ba\u8a8d\u304c\u3068\u308c\u306a\u3044\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3059\r\n$ curl -i -X POST http:\/\/localhost:8083\/connectors -H 'Content-Type: application\/json' --data @MySqlSourceConnector.json\r\n\r\nHTTP\/1.1 201 Created\r\nDate: Mon, 23 May 2022 23:43:16 GMT\r\nLocation: http:\/\/localhost:8083\/connectors\/MySqlSourceConnector_1\r\nContent-Type: application\/json\r\nContent-Length: 600\r\nServer: Jetty(9.4.33.v20201020)\r\n\r\n{\"name\":\"MySqlSourceConnector_1\",\"config\":{\"connectionTimeZone\":\"JST\",\"connector.class\":\"io.debezium.connector.mysql.MySqlConnector\",\"tasks.max\":\"1\",\"database.hostname\":\"iturumysql01.mysql.database.azure.com\",\"database.port\":\"3306\",\"database.user\":\"mysqladmin@iturumysql01\",\"database.password\":\"NetworldPsg2!\",\"database.server.name\":\"iturumysql01\",\"database.ssl.mode\":\"preferred\",\"database.history.kafka.bootstrap.servers\":\"cp610-cp-kafka:9092\",\"database.history.kafka.topic\":\"history.cpdemo.inventory\",\"database.include.list\":\"iotdummydb\",\"name\":\"MySqlSourceConnector_1\"},\"tasks\":[],\"type\":\"source\"}\r\n\r\n\u30fc\u30fc\u30fc\u3000\u3061\u306a\u307f\u306b\u3000\u30fc\u30fc\u30fc\r\n## \u524a\u9664\u306e\u5834\u5408\r\n$ curl -X DELETE http:\/\/localhost:8083\/connectors\/MySqlSourceConnector_1\r\n<\/code><\/pre>\n<h4>\u521b\u5efaSink &#8211; SqlDwSinkConnector<\/h4>\n<pre class=\"post-pre\"><code>## Synapse \u3078\u306e\u63a5\u7d9a\u78ba\u8a8d\u304c\u3068\u308c\u306a\u3044\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3059\r\n$ curl -i -X POST http:\/\/localhost:8083\/connectors -H 'Content-Type: application\/json' --data @SqlDwSinkConnector.json\r\n\r\nHTTP\/1.1 201 Created\r\nDate: Thu, 26 May 2022 05:44:34 GMT\r\nLocation: http:\/\/localhost:8083\/connectors\/SqlDwSinkConnector_1\r\nContent-Type: application\/json\r\nContent-Length: 493\r\nServer: Jetty(9.4.33.v20201020)\r\n\r\n{\"name\":\"SqlDwSinkConnector_1\",\"config\":{\"connector.class\":\"io.confluent.connect.azuresqldw.AzureSqlDwSinkConnector\",\"tasks.max\":\"1\",\"topics\":\"topic002\",\"azure.sql.dw.url\":\"jdbc:sqlserver:\/\/cpworkspace01.sql.azuresynapse.net:1433;\",\"azure.sql.dw.user\":\"synapseadmin\",\"azure.sql.dw.password\":\"NetworldPsg2!\",\"azure.sql.dw.database.name\":\"CPDemoDataWarehouse\",\"auto.create\":\"true\",\"auto.evolve\":\"true\",\"table.name.format\":\"kafka_${topic}\",\"name\":\"SqlDwSinkConnector_1\"},\"tasks\":[],\"type\":\"sink\"}\r\n\r\n\u30fc\u30fc\u30fc\u3000\u3061\u306a\u307f\u306b\u3000\u30fc\u30fc\u30fc\r\n## \u524a\u9664\u306e\u5834\u5408\r\n$ curl -X DELETE http:\/\/localhost:8083\/connectors\/SqlDwSinkConnector_1\r\n<\/code><\/pre>\n<h4>\u8fde\u63a5\u5668\u7684\u786e\u8ba4<\/h4>\n<pre class=\"post-pre\"><code>## \u30ef\u30fc\u30ab\u30fc\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30b3\u30cd\u30af\u30bf\u30fc\u306e\u30ea\u30b9\u30c8\u306e\u8868\u793a\r\n$ curl localhost:8083\/connectors\r\n[\"MySqlSourceConnector_1\",\"SqlDwSinkConnector_1\"]\r\n\r\n\r\n## MySqlSourceConnector \u306e\u72b6\u614b\u78ba\u8a8d\r\n$ curl localhost:8083\/connectors\/MySqlSourceConnector_1\/status | jq\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n100   176  100   176    0     0   3365      0 --:--:-- --:--:-- --:--:--  3384\r\n{\r\n  \"name\": \"MySqlSourceConnector_1\",\r\n  \"connector\": {\r\n    \"state\": \"RUNNING\",\r\n    \"worker_id\": \"10.0.1.11:8083\"\r\n  },\r\n  \"tasks\": [\r\n    {\r\n      \"id\": 0,\r\n      \"state\": \"RUNNING\",\r\n      \"worker_id\": \"10.0.1.11:8083\"\r\n    }\r\n  ],\r\n  \"type\": \"source\"\r\n}\r\n\r\n\r\n## SqlDwSinkConnector \u306e\u72b6\u614b\u78ba\u8a8d\r\n$ curl localhost:8083\/connectors\/SqlDwSinkConnector_1\/status | jq\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n100   172  100   172    0     0   2487      0 --:--:-- --:--:-- --:--:--  2492\r\n{\r\n  \"name\": \"SqlDwSinkConnector_1\",\r\n  \"connector\": {\r\n    \"state\": \"RUNNING\",\r\n    \"worker_id\": \"10.0.1.11:8083\"\r\n  },\r\n  \"tasks\": [\r\n    {\r\n      \"id\": 0,\r\n      \"state\": \"RUNNING\",\r\n      \"worker_id\": \"10.0.1.11:8083\"\r\n    }\r\n  ],\r\n  \"type\": \"sink\"\r\n}\r\n\r\n\r\n## \u307e\u3068\u3081\u3066\u78ba\u8a8d\u3059\u308b\u5834\u5408\r\n$ curl -s \"http:\/\/localhost:8083\/connectors?expand=info&amp;expand=status\" | \\\r\n          jq '. | to_entries[] | [ .value.info.type, .key, .value.status.connector.state,.value.status.tasks[].state,.value.info.config.\"connector.class\"]|join(\":|:\")' | \\\r\n          column -s : -t| sed 's\/\\\"\/\/g'| sort\r\n\r\nsink    |  SqlDwSinkConnector_1    |  RUNNING  |  RUNNING  |  io.confluent.connect.azuresqldw.AzureSqlDwSinkConnector\r\nsource  |  MySqlSourceConnector_1  |  RUNNING  |  RUNNING  |  io.debezium.connector.mysql.MySqlConnector\r\n<\/code><\/pre>\n<hr \/>\n<h3>KSQL\u7684\u914d\u7f6e<\/h3>\n<h4>\u8fde\u63a5\u5230KSQL<\/h4>\n<pre class=\"post-pre\"><code>## Ksql-client \u3078\u306e\u63a5\u7d9a\r\n$ kubectl exec -it ksql-client -- \/bin\/bash\r\n\r\n## KsqlDB \u3078\u306e\u63a5\u7d9a\r\n[appuser@ksql-client ~]$ ksql http:\/\/cp610-cp-ksql-server:8088\r\n\r\nOpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.\r\n                  \r\n                  ===========================================\r\n                  =       _              _ ____  ____       =\r\n                  =      | | _____  __ _| |  _ \\| __ )      =\r\n                  =      | |\/ \/ __|\/ _` | | | | |  _ \\      =\r\n                  =      |   &lt;\\__ \\ (_| | | |_| | |_) |     =\r\n                  =      |_|\\_\\___\/\\__, |_|____\/|____\/      =\r\n                  =                   |_|                   =\r\n                  =  Event Streaming Database purpose-built =\r\n                  =        for stream processing apps       =\r\n                  ===========================================\r\n\r\nCopyright 2017-2020 Confluent Inc.\r\n\r\nCLI v6.1.0, Server v6.1.0 located at http:\/\/cp610-cp-ksql-server:8088\r\nServer Status: RUNNING\r\n\r\nHaving trouble? Type 'help' (case-insensitive) for a rundown of how things work!\r\n\r\n\r\n## topic \u306e\u78ba\u8a8d\r\nksql&gt; list topics;\r\n\r\n Kafka Topic                       | Partitions | Partition Replicas \r\n---------------------------------------------------------------------\r\n cp610-cp-kafka-connect-config     | 1          | 3                  \r\n cp610-cp-kafka-connect-offset     | 25         | 3                  \r\n cp610-cp-kafka-connect-status     | 5          | 3                  \r\n history.cpdemo.inventory          | 1          | 1                  \r\n iturumysql01                      | 1          | 1                  \r\n iturumysql01.iotdummydb.inventory | 1          | 1                  \r\n topic002                          | 1          | 1                  \r\n---------------------------------------------------------------------\r\n<\/code><\/pre>\n<h4>\u4f7f\u7528 Avro Schema \u8fdb\u884c\u5173\u8054\u521b\u5efa\u6d41\u3002<\/h4>\n<pre class=\"post-pre\"><code>## MySQL Source Connector \u7528\u306e stream001\u3000\u3092\u4f5c\u6210\r\nksql&gt; CREATE STREAM stream001 WITH (kafka_topic = 'iturumysql01.iotdummydb.inventory', value_format = 'avro');\r\n\r\n Message        \r\n----------------\r\n Stream created \r\n----------------\r\n\r\n\r\n## Synapse Sink Connector \u7528\u306e stream002 \u3092\u4f5c\u6210\u3057 topic002 \u306b\u7d10\u4ed8\u3051\u308b\r\nksql&gt; CREATE STREAM stream002 WITH (KAFKA_TOPIC='topic002', VALUE_FORMAT='AVRO') AS \r\n        SELECT  s001.after-&gt;id as id,\r\n                s001.after-&gt;section as section, \r\n                s001.after-&gt;iot_state as prefecture,\r\n                s001.after-&gt;val_1 as val_1,\r\n                s001.after-&gt;val_2 as val_2\r\n        FROM stream001 s001; \r\n\r\n Message                                \r\n----------------------------------------\r\n Created query with ID CSAS_STREAM002_1 \r\n----------------------------------------\r\n\r\n\r\n## Stream\u306e\u78ba\u8a8d\r\nksql&gt; show streams;\r\n\r\n Stream Name | Kafka Topic                       | Key Format | Value Format | Windowed \r\n----------------------------------------------------------------------------------------\r\n STREAM001   | iturumysql01.iotdummydb.inventory | KAFKA      | AVRO         | false    \r\n STREAM002   | topic002                          | KAFKA      | AVRO         | false    \r\n----------------------------------------------------------------------------------------\r\n<\/code><\/pre>\n<p>\u4e00\u5207\u51c6\u5907\u5c31\u7eea<\/p>\n<hr \/>\n<h2>\u6570\u636e\u6d41\u7684\u786e\u8ba4<\/h2>\n<h3>\u786e\u8ba4\u6d41<\/h3>\n<pre class=\"post-pre\"><code>## \u30c7\u30fc\u30bf\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u72b6\u6cc1\u3092\u78ba\u8a8d\u3057\u307e\u3059\r\nksql&gt; SELECT * FROM stream002 emit changes;\r\n\r\nPress CTRL-C to interrupt\r\n<\/code><\/pre>\n<h4>\u6267\u884c\u5e94\u7528\u7a0b\u5e8f (Zh\u00ed x\u00f9)<\/h4>\n<p>\u6211\u4ece\u672c\u5730\u7ec8\u7aef\u6267\u884c\u4e86\u5728\u6b64\u6587\u7ae0\u4e2d\u63d0\u5230\u7684&#8221;mysql_IoTdummy.py&#8221; Python\u7a0b\u5e8f\u3002\u6bcf\u96941\u79d2\u751f\u6210\u4e865\u6761\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code>$ python mysql_IoTdummy.py --mode db  --wait 1--count 10\r\n\r\n\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30fb\u30c6\u30fc\u30d6\u30eb\u3078\u306e\u30c7\u30fc\u30bf\u66f8\u304d\u8fbc\u307f\r\n\r\nConnection established\r\n\r\n['1653059784.916943', 0, '111', 'V', '786-4201', '\u5fb3\u5cf6\u770c', 158.33322633209377, 84.49057325157214, 1653059784.91714]\r\n['1653059784.917148', 1, '111', 'L', '575-1674', '\u5c71\u53e3\u770c', 135.8599096871533, 75.064630664443, 1653059784.917203]\r\n['1653059784.917208', 2, '111', 'C', '607-0145', '\u4f50\u8cc0\u770c', 156.0637293462609, 78.21672571181065, 1653059784.917251]\r\n['1653059784.917256', 3, '111', 'A', '749-7168', '\u5317\u6d77\u9053', 123.96884840139384, 80.95952082333669, 1653059784.917296]\r\n['1653059784.917301', 4, '111', 'L', '843-4658', '\u9999\u5ddd\u770c', 199.07957653525887, 53.37983182659535, 1653059784.917351]\r\nInserted 5 row(s) of data.\r\nDone.\r\n\r\n\u51e6\u7406\u6642\u9593:6.554551839828491 [sec]\r\n<\/code><\/pre>\n<p>\u60a8\u53ef\u4ee5\u5728&#8221;stream002&#8243;\u4e0a\u5b9e\u65f6\u67e5\u770b\u6d41\u5a92\u4f53\u3002<\/p>\n<pre class=\"post-pre\"><code>ksql&gt; SELECT * FROM stream002 emit changes;\r\n\r\n+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+\r\n|ID                     |SECTION                |PREFECTURE             |VAL_1                  |VAL_2                  |\r\n+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+\r\n|1653059784.916943      |V                      |\u5fb3\u5cf6\u770c                    |158.33322143554688     |84.49057006835938      |\r\n|1653059784.917148      |L                      |\u5c71\u53e3\u770c                    |135.8599090576172      |75.06462860107422      |\r\n|1653059784.917208      |C                      |\u4f50\u8cc0\u770c                    |156.06373596191406     |78.21672821044922      |\r\n|1653059784.917256      |A                      |\u5317\u6d77\u9053                    |123.9688491821289      |80.95951843261719      |\r\n|1653059784.917301      |L                      |\u9999\u5ddd\u770c                    |199.07957458496094     |53.37983322143555      |\r\n\r\nPress CTRL-C to interrupt\r\n<\/code><\/pre>\n<p>\u5728\u201ctopic002\u201d\u8bdd\u9898\u4e2d\uff0c\u6211\u4eec\u4f1a\u786e\u8ba4\u6570\u636e\u662f\u5426\u6b63\u5728\u8fdb\u884c\u6d41\u5f0f\u4f20\u8f93\u3002<\/p>\n<pre class=\"post-pre\"><code>ksql&gt; PRINT 'iturumysql01.iotdummydb.inventory' FROM BEGINNING;\r\n\r\nksql&gt; PRINT 'topic002' FROM BEGINNING;\r\n\r\nKey format: \u00af\\_(\u30c4)_\/\u00af - no data processed\r\nValue format: AVRO\r\nrowtime: 2022\/05\/20 15:16:25.700 Z, key: &lt;null&gt;, value: {\"ID\": \"1653059784.916943\", \"SECTION\": \"V\", \"PREFECTURE\": \"\u5fb3\u5cf6\u770c\", \"VAL_1\": 158.33322143554688, \"VAL_2\": 84.49057006835938}\r\nrowtime: 2022\/05\/20 15:16:26.703 Z, key: &lt;null&gt;, value: {\"ID\": \"1653059784.917148\", \"SECTION\": \"L\", \"PREFECTURE\": \"\u5c71\u53e3\u770c\", \"VAL_1\": 135.8599090576172, \"VAL_2\": 75.06462860107422}\r\nrowtime: 2022\/05\/20 15:16:27.705 Z, key: &lt;null&gt;, value: {\"ID\": \"1653059784.917208\", \"SECTION\": \"C\", \"PREFECTURE\": \"\u4f50\u8cc0\u770c\", \"VAL_1\": 156.06373596191406, \"VAL_2\": 78.21672821044922}\r\nrowtime: 2022\/05\/20 15:16:29.209 Z, key: &lt;null&gt;, value: {\"ID\": \"1653059784.917256\", \"SECTION\": \"A\", \"PREFECTURE\": \"\u5317\u6d77\u9053\", \"VAL_1\": 123.9688491821289, \"VAL_2\": 80.95951843261719}\r\nrowtime: 2022\/05\/20 15:16:30.211 Z, key: &lt;null&gt;, value: {\"ID\": \"1653059784.917301\", \"SECTION\": \"L\", \"PREFECTURE\": \"\u9999\u5ddd\u770c\", \"VAL_1\": 199.07957458496094, \"VAL_2\": 53.37983322143555}\r\n\r\nPress CTRL-C to interrupt\r\n<\/code><\/pre>\n<h3>\u7528\u4e8e Azure Synapse Analytics \u7684\u6570\u636e\u68c0\u67e5<\/h3>\n<p>\u901a\u8fc7\u4f7f\u7528\u300cmssql-cli\u300d\u5de5\u5177\uff0c\u5728 Synapse \u7684 SQL \u6c60\u4e2d\u5bf9\u6570\u636e\u5e93\u6267\u884c\u67e5\u8be2\u64cd\u4f5c\u3002\u786e\u4fdd\u6570\u636e\u901a\u8fc7 Confluent Platform \u7684 Kafka Connector \u8fdb\u884c\u5b58\u50a8\u3002<\/p>\n<pre class=\"post-pre\"><code>## \u5f15\u6570\u3068\u3057\u3066 SQL\u30d7\u30fc\u30eb\uff08\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff09\u540d\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u6307\u5b9a\u3057\u3066\u3001Synapse \u306e workspace \u306b\u63a5\u7d9a\r\n$ mssql-cli -S cpworkspace01.sql.azuresynapse.net -U synapseadmin -P NetworldPsg2! -d cpdemosqldb\r\n\r\n## \u30c6\u30fc\u30d6\u30eb\u3067\u30af\u30a8\u30ea\u3092\u5b9f\u884c\u3057\u3066\u3001\u305d\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\r\ncpdemosqldb&gt; select * from kafka_topic002;\r\n+------------------+-------------------+-----------+------------------+--------------+\r\n| VAL_1            | ID                | SECTION   | VAL_2            | PREFECTURE   |\r\n|------------------+-------------------+-----------+------------------+--------------|\r\n| 111.479415893555 | 1653984067.079385 | B         | 66.560661315918  | \u5ca1\u5c71\u770c       |\r\n| 189.111267089844 | 1653984229.080214 | S         | 68.9491729736328 | \u9577\u91ce\u770c       |\r\n| 191.615036010742 | 1653984100.803468 | Q         | 53.9585876464844 | \u798f\u5ca1\u770c       |\r\n| 199.33251953125  | 1653984229.080527 | F         | 61.3692970275879 | \u798f\u5ca1\u770c       |\r\n| 151.738159179688 | 1653983738.752873 | B         | 87.595329284668  | \u5927\u962a\u5e9c       |\r\n| 194.590621948242 | 1653983783.798177 | X         | 87.0414962768555 | \u6803\u6728\u770c       |\r\n| 114.615188598633 | 1653983738.752919 | D         | 89.7937088012695 | \u5bae\u57ce\u770c       |\r\n| 124.387306213379 | 1653984441.154836 | S         | 74.9007797241211 | \u9577\u5d0e\u770c       |\r\n| 164.049896240234 | 1653983783.798038 | I         | 72.0705490112305 | \u5c90\u961c\u770c       |\r\n| 198.455078125    | 1653984100.803527 | T         | 65.5769958496094 | \u798f\u4e95\u770c       |\r\n      \uff1a                    \uff1a            \uff1a                 \uff1a             \uff1a\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u5904\u7406\u5b8c\u6bd5<\/h2>\n<h3>Pod \/ namespace \u7684\u5378\u8f7d\u65b9\u5f0f<\/h3>\n<pre class=\"post-pre\"><code>## Pod : Confluent Platform\r\n$ helm delete cp610             \r\nW0407 17:38:18.658767   39907 warnings.go:70] policy\/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy\/v1 PodDisruptionBudget\r\nrelease \"cp610\" uninstalled\r\n\r\n## Pod : kafka-client \/ ksql-client\r\n$ kubectl delete -f cp-helm-charts\/examples\/kafka-client.yaml\r\n$ kubectl delete -f cp-helm-charts\/examples\/ksql-client.yaml\r\n\r\n## namespace \u306e\u524a\u9664\u65b9\u6cd5\uff08namespace\u914d\u4e0b\u306ePod\u3082\u524a\u9664\u3055\u308c\u308b\uff09\r\n$ kubectl delete namespace akscp610\r\nnamespace \"akscp610\" deleted\r\n<\/code><\/pre>\n<h3>\u505c\u6b62\u548c\u542f\u52a8AKS\u96c6\u7fa4<\/h3>\n<pre class=\"post-pre\"><code>$ az aks stop -g rg_ituru_aks01 -n aks_ituru_cp01\r\n$ az aks start -g rg_ituru_aks01 -n aks_ituru_cp01\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u603b\u7ed3<\/h2>\n<p>\u901a\u8fc7\u4f7f\u7528Confluent\u5e73\u53f0\u4f5c\u4e3a\u6838\u5fc3\uff0c\u5728Azure\u4e0a\u53ef\u4ee5\u8f7b\u677e\u642d\u5efa\u6570\u636e\u6d41\u548c\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd\u3002\u7531\u4e8eKafka Connect\u652f\u6301\u8fde\u63a5\u591a\u4e2a\u8d44\u6e90\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b9e\u73b0\u6570\u636e\u7684\u805a\u5408\uff0c\u5e76\u4e14\u8fd8\u53ef\u4ee5\u8f7b\u677e\u8fde\u63a5\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd\u3002<\/p>\n<h3>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u4fe1\u606f\u3002<\/h3>\n<p>\u6211\u5df2\u4ed4\u7ec6\u9605\u8bfb\u4e86\u60a8\u63d0\u4f9b\u7684\u4fe1\u606f\uff0c\u5e76\u8868\u793a\u611f\u6fc0\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MySQL\u306eTable\u66f4\u65b0\u60c5\u5831\u3092Kafka\u4e0a\u3067ksql\u51e6\u7406\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Schema Registry \u306b\u3064\u3044\u3066\u66f8\u3044\u3066\u3044\u304f \u305d\u306e1: Confluent Schema Registry<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Debezium \u306b\u3088\u308b\u30c1\u30a7\u30f3\u30b8\u30c7\u30fc\u30bf\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc<\/ul>\n<p>\u53e6\u5916\uff0c\u6211\u4e5f\u53c2\u8003\u4e86\u4ee5\u4e0b\u8d44\u8baf\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Debezium MySQL Source Connector for Confluent Platform<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Azure Database for MySQL \u3067\u306e\u30b5\u30fc\u30d0\u30fc \u30d1\u30e9\u30e1\u30fc\u30bf\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u7b2c2\u7ae0 MySQL \u7528 Debezium \u30b3\u30cd\u30af\u30bf\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Debezium User Guide<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kafka Connect \u3068 Schema Registry \u306e\u4f7f\u7528<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kafka Connect \u3068\u30b3\u30cd\u30af\u30bf\u30fc\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kafka Connect \u306e\u30ed\u30b0\u8a18\u9332<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Azure Synapse Analytics Sink Connector for Confluent Platform<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u5927\u7eb2 \u6211\u5df2\u7ecf\u5728 AKS \u4e0a\u7684 Confluent Platform \u4e0a\u5bf9 topic \/ connector  [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-46819","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5c06-aks-\u4e0a\u7684-confluent-platform-\u548c-azure-synapse-analytics-\u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd\" \/>\n<meta property=\"og:description\" content=\"\u5927\u7eb2 \u6211\u5df2\u7ecf\u5728 AKS \u4e0a\u7684 Confluent Platform \u4e0a\u5bf9 topic \/ connector [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5c06-aks-\u4e0a\u7684-confluent-platform-\u548c-azure-synapse-analytics-\u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-30T17:28:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T22:57:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aeb913a08637a69799d\/3-0.png\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/\",\"name\":\"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-30T17:28:57+00:00\",\"dateModified\":\"2024-04-29T22:57:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5c06-aks-\u4e0a\u7684-confluent-platform-\u548c-azure-synapse-analytics-\u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd","og_description":"\u5927\u7eb2 \u6211\u5df2\u7ecf\u5728 AKS \u4e0a\u7684 Confluent Platform \u4e0a\u5bf9 topic \/ connector [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5c06-aks-\u4e0a\u7684-confluent-platform-\u548c-azure-synapse-analytics-\u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-30T17:28:57+00:00","article_modified_time":"2024-04-29T22:57:26+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aeb913a08637a69799d\/3-0.png"}],"author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"8 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/","name":"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-30T17:28:57+00:00","dateModified":"2024-04-29T22:57:26+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u5c1d\u8bd5\u5c06 AKS \u4e0a\u7684 Confluent Platform \u548c Azure Synapse Analytics \u8fdb\u884c\u534f\u4f5c\uff0c\u4ee5\u6784\u5efa\u6570\u636e\u5206\u6790\u57fa\u7840\u8bbe\u65bd"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%b0%86-aks-%e4%b8%8a%e7%9a%84-confluent-platform-%e5%92%8c-azure-synapse-analytics-%e8%bf%9b%e8%a1%8c%e5%8d%8f%e4%bd%9c%ef%bc%8c%e4%bb%a5%e6%9e%84%e5%bb%ba%e6%95%b0\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=46819"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46819\/revisions"}],"predecessor-version":[{"id":90393,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46819\/revisions\/90393"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=46819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=46819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=46819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}