我只想尝试做些简单的聚合统计(两张mysql表),一张2万一张200万,为什么写入到es直接索引卡死

INSERT INTO org_statistics SELECT o.id,o.org_kind,o.name,o.parent_id, count(a.id) AS count_address FROM org o LEFT JOIN address a ON o.id = a.grid_org_id group by o.id,o.org_kind,o.name,o.parent_id

展开
收起
爱喝咖啡嘿 2023-01-03 15:21:02 236 分享 版权
阿里云 AI 助理回答

您的SQL语句看起来是在尝试将一个查询结果插入到名为org_statistics的表中。这个查询是从org表中选择记录,并通过LEFT JOIN与address表关联,以计算每个组织(org)下的地址数量。这里是对这个SQL操作的一个大致解释:

  • INSERT INTO org_statistics: 表示您想把查询结果插入到org_statistics表中。

  • SELECT o.id, o.org_kind, o.name, o.parent_id, count(a.id) AS count_address: 这部分定义了您想从两个表中选取哪些字段以及如何计算新字段。具体来说:

    • o.id, o.org_kind, o.name, o.parent_id: 分别选取org表中的ID、组织类型、名称和父级ID。
    • count(a.id) AS count_address: 计算与每个org记录关联的address表中的地址记录数,并将此计数命名为count_address
  • FROM org o LEFT JOIN address a ON o.id = a.grid_org_id: 这是JOIN子句,它指定了org表(别名o)与address表(别名a)之间的连接条件。LEFT JOIN确保了即使某个组织没有对应的地址记录,该组织的信息也会被包含在结果中。

  • GROUP BY o.id, o.org_kind, o.name, o.parent_id: 这个子句用于根据所选的列对结果进行分组,确保count(a.id)是针对每个唯一的组织ID、组织类型、名称和父级ID组合来计算的。

如果您正在使用阿里云MaxCompute(原ODPS)或者AnalyticDB等大数据分析服务,这条SQL语句应该是适用的,但请确保以下几个点: 1. 表是否存在:确认orgaddress表以及目标表org_statistics在您的数据库或项目空间中已存在。 2. 列数据类型匹配:检查org_statistics表的列定义是否与SELECT语句中指定的数据类型相匹配。 3. 权限验证:确保执行此操作的用户具有向org_statistics表写入数据的权限。 4. 资源评估:如果涉及大量数据,考虑此操作可能对系统资源的影响,必要时优化查询或安排在低峰时段执行。

如果有任何关于阿里云产品使用上的具体问题,或者需要进一步的技术支持,请随时告知。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理