如何使用气流在 cassandra table 中插入记录?
How to insert record in cassandra table using airflow?
我已经在 docker 中安装了 Cassandra 以及 airflow。
我想使用气流在 Cassandra table 中插入数据。
就像airflow有MySqlOperator在SQLtable中安装数据一样,有没有什么运算符或方法可以将记录插入Cassandratable.
我只找到了这两个运算符:
来自 airflow.providers.apache.cassandra.sensors.record 导入 CassandraRecordSensor
来自 airflow.providers.apache.cassandra.sensors.table 导入 CassandraTableSensor
但是这些运算符只是为了检查table或者记录在cassandra中的存在。
那么,如何使用气流任务插入或说与 Cassandra 交互?
文档显示确实没有实现“写入”操作:
https://airflow.apache.org/docs/apache-airflow-providers-apache-cassandra/stable/operators.html
但是如果您没有现成的运算符,Apache Airflow 确实很容易扩展。
如果您知道自己的 Python 方式,则需要扩展 Cassandra Hook 并实现自定义运算符(并可能在您这样做时将其贡献回社区)。这是最好的,因为我猜你将能够使用已经存在的 cassandra 库和身份验证。
或者您可以使用 BashOperator 来执行 运行 CQL 命令(我相信这是 cassandra 使用的默认客户端)。例如,如果您有 CSV 文件,您可以使用 CQL 中的 COPY 命令导入它。
https://docs.datastax.com/en/cql-oss/3.x/cql/cql_reference/cqlshCopy.html
然后您必须在来自连接的身份验证信息之间建立一些链接并将其传递给 BashOperator,或者可能提供您自己的方式来使用 Cassandra 进行身份验证。
我已经在 docker 中安装了 Cassandra 以及 airflow。
我想使用气流在 Cassandra table 中插入数据。
就像airflow有MySqlOperator在SQLtable中安装数据一样,有没有什么运算符或方法可以将记录插入Cassandratable.
我只找到了这两个运算符: 来自 airflow.providers.apache.cassandra.sensors.record 导入 CassandraRecordSensor 来自 airflow.providers.apache.cassandra.sensors.table 导入 CassandraTableSensor
但是这些运算符只是为了检查table或者记录在cassandra中的存在。
那么,如何使用气流任务插入或说与 Cassandra 交互?
文档显示确实没有实现“写入”操作:
https://airflow.apache.org/docs/apache-airflow-providers-apache-cassandra/stable/operators.html
但是如果您没有现成的运算符,Apache Airflow 确实很容易扩展。
如果您知道自己的 Python 方式,则需要扩展 Cassandra Hook 并实现自定义运算符(并可能在您这样做时将其贡献回社区)。这是最好的,因为我猜你将能够使用已经存在的 cassandra 库和身份验证。
或者您可以使用 BashOperator 来执行 运行 CQL 命令(我相信这是 cassandra 使用的默认客户端)。例如,如果您有 CSV 文件,您可以使用 CQL 中的 COPY 命令导入它。
https://docs.datastax.com/en/cql-oss/3.x/cql/cql_reference/cqlshCopy.html
然后您必须在来自连接的身份验证信息之间建立一些链接并将其传递给 BashOperator,或者可能提供您自己的方式来使用 Cassandra 进行身份验证。