gpt4 book ai didi

apache-spark - 如何将数据从 Cassandra 导出到 BigQuery

转载 作者:行者123 更新时间:2023-12-04 17:07:12 25 4
gpt4 key购买 nike

我让 Apache Cassandra 在 Google Cloud 中处理 4 个虚拟机。我认为它太贵了,想将所有数据导出到 BigQuery。 Cassandra 中大约有 2 TB(60 毫安行)。任何建议我该怎么做?

提前致谢。

最佳答案

我们决定将 5 年的数据从 Apache Cassandra 转移到 Google BigQuery。问题不仅仅是传输数据或导出/导入,问题在于非常古老的 Cassandra!

经过广泛的研究,我们计划迁移将数据导出到 csv,然后上传到 Google Cloud Storage 以导入 Big Query。

痛苦在于 Cassandra 1.1 处理大量记录的方式!没有分页,所以在某些时候你会用完一些东西!如果没记错的话,分页是从 2.2 版开始引入的。

在我升级到最新版本 3.4 的所有尝试都失败后,我决定尝试其他版本,幸运的是 2.2 版成功了!通过工作,我的意思是我能够按照升级步骤结束并且可以访问数据。

因为我无法获得任何对直接升级的支持,而且我尝试简单地升级到 2.2 也失败了。所以我只好先升级到2.0,然后再升级到2.2。因为这是一项极其微妙的任务,我宁愿将您转发到官方网站,然后再给您总结。请确保您查看 docs.datastax.com 并按照他们的说明进行操作。

要进行概述,您将执行以下步骤:

  • 确保所有节点都稳定并且没有死节点。
  • 进行备份(您的 SSTable、配置等)
  • 在继续下一步之前成功升级您的 SSTable 非常重要。只需使用

    nodetool upgradesstables
  • 使用 Drain 节点

    nodetool排水
  • 然后只需停止节点
  • 安装新版本(我将在本文档后面解释全新安装)
  • 只需像旧的 Cassandra 一样进行配置,启动它并为每个节点再次升级稳定器(如步骤 3 中所述)。
    安装 Cassandra:

  • 编辑/etc/yum.repos.d/datastax.repo
    [datastax]
    name = DataStax Repo for Apache Cassandra
    baseurl = https://rpm.datastax.com/community
    enabled = 1
    gpgcheck = 0

    然后安装并启动服务:
    yum install dsc20
    service cassandra start

    升级到 Cassandra 2+ 后,您可以将数据导出到 csv,而不会出现分页或崩溃问题。

    仅用于记录,获取有关数据结构的必要信息的一些命令如下:
    cqlsh -u username -p password
    describe tables;
    describe table abcd;
    describe schema;

    一旦我们知道我们想要导出的表,我们只需将它们与键空间一起使用。首先将所有命令添加到一个文件中以创建批处理。
    vi commands.list

    例如导出一个表的示例命令:
    COPY keyspace.tablename TO '/backup/export.csv';

    最后运行文件中的命令:
    cqlsh -u username -p password -f /backup/commands.list

    所以到现在为止,您已经将表导出到 csv 文件。您现在需要做的就是将文件上传到 Google Cloud Storage:
    gsutil rsync /backup gs://bucket

    稍后您可以使用 Google API 将 csv 文件导入到 Google BigQuery。您可以在 cloud.google.com 中查看 Google 文档

    关于apache-spark - 如何将数据从 Cassandra 导出到 BigQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46814323/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com