<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>李阳良的博客</title><description>技术、产品和长期记录。</description><link>https://blog.liyangliang.com/</link><item><title>如何高效全表扫描 Apache Phoenix 的表</title><link>https://blog.liyangliang.com/posts/scan-phoenix-table/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/scan-phoenix-table/</guid><description>如何高效全表扫描 Apache Phoenix 的表</description><pubDate>Sun, 17 Jan 2021 10:15:40 GMT</pubDate><category>bigdata</category><category>database</category><category>phoenix</category><category>hbase</category></item><item><title>记一次 ClickHouse 数据迁移</title><link>https://blog.liyangliang.com/posts/clickhouse-migration/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/clickhouse-migration/</guid><description>记一次 ClickHouse 数据迁移</description><pubDate>Fri, 21 Aug 2020 05:48:05 GMT</pubDate><category>bigdata</category><category>database</category><category>clickhouse</category></item><item><title>AWS S3 Bucket 指定权限</title><link>https://blog.liyangliang.com/posts/aws-s3-bucket-policy/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/aws-s3-bucket-policy/</guid><description>AWS S3 Bucket 指定权限</description><pubDate>Wed, 23 Oct 2019 02:53:00 GMT</pubDate><category>aws</category><category>s3</category></item><item><title>Impala 添加和使用 UDF</title><link>https://blog.liyangliang.com/posts/impala-udf/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/impala-udf/</guid><description>Impala 添加和使用 UDF</description><pubDate>Fri, 11 Oct 2019 06:09:28 GMT</pubDate><category>bigdata</category><category>database</category></item><item><title>HDFS 异构存储调研</title><link>https://blog.liyangliang.com/posts/hdfs-heterogeneous-storage/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/hdfs-heterogeneous-storage/</guid><description>HDFS 异构存储调研</description><pubDate>Tue, 07 May 2019 07:47:04 GMT</pubDate><category>bigdata</category><category>hdfs</category><category>hadoop</category></item><item><title>一个轻量级通用的数据同步方案</title><link>https://blog.liyangliang.com/posts/lightweight-data-sync-solution/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/lightweight-data-sync-solution/</guid><description>一个轻量级通用的数据同步方案</description><pubDate>Sat, 27 Apr 2019 06:02:16 GMT</pubDate><category>bigdata</category><category>ETL</category><category>database</category></item><item><title>聊聊幂等</title><link>https://blog.liyangliang.com/posts/idempotence/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/idempotence/</guid><description>聊聊幂等</description><pubDate>Sun, 17 Mar 2019 15:38:00 GMT</pubDate><category>HTTP</category><category>ETL</category></item><item><title>字节跳动（今日头条） 2018 校招后端第二批算法题</title><link>https://blog.liyangliang.com/posts/2018-holiday/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/2018-holiday/</guid><description>字节跳动（今日头条） 2018 校招后端第二批算法题</description><pubDate>Sun, 10 Mar 2019 14:24:51 GMT</pubDate><category>algorithm</category><category>go</category></item><item><title> Designing Data-Intensive Applications 读书笔记（1） —— 数据编码</title><link>https://blog.liyangliang.com/posts/data-encoding/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/data-encoding/</guid><description> Designing Data-Intensive Applications 读书笔记（1） —— 数据编码</description><pubDate>Sat, 02 Mar 2019 08:40:45 GMT</pubDate><category>devops</category><category>notes</category></item><item><title>Python 日期和时间处理</title><link>https://blog.liyangliang.com/posts/python-date-time/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/python-date-time/</guid><description>Python 日期和时间处理</description><pubDate>Sat, 02 Jun 2018 08:03:26 GMT</pubDate><category>time</category><category>python</category></item><item><title>CentOS 7 FirewallD</title><link>https://blog.liyangliang.com/posts/centos7-firewalld/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/centos7-firewalld/</guid><description>CentOS 7 FirewallD</description><pubDate>Sat, 02 Jun 2018 07:11:15 GMT</pubDate><category>hadoop</category><category>security</category><category>firewall</category></item><item><title>Redshift Snippets</title><link>https://blog.liyangliang.com/posts/redshift-snippets/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/redshift-snippets/</guid><description>Redshift Snippets</description><pubDate>Sun, 04 Feb 2018 11:36:03 GMT</pubDate><category>sql</category><category>redshift</category><category>aws</category></item><item><title>Pyenv 使用笔记</title><link>https://blog.liyangliang.com/posts/pyenv-notes/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/pyenv-notes/</guid><description>Pyenv 使用笔记</description><pubDate>Tue, 20 Jun 2017 07:09:27 GMT</pubDate><category>python</category><category>devops</category></item><item><title>Centos 7 安装配置 Rundeck</title><link>https://blog.liyangliang.com/posts/centos7-install-rundeck/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/centos7-install-rundeck/</guid><description>Centos 7 安装配置 Rundeck</description><pubDate>Tue, 20 Jun 2017 06:59:27 GMT</pubDate><category>devops</category></item><item><title>Flask 应用国际化</title><link>https://blog.liyangliang.com/posts/flask-i18n/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/flask-i18n/</guid><description>Flask 应用国际化</description><pubDate>Wed, 10 May 2017 09:48:17 GMT</pubDate><category>python</category><category>flask</category></item><item><title>EC2 挂载 EBS</title><link>https://blog.liyangliang.com/posts/mount-ebs-to-ec2/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/mount-ebs-to-ec2/</guid><description>EC2 挂载 EBS</description><pubDate>Wed, 10 May 2017 09:41:54 GMT</pubDate><category>aws</category><category>ec2</category></item><item><title>MySQL 数据导入到 Redshift</title><link>https://blog.liyangliang.com/posts/transfer-data-from-mysql-to-redshift/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/transfer-data-from-mysql-to-redshift/</guid><description>MySQL 数据导入到 Redshift</description><pubDate>Wed, 10 May 2017 09:36:29 GMT</pubDate><category>aws</category><category>redshift</category></item><item><title>在 AWS 上安装 Tableau Server</title><link>https://blog.liyangliang.com/posts/install-tableau-server-on-aws-ec2/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/install-tableau-server-on-aws-ec2/</guid><description>在 AWS 上安装 Tableau Server</description><pubDate>Wed, 10 May 2017 09:23:55 GMT</pubDate><category>aws</category><category>tableau</category></item><item><title>Python 多进程导入数据到 MySQL</title><link>https://blog.liyangliang.com/posts/load-data-into-mysql-using-python-multiprocessing/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/load-data-into-mysql-using-python-multiprocessing/</guid><description>Python 多进程导入数据到 MySQL</description><pubDate>Sat, 25 Feb 2017 08:16:14 GMT</pubDate><category>python</category><category>mysql</category><category>multiprocessing</category></item><item><title>在 Flask 项目的 celery 中使用 gevent</title><link>https://blog.liyangliang.com/posts/using-celery-with-flask-and-gevent/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/using-celery-with-flask-and-gevent/</guid><description>在 Flask 项目的 celery 中使用 gevent</description><pubDate>Tue, 17 May 2016 08:42:37 GMT</pubDate><category>python</category><category>celery</category><category>flask</category><category>gevent</category></item><item><title>MongoDB Replica Set 重新同步</title><link>https://blog.liyangliang.com/posts/mongodb-replica-set-resync/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/mongodb-replica-set-resync/</guid><description>MongoDB Replica Set 重新同步</description><pubDate>Fri, 15 Apr 2016 03:47:00 GMT</pubDate><category>mongodb</category><category>aws</category><category>db</category></item><item><title>Nginx AWS ELB 域名解析</title><link>https://blog.liyangliang.com/posts/nginx-aws-elb-name-resolution/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/nginx-aws-elb-name-resolution/</guid><description>Nginx AWS ELB 域名解析</description><pubDate>Thu, 14 Apr 2016 07:33:52 GMT</pubDate><category>nginx</category><category>aws</category></item><item><title>zhihu-go 源码解析：用 goquery 解析 HTML</title><link>https://blog.liyangliang.com/posts/zhihu-go-insight-parsing-html-with-goquery/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/zhihu-go-insight-parsing-html-with-goquery/</guid><description>zhihu-go 源码解析：用 goquery 解析 HTML</description><pubDate>Wed, 30 Mar 2016 15:02:51 GMT</pubDate><category>go</category><category>zhihu</category><category>html</category></item><item><title>zhihu-go: 知乎非官方 API库 with Go</title><link>https://blog.liyangliang.com/posts/zhihu-go/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/zhihu-go/</guid><description>zhihu-go: 知乎非官方 API库 with Go</description><pubDate>Mon, 28 Mar 2016 15:35:58 GMT</pubDate><category>go</category><category>zhihu</category></item><item><title>极光推送 Go SDK</title><link>https://blog.liyangliang.com/posts/jpush-api-go-client/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/jpush-api-go-client/</guid><description>极光推送 Go SDK</description><pubDate>Sat, 28 Nov 2015 14:32:35 GMT</pubDate><category>go</category><category>jpush</category></item><item><title>在 Flask 项目中使用 Celery</title><link>https://blog.liyangliang.com/posts/using-celery-with-flask/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/using-celery-with-flask/</guid><description>在 Flask 项目中使用 Celery</description><pubDate>Sat, 14 Nov 2015 08:57:03 GMT</pubDate><category>python</category><category>celery</category><category>flask</category></item><item><title>Celery 使用简介</title><link>https://blog.liyangliang.com/posts/a-introduction-to-celery/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/a-introduction-to-celery/</guid><description>Celery 使用简介</description><pubDate>Sat, 14 Nov 2015 08:44:34 GMT</pubDate><category>python</category><category>celery</category></item><item><title>Tornado 和 Flask 应用缓存响应结果</title><link>https://blog.liyangliang.com/posts/cache-response-in-tornado-and-flask/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/cache-response-in-tornado-and-flask/</guid><description>Tornado 和 Flask 应用缓存响应结果</description><pubDate>Thu, 05 Nov 2015 08:52:12 GMT</pubDate><category>python</category><category>flask</category><category>tornado</category><category>cache</category></item><item><title>用 WTForms 和装饰器做表单校验</title><link>https://blog.liyangliang.com/posts/using-wtforms-and-decorator-to-validate-form-in-flask/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/using-wtforms-and-decorator-to-validate-form-in-flask/</guid><description>用 WTForms 和装饰器做表单校验</description><pubDate>Fri, 30 Oct 2015 17:46:10 GMT</pubDate><category>python</category><category>flask</category><category>decorator</category><category>wtforms</category></item><item><title>Python 编码规范</title><link>https://blog.liyangliang.com/posts/simple-python-style-guide/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/simple-python-style-guide/</guid><description>Python 编码规范</description><pubDate>Mon, 10 Aug 2015 14:36:42 GMT</pubDate><category>python</category></item><item><title>用 Fabric 实现自动化部署</title><link>https://blog.liyangliang.com/posts/deploy-applications-using-fabric/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/deploy-applications-using-fabric/</guid><description>用 Fabric 实现自动化部署</description><pubDate>Fri, 12 Jun 2015 06:00:13 GMT</pubDate><category>python</category><category>fabric</category><category>deployment</category></item><item><title>使用 supervisor 管理进程</title><link>https://blog.liyangliang.com/posts/using-supervisor/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/using-supervisor/</guid><description>使用 supervisor 管理进程</description><pubDate>Tue, 09 Jun 2015 09:30:20 GMT</pubDate><category>progress</category><category>tools</category></item><item><title>使用 shadowsocks 实现科学上网</title><link>https://blog.liyangliang.com/posts/bypass-gfw-with-shadowsocks/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/bypass-gfw-with-shadowsocks/</guid><description>使用 shadowsocks 实现科学上网</description><pubDate>Sun, 24 May 2015 14:27:49 GMT</pubDate><category>shadowsocks</category><category>socks5</category><category>linode</category><category>gfw</category><category>vpn</category></item><item><title>重用 SSH 连接</title><link>https://blog.liyangliang.com/posts/reuse-ssh-connection/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/reuse-ssh-connection/</guid><description>重用 SSH 连接</description><pubDate>Sun, 15 Mar 2015 05:31:49 GMT</pubDate><category>ssh</category><category>linux</category></item><item><title>Golang 并发安全的 map 实现</title><link>https://blog.liyangliang.com/posts/concurrent-safe-map-in-golang/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/concurrent-safe-map-in-golang/</guid><description>Golang 并发安全的 map 实现</description><pubDate>Mon, 12 Jan 2015 07:01:15 GMT</pubDate><category>go</category><category>golang</category><category>map</category><category>concurrent-safe</category><category>hash</category></item><item><title>Golang 的 defer 语句</title><link>https://blog.liyangliang.com/posts/defer-in-golang/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/defer-in-golang/</guid><description>Golang 的 defer 语句</description><pubDate>Thu, 18 Dec 2014 07:35:38 GMT</pubDate><category>go</category><category>golang</category><category>defer</category></item><item><title>不要用 fmt.Sprintf 做类型转换</title><link>https://blog.liyangliang.com/posts/donnot-use-fmt-sprintf-for-type-conversion/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/donnot-use-fmt-sprintf-for-type-conversion/</guid><description>不要用 fmt.Sprintf 做类型转换</description><pubDate>Wed, 11 Jun 2014 07:50:41 GMT</pubDate><category>go</category><category>golang</category><category>fmt</category><category>type conversion</category></item><item><title>Golang 排序</title><link>https://blog.liyangliang.com/posts/sort-in-golang/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/sort-in-golang/</guid><description>Golang 排序</description><pubDate>Tue, 03 Jun 2014 08:50:50 GMT</pubDate><category>go</category><category>golang</category><category>sort</category><category>interface</category></item><item><title>MySQL参数：innodb_flush_log_at_trx_commit 和 sync_binlog</title><link>https://blog.liyangliang.com/posts/innodb_flush_log_at_trx_commit-and-sync_binlog/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/innodb_flush_log_at_trx_commit-and-sync_binlog/</guid><description>MySQL参数：innodb_flush_log_at_trx_commit 和 sync_binlog</description><pubDate>Sun, 02 Mar 2014 08:16:04 GMT</pubDate><category>mysql</category><category>innodb</category><category>binlog</category></item><item><title>Flask 路由做范围限制</title><link>https://blog.liyangliang.com/posts/range-validation-in-flask-routing/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/range-validation-in-flask-routing/</guid><description>Flask 路由做范围限制</description><pubDate>Wed, 26 Feb 2014 15:15:42 GMT</pubDate><category>python</category><category>flask</category><category>web</category></item><item><title>less 命令支持语法高亮和行号</title><link>https://blog.liyangliang.com/posts/less-with-syntax-highlight-and-line-number/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/less-with-syntax-highlight-and-line-number/</guid><description>less 命令支持语法高亮和行号</description><pubDate>Sat, 02 Nov 2013 16:30:00 GMT</pubDate><category>shell</category><category>linux</category><category>command</category></item><item><title>【翻译】理解 Python 装饰器</title><link>https://blog.liyangliang.com/posts/understand-python-decorators/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/understand-python-decorators/</guid><description>【翻译】理解 Python 装饰器</description><pubDate>Tue, 12 Mar 2013 16:26:58 GMT</pubDate><category>python</category><category>decorator</category><category>stackoverflow</category><category>translation</category></item><item><title>用 openpyxl 处理 xlsx 文件</title><link>https://blog.liyangliang.com/posts/using-openpyxl-to-read-and-write-xlsx-files/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/using-openpyxl-to-read-and-write-xlsx-files/</guid><description>用 openpyxl 处理 xlsx 文件</description><pubDate>Mon, 25 Feb 2013 08:39:55 GMT</pubDate><category>python</category><category>xlsx</category><category>openpyxl</category></item><item><title>Python字典切片</title><link>https://blog.liyangliang.com/posts/python-dict-slice/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/python-dict-slice/</guid><description>Python字典切片</description><pubDate>Sat, 01 Dec 2012 07:09:08 GMT</pubDate><category>python</category><category>dict</category></item><item><title>Python 时间戳和日期相互转换</title><link>https://blog.liyangliang.com/posts/python-timestamp-to-timestr/</link><guid isPermaLink="true">https://blog.liyangliang.com/posts/python-timestamp-to-timestr/</guid><description>Python 时间戳和日期相互转换</description><pubDate>Sun, 21 Oct 2012 10:53:51 GMT</pubDate><category>python</category><category>time</category></item></channel></rss>