MaxCompute表设计最佳实践
产生大量小文件的操作
小文件会影响存储和计算的性能。表设计时应该避免产生大量小文件的操作。产生大量小文件的操作如下:
- 使用MaxCompute Tunnel SDK频繁上传数据(每次Commit会产生一个文件)。
- 使用MaxCompute Tunnel SDK上传数据时,创建Session缺不上传数据,直接Commit。
- 使用MaxCompute执行Tunnel上传时,将本地大文件切分过小。
- 通过DataHub执行数据归档,开启的Shard数过多。
- 通过DataWorks等数据开发工具增量频繁插入MaxCompute表。
- 使用DTS同步数据到MaxCompute时,增量表每次插入的数据条数较少。
- 源数据采集客户端太多,每次提交都会在同分区产生一个独立文件。
- SLS触发FunctionCompute持续高频地向MaxCompute传入文件。
根据数据划分项目空间
如果多个应用需要共享数据,推荐使用同一个项目空间。
如果多个应用需要的数据是无关的,推荐使用不同的项目空间。
维度表的设计
-
维度表一般指描述属性的表。
-
维度表一般不需要设置分区。
-
维度表单表不推荐超过1000万。
-
维度表数据不应该被大量更新。
-
可以使用MAP JOIN语句优化维度表和其他表的JOIN操作。
拉链表的设计
需求:
- 数据量较大