{"id":148048,"date":"2020-08-30T18:02:10","date_gmt":"2020-08-30T10:02:10","guid":{"rendered":"http:\/\/4563.org\/?p=148048"},"modified":"2020-08-30T18:02:10","modified_gmt":"2020-08-30T10:02:10","slug":"flink-%e5%a6%82%e4%bd%95%e8%87%aa%e5%ae%9a%e4%b9%89mysql-source%e4%b8%8esink%ef%bc%8c%e5%ae%9e%e7%8e%b0mysql%e7%9a%84%e8%af%bb%e5%8f%96%e5%92%8c%e5%86%99%e5%85%a5","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=148048","title":{"rendered":"Flink \u5982\u4f55\u81ea\u5b9a\u4e49mysql source\u4e0esink\uff0c\u5b9e\u73b0mysql\u7684\u8bfb\u53d6\u548c\u5199\u5165"},"content":{"rendered":"<h2><a href=\"https:\/\/www.studytime.xin\/article\/#\u6570\u636e\u5e93\u8868\u51c6\u5907\" title=\"\u6570\u636e\u5e93\u8868\u51c6\u5907\"><\/a>\u6570\u636e\u5e93\u8868\u51c6\u5907<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><span>18<\/span><br><span>19<\/span><br><span>20<\/span><br><span>21<\/span><br><span>22<\/span><br><span>23<\/span><br><span>24<\/span><br><span>25<\/span><br><span>26<\/span><br><span>27<\/span><br><span>28<\/span><br><span>29<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>show<\/span> <span>databases<\/span>;<\/span><br><span><\/span><br><span><span>create<\/span> <span>database<\/span> flink;<\/span><br><span><\/span><br><span><span>use<\/span> flink<\/span><br><span><\/span><br><span><span>CREATE<\/span> <span>TABLE<\/span> <span>`user`<\/span> (<\/span><br><span>  <span>`id`<\/span> <span>int<\/span>(<span>10<\/span>) <span>unsigned<\/span> <span>NOT<\/span> <span>NULL<\/span> AUTO_INCREMENT <span>COMMENT<\/span> <span>'\u4e3b\u952eid'<\/span>,<\/span><br><span>  <span>`name`<\/span> <span>varchar<\/span>(<span>255<\/span>) <span>NOT<\/span> <span>NULL<\/span> <span>DEFAULT<\/span> <span>''<\/span> <span>COMMENT<\/span> <span>'\u7528\u6237\u540d\u79f0'<\/span>,<\/span><br><span>  <span>`address`<\/span> <span>varchar<\/span>(<span>200<\/span>) <span>NOT<\/span> <span>NULL<\/span> <span>DEFAULT<\/span> <span>''<\/span> <span>COMMENT<\/span> <span>'\u4f4f\u5740'<\/span>,<\/span><br><span>  <span>`sex`<\/span> <span>tinyint<\/span>(<span>1<\/span>) <span>NOT<\/span> <span>NULL<\/span> <span>DEFAULT<\/span> <span>'0'<\/span> <span>COMMENT<\/span> <span>'\u6027\u522b[0:\u672a\u77e5,1:\u7537,2:\u5973]'<\/span>,<\/span><br><span>  <span>`create_time`<\/span> <span>timestamp<\/span> <span>NOT<\/span> <span>NULL<\/span> <span>DEFAULT<\/span> <span>CURRENT_TIMESTAMP<\/span> <span>COMMENT<\/span> <span>'\u521b\u5efa\u65f6\u95f4'<\/span>,<\/span><br><span>  <span>`update_time`<\/span> <span>timestamp<\/span> <span>NOT<\/span> <span>NULL<\/span> <span>DEFAULT<\/span> <span>CURRENT_TIMESTAMP<\/span> <span>ON<\/span> <span>UPDATE<\/span> <span>CURRENT_TIMESTAMP<\/span> <span>COMMENT<\/span> <span>'\u66f4\u65b0\u65f6\u95f4'<\/span>,<\/span><br><span>  PRIMARY <span>KEY<\/span> (<span>`id`<\/span>) <span>USING<\/span> BTREE<\/span><br><span>) <span>ENGINE<\/span>=<span>InnoDB<\/span> AUTO_INCREMENT=<span>1<\/span> <span>DEFAULT<\/span> <span>CHARSET<\/span>=utf8 <span>COMMENT<\/span>=<span>'\u7528\u6237\u57fa\u7840\u4fe1\u606f\u8868'<\/span>;<\/span><br><span><\/span><br><span><\/span><br><span><span>INSERT<\/span> <span>INTO<\/span> <span>user<\/span>  (<span>name<\/span>, address,sex)  <span>VALUES<\/span>  (<span>'xiaoming'<\/span>,<span>'Beijing'<\/span>,<span>1<\/span>),(<span>'xiaoqiang'<\/span>,<span>'GuangZhou'<\/span>,<span>2<\/span>),(<span>'xiaohua'<\/span>,<span>'Hubei'<\/span>,<span>0<\/span>),(<span>'xiaoli'<\/span>,<span>'GuangZhou'<\/span>,<span>1<\/span>)<\/span><br><span><\/span><br><span><\/span><br><span><span>select<\/span> * <span>from<\/span> <span>user<\/span>;<\/span><br><span>+<span>----+-----------+-----------+-----+---------------------+---------------------+<\/span><\/span><br><span>| id | name      | address   | sex | create_time         | update_time         |<\/span><br><span>+<span>----+-----------+-----------+-----+---------------------+---------------------+<\/span><\/span><br><span>| 1  | xiaoming  | Beijing   | 1   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 2  | xiaoqiang | GuangZhou | 2   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 3  | xiaohua   | Hubei     | 0   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 4  | xiaoli    | GuangZhou | 1   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>+<span>----+-----------+-----------+-----+---------------------+---------------------+<\/span><\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#\u901a\u8fc7maven\u5728pom-xml\u4e2d\u6dfb\u52a0\u9a71\u52a8\u4f9d\u8d56\" title=\"\u901a\u8fc7maven\u5728pom.xml\u4e2d\u6dfb\u52a0\u9a71\u52a8\u4f9d\u8d56\"><\/a>\u901a\u8fc7maven\u5728pom.xml\u4e2d\u6dfb\u52a0\u9a71\u52a8\u4f9d\u8d56<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span>&lt;dependency&gt;<\/span><br><span>    &lt;groupId&gt;mysql&lt;\/groupId&gt;<\/span><br><span>    &lt;artifactId&gt;mysql-connector-java&lt;\/artifactId&gt;<\/span><br><span>    &lt;version&gt;5.1.35&lt;\/version&gt;<\/span><br><span>&lt;\/dependency&gt;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#\u5b9a\u4e49User\u5b9e\u4f53\u7c7b\uff0c\u7528\u4e8e\u5c01\u88c5\u6570\u636e\" title=\"\u5b9a\u4e49User\u5b9e\u4f53\u7c7b\uff0c\u7528\u4e8e\u5c01\u88c5\u6570\u636e\"><\/a>\u5b9a\u4e49User\u5b9e\u4f53\u7c7b\uff0c\u7528\u4e8e\u5c01\u88c5\u6570\u636e<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><span>18<\/span><br><span>19<\/span><br><span>20<\/span><br><span>21<\/span><br><span>22<\/span><br><span>23<\/span><br><span>24<\/span><br><span>25<\/span><br><span>26<\/span><br><span>27<\/span><br><span>28<\/span><br><span>29<\/span><br><span>30<\/span><br><span>31<\/span><br><span>32<\/span><br><span>33<\/span><br><span>34<\/span><br><span>35<\/span><br><span>36<\/span><br><span>37<\/span><br><span>38<\/span><br><span>39<\/span><br><span>40<\/span><br><span>41<\/span><br><span>42<\/span><br><span>43<\/span><br><span>44<\/span><br><span>45<\/span><br><span>46<\/span><br><span>47<\/span><br><span>48<\/span><br><span>49<\/span><br><span>50<\/span><br><span>51<\/span><br><span>52<\/span><br><span>53<\/span><br><span>54<\/span><br><span>55<\/span><br><span>56<\/span><br><span>57<\/span><br><span>58<\/span><br><span>59<\/span><br><span>60<\/span><br><span>61<\/span><br><span>62<\/span><br><span>63<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>package<\/span> xin.studytime.java.model;<\/span><br><span><\/span><br><span><span>public<\/span> <span><span>class<\/span> <span>User<\/span> <\/span>&#123;<\/span><br><span>    <span>public<\/span> <span>int<\/span> id;<\/span><br><span>    <span>public<\/span> String name;<\/span><br><span>    <span>public<\/span> String address;<\/span><br><span>    <span>public<\/span> <span>int<\/span> sex;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>User<\/span><span>(<span>int<\/span> id, String name, String address, <span>int<\/span> sex)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.id = id;<\/span><br><span>        <span>this<\/span>.name = name;<\/span><br><span>        <span>this<\/span>.address = address;<\/span><br><span>        <span>this<\/span>.sex = sex;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>User<\/span><span>(String name, String address, <span>int<\/span> sex)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.name = name;<\/span><br><span>        <span>this<\/span>.address = address;<\/span><br><span>        <span>this<\/span>.sex = sex;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>int<\/span> <span>getId<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>return<\/span> id;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>setId<\/span><span>(<span>int<\/span> id)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.id = id;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> String <span>getName<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>return<\/span> name;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>setName<\/span><span>(String name)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.name = name;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> String <span>getAddress<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>return<\/span> address;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>setAddress<\/span><span>(String address)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.address = address;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>int<\/span> <span>getSex<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>return<\/span> sex;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>setSex<\/span><span>(<span>int<\/span> sex)<\/span> <\/span>&#123;<\/span><br><span>        <span>this<\/span>.sex = sex;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> String <span>toString<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>return<\/span> <span>\"User&#123;\"<\/span> +<\/span><br><span>                <span>\"id=\"<\/span> + id +<\/span><br><span>                <span>\", name='\"<\/span> + name + <span>'''<\/span> +<\/span><br><span>                <span>\", address='\"<\/span> + address + <span>'''<\/span> +<\/span><br><span>                <span>\", sex=\"<\/span> + sex +<\/span><br><span>                <span>'&#125;'<\/span>;<\/span><br><span>    &#125;<\/span><br><span>&#125;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#\u5b9e\u73b0flink-\u81ea\u5b9a\u4e49mysql-source\" title=\"\u5b9e\u73b0flink \u81ea\u5b9a\u4e49mysql source\"><\/a>\u5b9e\u73b0flink \u81ea\u5b9a\u4e49mysql source<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><span>18<\/span><br><span>19<\/span><br><span>20<\/span><br><span>21<\/span><br><span>22<\/span><br><span>23<\/span><br><span>24<\/span><br><span>25<\/span><br><span>26<\/span><br><span>27<\/span><br><span>28<\/span><br><span>29<\/span><br><span>30<\/span><br><span>31<\/span><br><span>32<\/span><br><span>33<\/span><br><span>34<\/span><br><span>35<\/span><br><span>36<\/span><br><span>37<\/span><br><span>38<\/span><br><span>39<\/span><br><span>40<\/span><br><span>41<\/span><br><span>42<\/span><br><span>43<\/span><br><span>44<\/span><br><span>45<\/span><br><span>46<\/span><br><span>47<\/span><br><span>48<\/span><br><span>49<\/span><br><span>50<\/span><br><span>51<\/span><br><span>52<\/span><br><span>53<\/span><br><span>54<\/span><br><span>55<\/span><br><span>56<\/span><br><span>57<\/span><br><span>58<\/span><br><span>59<\/span><br><span>60<\/span><br><span>61<\/span><br><span>62<\/span><br><span>63<\/span><br><span>64<\/span><br><span>65<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>package<\/span> xin.studytime.java.source;<\/span><br><span><\/span><br><span><span>import<\/span> org.apache.flink.configuration.Configuration;<\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.functions.source.RichSourceFunction;<\/span><br><span><span>import<\/span> xin.studytime.java.model.User;<\/span><br><span><\/span><br><span><span>import<\/span> java.sql.DriverManager;<\/span><br><span><span>import<\/span> java.sql.PreparedStatement;<\/span><br><span><span>import<\/span> java.sql.Connection;<\/span><br><span><span>import<\/span> java.sql.ResultSet;<\/span><br><span><\/span><br><span><span>public<\/span> <span><span>class<\/span> <span>UserSourceFromMysql<\/span> <span>extends<\/span> <span>RichSourceFunction<\/span>&lt;<span>User<\/span>&gt; <\/span>&#123;<\/span><br><span>    PreparedStatement preparedStatement;<\/span><br><span>    <span>private<\/span> Connection connection;<\/span><br><span><\/span><br><span>    <span><span>public<\/span> <span>UserSourceFromMysql<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span>        <span>super<\/span>();<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>open<\/span><span>(Configuration parameters)<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>super<\/span>.open( parameters );<\/span><br><span>        String driver = <span>\"com.mysql.jdbc.Driver\"<\/span>;<\/span><br><span>        String url = <span>\"jdbc:mysql:\/\/node02:3306\/flink\"<\/span>;<\/span><br><span>        String username = <span>\"root\"<\/span>;<\/span><br><span>        String password = <span>\"!Qaz123456\"<\/span>;<\/span><br><span><\/span><br><span>        Class.forName( driver );<\/span><br><span>        connection = DriverManager.getConnection( url, username, password );<\/span><br><span>        String sql = <span>\"select * from user;\"<\/span>;<\/span><br><span>        preparedStatement = connection.prepareStatement( sql );<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>close<\/span><span>()<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>super<\/span>.close();<\/span><br><span>        <span>if<\/span> (connection != <span>null<\/span>) &#123;<\/span><br><span>            connection.close();<\/span><br><span>        &#125;<\/span><br><span>        <span>if<\/span> (preparedStatement != <span>null<\/span>) &#123;<\/span><br><span>            preparedStatement.close();<\/span><br><span>        &#125;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>run<\/span><span>(SourceContext&lt;User&gt; sourceContext)<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>try<\/span> &#123;<\/span><br><span>            ResultSet resultSet = preparedStatement.executeQuery();<\/span><br><span>            <span>while<\/span> (resultSet.next()) &#123;<\/span><br><span>                User user = <span>new<\/span> User( resultSet.getInt( <span>\"id\"<\/span> ),<\/span><br><span>                        resultSet.getString( <span>\"name\"<\/span> ).trim(),<\/span><br><span>                        resultSet.getString( <span>\"address\"<\/span> ).trim(),<\/span><br><span>                        resultSet.getInt( <span>\"sex\"<\/span> ) );<\/span><br><span>                sourceContext.collect( user );<\/span><br><span>            &#125;<\/span><br><span>        &#125; <span>catch<\/span> (Exception e) &#123;<\/span><br><span>            e.printStackTrace();<\/span><br><span>        &#125;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>cancel<\/span><span>()<\/span> <\/span>&#123;<\/span><br><span><\/span><br><span>    &#125;<\/span><br><span>&#125;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#flink-\u4e3b\u7a0b\u5e8f\u5f15\u5165source\uff0c\u6d4b\u8bd5\u6570\u636e\u8bfb\u53d6\" title=\"flink \u4e3b\u7a0b\u5e8f\u5f15\u5165source\uff0c\u6d4b\u8bd5\u6570\u636e\u8bfb\u53d6\"><\/a>flink \u4e3b\u7a0b\u5e8f\u5f15\u5165source\uff0c\u6d4b\u8bd5\u6570\u636e\u8bfb\u53d6<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>package<\/span> xin.studytime.java;<\/span><br><span><\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.datastream.DataStreamSource;<\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;<\/span><br><span><span>import<\/span> xin.studytime.java.model.User;<\/span><br><span><\/span><br><span><span>public<\/span> <span><span>class<\/span> <span>UserSourceFromMysql<\/span> <\/span>&#123;<\/span><br><span>    <span><span>public<\/span> <span>static<\/span> <span>void<\/span> <span>main<\/span><span>(String[] args)<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();<\/span><br><span><\/span><br><span>        DataStreamSource&lt;User&gt; userDataStreamSource = env.addSource( <span>new<\/span> xin.studytime.java.source.UserSourceFromMysql() );<\/span><br><span><\/span><br><span>        userDataStreamSource.print();<\/span><br><span><\/span><br><span>        env.execute();<\/span><br><span>    &#125;<\/span><br><span>&#125;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span>\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/bin\/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:58791,suspend=y,server=n -javaagent:\/Users\/baihe\/Library\/Caches\/JetBrains\/IntelliJIdea2020.1\/captureAgent\/debugger-agent.jar -Dfile.encoding=UTF-8 -classpath \/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/charsets.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/deploy.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/cldrdata.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/dnsns.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/jaccess.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/jfxrt.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/localedata.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/nashorn.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/sunec.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/sunjce_provider.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/sunpkcs11.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/ext\/zipfs.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/javaws.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/jce.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/jfr.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/jfxswt.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/jsse.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/management-agent.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/plugin.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/resources.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/jre\/lib\/rt.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/ant-javafx.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/dt.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/javafx-mx.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/jconsole.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/packager.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/sa-jdi.jar:\/Library\/Java\/JavaVirtualMachines\/jdk1.8.0_251.jdk\/Contents\/Home\/lib\/tools.jar:\/Users\/baihe\/Code\/javaCode\/flink-project\/target\/classes:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-library.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-xml_2.11-1.0.4.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-parser-combinators_2.11-1.0.4.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-actors-migration_2.11-1.1.0.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-actors-2.11.0.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-swing_2.11-1.0.2.jar:\/Users\/baihe\/Code\/tools\/scala-2.11.8\/lib\/scala-reflect.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-streaming-java_2.11\/1.9.0\/flink-streaming-java_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-core\/1.9.0\/flink-core-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-annotations\/1.9.0\/flink-annotations-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-metrics-core\/1.9.0\/flink-metrics-core-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-shaded-asm-6\/6.2.1-7.0\/flink-shaded-asm-6-6.2.1-7.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/commons\/commons-lang3\/3.3.2\/commons-lang3-3.3.2.jar:\/Users\/baihe\/.m2\/repository\/com\/esotericsoftware\/kryo\/kryo\/2.24.0\/kryo-2.24.0.jar:\/Users\/baihe\/.m2\/repository\/com\/esotericsoftware\/minlog\/minlog\/1.2\/minlog-1.2.jar:\/Users\/baihe\/.m2\/repository\/org\/objenesis\/objenesis\/2.1\/objenesis-2.1.jar:\/Users\/baihe\/.m2\/repository\/commons-collections\/commons-collections\/3.2.2\/commons-collections-3.2.2.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/commons\/commons-compress\/1.18\/commons-compress-1.18.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-runtime_2.11\/1.9.0\/flink-runtime_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-java\/1.9.0\/flink-java-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-queryable-state-client-java\/1.9.0\/flink-queryable-state-client-java-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-hadoop-fs\/1.9.0\/flink-hadoop-fs-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/commons-io\/commons-io\/2.4\/commons-io-2.4.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-shaded-netty\/4.1.32.Final-7.0\/flink-shaded-netty-4.1.32.Final-7.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-shaded-jackson\/2.9.8-7.0\/flink-shaded-jackson-2.9.8-7.0.jar:\/Users\/baihe\/.m2\/repository\/commons-cli\/commons-cli\/1.3.1\/commons-cli-1.3.1.jar:\/Users\/baihe\/.m2\/repository\/org\/javassist\/javassist\/3.19.0-GA\/javassist-3.19.0-GA.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/akka\/akka-actor_2.11\/2.5.21\/akka-actor_2.11-2.5.21.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/config\/1.3.3\/config-1.3.3.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/modules\/scala-java8-compat_2.11\/0.7.0\/scala-java8-compat_2.11-0.7.0.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/akka\/akka-stream_2.11\/2.5.21\/akka-stream_2.11-2.5.21.jar:\/Users\/baihe\/.m2\/repository\/org\/reactivestreams\/reactive-streams\/1.0.2\/reactive-streams-1.0.2.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/ssl-config-core_2.11\/0.3.7\/ssl-config-core_2.11-0.3.7.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/akka\/akka-protobuf_2.11\/2.5.21\/akka-protobuf_2.11-2.5.21.jar:\/Users\/baihe\/.m2\/repository\/com\/typesafe\/akka\/akka-slf4j_2.11\/2.5.21\/akka-slf4j_2.11-2.5.21.jar:\/Users\/baihe\/.m2\/repository\/org\/clapper\/grizzled-slf4j_2.11\/1.3.2\/grizzled-slf4j_2.11-1.3.2.jar:\/Users\/baihe\/.m2\/repository\/com\/github\/scopt\/scopt_2.11\/3.5.0\/scopt_2.11-3.5.0.jar:\/Users\/baihe\/.m2\/repository\/org\/xerial\/snappy\/snappy-java\/1.1.4\/snappy-java-1.1.4.jar:\/Users\/baihe\/.m2\/repository\/com\/twitter\/chill_2.11\/0.7.6\/chill_2.11-0.7.6.jar:\/Users\/baihe\/.m2\/repository\/com\/twitter\/chill-java\/0.7.6\/chill-java-0.7.6.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-clients_2.11\/1.9.0\/flink-clients_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-optimizer_2.11\/1.9.0\/flink-optimizer_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-shaded-guava\/18.0-7.0\/flink-shaded-guava-18.0-7.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/commons\/commons-math3\/3.5\/commons-math3-3.5.jar:\/Users\/baihe\/.m2\/repository\/org\/slf4j\/slf4j-api\/1.7.15\/slf4j-api-1.7.15.jar:\/Users\/baihe\/.m2\/repository\/com\/google\/code\/findbugs\/jsr305\/1.3.9\/jsr305-1.3.9.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/force-shading\/1.9.0\/force-shading-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-streaming-scala_2.11\/1.9.0\/flink-streaming-scala_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/apache\/flink\/flink-scala_2.11\/1.9.0\/flink-scala_2.11-1.9.0.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/scala-reflect\/2.11.12\/scala-reflect-2.11.12.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/scala-library\/2.11.12\/scala-library-2.11.12.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/scala-compiler\/2.11.12\/scala-compiler-2.11.12.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/modules\/scala-xml_2.11\/1.0.5\/scala-xml_2.11-1.0.5.jar:\/Users\/baihe\/.m2\/repository\/org\/scala-lang\/modules\/scala-parser-combinators_2.11\/1.0.4\/scala-parser-combinators_2.11-1.0.4.jar:\/Users\/baihe\/.m2\/repository\/org\/slf4j\/slf4j-nop\/1.7.2\/slf4j-nop-1.7.2.jar:\/Users\/baihe\/.m2\/repository\/mysql\/mysql-connector-java\/5.1.35\/mysql-connector-java-5.1.35.jar:\/Applications\/IntelliJ IDEA.app\/Contents\/lib\/idea_rt.jar xin.studytime.java.UserSourceFromMysql<\/span><br><span>Connected to the target VM, address: '127.0.0.1:58791', transport: 'socket'<\/span><br><span><span>6&gt;<\/span><span> User&#123;id=2, name=<span>'xiaoqiang'<\/span>, address=<span>'GuangZhou'<\/span>, sex=2&#125;<\/span><\/span><br><span><span>5&gt;<\/span><span> User&#123;id=1, name=<span>'xiaoming'<\/span>, address=<span>'Beijing'<\/span>, sex=1&#125;<\/span><\/span><br><span><span>2&gt;<\/span><span> User&#123;id=6, name=<span>'lisi'<\/span>, address=<span>'Hunan'<\/span>, sex=1&#125;<\/span><\/span><br><span><span>1&gt;<\/span><span> User&#123;id=5, name=<span>'zhangsan'<\/span>, address=<span>'Beijing'<\/span>, sex=1&#125;<\/span><\/span><br><span><span>7&gt;<\/span><span> User&#123;id=3, name=<span>'xiaohua'<\/span>, address=<span>'Hubei'<\/span>, sex=0&#125;<\/span><\/span><br><span><span>8&gt;<\/span><span> User&#123;id=4, name=<span>'xiaoli'<\/span>, address=<span>'GuangZhou'<\/span>, sex=1&#125;<\/span><\/span><br><span>Disconnected from the target VM, address: '127.0.0.1:58791', transport: 'socket'<\/span><br><span><\/span><br><span>Process finished with exit code 0<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#\u5b9e\u73b0flink-\u81ea\u5b9a\u4e49mysql-sink\" title=\"\u5b9e\u73b0flink \u81ea\u5b9a\u4e49mysql sink\"><\/a>\u5b9e\u73b0flink \u81ea\u5b9a\u4e49mysql sink<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><span>18<\/span><br><span>19<\/span><br><span>20<\/span><br><span>21<\/span><br><span>22<\/span><br><span>23<\/span><br><span>24<\/span><br><span>25<\/span><br><span>26<\/span><br><span>27<\/span><br><span>28<\/span><br><span>29<\/span><br><span>30<\/span><br><span>31<\/span><br><span>32<\/span><br><span>33<\/span><br><span>34<\/span><br><span>35<\/span><br><span>36<\/span><br><span>37<\/span><br><span>38<\/span><br><span>39<\/span><br><span>40<\/span><br><span>41<\/span><br><span>42<\/span><br><span>43<\/span><br><span>44<\/span><br><span>45<\/span><br><span>46<\/span><br><span>47<\/span><br><span>48<\/span><br><span>49<\/span><br><span>50<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>package<\/span> xin.studytime.java.sink;<\/span><br><span><\/span><br><span><span>import<\/span> org.apache.flink.configuration.Configuration;<\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.functions.sink.RichSinkFunction;<\/span><br><span><span>import<\/span> xin.studytime.java.model.User;<\/span><br><span><\/span><br><span><span>import<\/span> java.sql.Connection;<\/span><br><span><span>import<\/span> java.sql.DriverManager;<\/span><br><span><span>import<\/span> java.sql.PreparedStatement;<\/span><br><span><\/span><br><span><span>public<\/span> <span><span>class<\/span> <span>UserSinkToMysql<\/span> <span>extends<\/span> <span>RichSinkFunction<\/span>&lt;<span>User<\/span>&gt; <\/span>&#123;<\/span><br><span>    <span>private<\/span> Connection connection = <span>null<\/span>;<\/span><br><span>    <span>private<\/span> PreparedStatement preparedStatement = <span>null<\/span>;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>open<\/span><span>(Configuration parameters)<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>super<\/span>.open( parameters );<\/span><br><span>        String driver = <span>\"com.mysql.jdbc.Driver\"<\/span>;<\/span><br><span>        String url = <span>\"jdbc:mysql:\/\/node02:3306\/flink\"<\/span>;<\/span><br><span>        String username = <span>\"root\"<\/span>;<\/span><br><span>        String password = <span>\"!Qaz123456\"<\/span>;<\/span><br><span>        Class.forName( driver );<\/span><br><span>        connection = DriverManager.getConnection( url, username, password );<\/span><br><span>        String sql = <span>\"insert into user(name,address,sex)values(?,?,?);\"<\/span>;<\/span><br><span>        preparedStatement = connection.prepareStatement( sql );<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>close<\/span><span>()<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>super<\/span>.close();<\/span><br><span>        <span>if<\/span> (connection != <span>null<\/span>) &#123;<\/span><br><span>            connection.close();<\/span><br><span>        &#125;<\/span><br><span>        <span>if<\/span> (preparedStatement != <span>null<\/span>) &#123;<\/span><br><span>            preparedStatement.close();<\/span><br><span>        &#125;<\/span><br><span>    &#125;<\/span><br><span><\/span><br><span>    <span>@Override<\/span><\/span><br><span>    <span><span>public<\/span> <span>void<\/span> <span>invoke<\/span><span>(User value, Context context)<\/span> <span>throws<\/span> Exception <\/span>&#123;<\/span><br><span>        <span>try<\/span> &#123;<\/span><br><span>            preparedStatement.setString( <span>1<\/span>, value.getName() );<\/span><br><span>            preparedStatement.setString( <span>2<\/span>, value.getAddress() );<\/span><br><span>            preparedStatement.setInt( <span>3<\/span>, value.getSex() );<\/span><br><span>            preparedStatement.executeUpdate();<\/span><br><span>        &#125; <span>catch<\/span> (Exception e) &#123;<\/span><br><span>            e.printStackTrace();<\/span><br><span>        &#125;<\/span><br><span>    &#125;<\/span><br><span>&#125;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<h2><a href=\"https:\/\/www.studytime.xin\/article\/#flink-\u4e3b\u7a0b\u5e8f\u5f15\u5165sink\uff0c\u6d4b\u8bd5\u6570\u636e\u5199\u5165mysql\" title=\"flink \u4e3b\u7a0b\u5e8f\u5f15\u5165sink\uff0c\u6d4b\u8bd5\u6570\u636e\u5199\u5165mysql\"><\/a>flink \u4e3b\u7a0b\u5e8f\u5f15\u5165sink\uff0c\u6d4b\u8bd5\u6570\u636e\u5199\u5165mysql<\/h2>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><span>11<\/span><br><span>12<\/span><br><span>13<\/span><br><span>14<\/span><br><span>15<\/span><br><span>16<\/span><br><span>17<\/span><br><span>18<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span><span>package<\/span> xin.studytime.java;<\/span><br><span><\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.datastream.DataStream;<\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.datastream.DataStreamSource;<\/span><br><span><span>import<\/span> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;<\/span><br><span><span>import<\/span> xin.studytime.java.model.User;<\/span><br><span><\/span><br><span><span>public<\/span> <span><span>class<\/span> <span>UserSinkToMysql<\/span> <\/span>&#123;<\/span><br><span>    <span><span>public<\/span> <span>static<\/span> <span>void<\/span> <span>main<\/span><span>(String[] args)<\/span> <span>throws<\/span> Exception<\/span>&#123;<\/span><br><span>        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();<\/span><br><span>        DataStream&lt;User&gt; users = env.fromElements( <span>new<\/span> User( <span>\"zhangsan\"<\/span>, <span>\"Beijing\"<\/span>, <span>1<\/span> ), <span>new<\/span> User( <span>\"lisi\"<\/span>, <span>\"Hunan\"<\/span>, <span>1<\/span> ) );<\/span><br><span><\/span><br><span>        users.addSink( <span>new<\/span> xin.studytime.java.sink.UserSinkToMysql() );<\/span><br><span><\/span><br><span><\/span><br><span>        env.execute();<\/span><br><span>    &#125;<\/span><br><span>&#125;<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n<figure>\n<table>\n<tr>\n<td>\n<pre><span>1<\/span><br><span>2<\/span><br><span>3<\/span><br><span>4<\/span><br><span>5<\/span><br><span>6<\/span><br><span>7<\/span><br><span>8<\/span><br><span>9<\/span><br><span>10<\/span><br><\/pre>\n<\/td>\n<td>\n<pre><span>+----+-----------+-----------+-----+---------------------+---------------------+<\/span><br><span>| id | name      | address   | sex | create_time         | update_time         |<\/span><br><span>+----+-----------+-----------+-----+---------------------+---------------------+<\/span><br><span>| 1  | xiaoming  | Beijing   | 1   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 2  | xiaoqiang | GuangZhou | 2   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 3  | xiaohua   | Hubei     | 0   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 4  | xiaoli    | GuangZhou | 1   | 2020-08-30 15:27:05 | 2020-08-30 15:27:05 |<\/span><br><span>| 5  | zhangsan  | Beijing   | 1   | 2020-08-30 16:11:28 | 2020-08-30 16:11:28 |<\/span><br><span>| 6  | lisi      | Hunan     | 1   | 2020-08-30 16:11:28 | 2020-08-30 16:11:28 |<\/span><br><span>+----+-----------+-----------+-----+---------------------+---------------------+<\/span><br><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u6570\u636e\u5e93\u8868\u51c6\u5907 1234567891&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/148048"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=148048"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/148048\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=148048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=148048"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=148048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}