将大型数据框批量加载到 Astra DB
Bulk Loading large dataframe into Astra DB
我正在尝试将我的数据帧加载到 AstraDB 中,但它需要很长时间才能加载。我想知道是否有更快的方法通过 python 来完成?
import cassandra
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
import pandas as pd
cloud_config= {
'secure_connect_bundle': 'secure-connect-capstone-project.zip'
}
auth_provider = PlainTextAuthProvider(user,pass)
cluster = Cluster(cloud=cloud_config, auth_provider=auth_provider)
#connect to keyspace_name
session = cluster.connect('iac689')
query = """insert into data_2 (truck_id, active, reading_id, start_mileage, start_time, truck_name, type)
values (%s,%s,%s,%s,%s,%s,%s)"""
for i in df.values:
session.execute(query, [i[0],i[1],i[2],i[3],i[4],i[5],i[6]])
如果您确实需要通过 Python 执行此操作,则可以通过以下方式加速代码:
- 使用 prepared queries - 在您的查询字符串上调用
session.prepare
,并在 session.execute
. 中使用它
- 使用异步 API (
execute_async
) 而不是同步 (execute
)。但是您需要跟踪您有多少 in-flight 个查询等,以避免出错。
真的,我建议不要 re-invent 轮子,而是将数据转储为 CSV 或 JSON 文件,然后使用 DSBulk 将数据加载到 Cassandra/Astra -此工具针对来自 Cassandra/Astra.
的 loading/unloading 数据进行了大量优化
我正在尝试将我的数据帧加载到 AstraDB 中,但它需要很长时间才能加载。我想知道是否有更快的方法通过 python 来完成?
import cassandra
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
import pandas as pd
cloud_config= {
'secure_connect_bundle': 'secure-connect-capstone-project.zip'
}
auth_provider = PlainTextAuthProvider(user,pass)
cluster = Cluster(cloud=cloud_config, auth_provider=auth_provider)
#connect to keyspace_name
session = cluster.connect('iac689')
query = """insert into data_2 (truck_id, active, reading_id, start_mileage, start_time, truck_name, type)
values (%s,%s,%s,%s,%s,%s,%s)"""
for i in df.values:
session.execute(query, [i[0],i[1],i[2],i[3],i[4],i[5],i[6]])
如果您确实需要通过 Python 执行此操作,则可以通过以下方式加速代码:
- 使用 prepared queries - 在您的查询字符串上调用
session.prepare
,并在session.execute
. 中使用它
- 使用异步 API (
execute_async
) 而不是同步 (execute
)。但是您需要跟踪您有多少 in-flight 个查询等,以避免出错。
真的,我建议不要 re-invent 轮子,而是将数据转储为 CSV 或 JSON 文件,然后使用 DSBulk 将数据加载到 Cassandra/Astra -此工具针对来自 Cassandra/Astra.
的 loading/unloading 数据进行了大量优化