我正在尝试在我使用Amundsen的项目中并行化元摄取工作,但我遇到了问题。下面是相同的代码片段。我在 Snowflake的帐户级别执行并行化,然后我从 Snowflake 获得的元数据被摄取到Neo4J。
def process_all_snowflake_accounts():
"""Function that loops through all the SF accounts"""
snowflake_config = read_snowflake_configuration()
start_time = time.time()
processes = []
for ac_key, ac_config in snowflake_config.items():
process = multiprocessing.Process(target=multiprocessing_snowflake_accounts, args=(ac_key, ac_config))
processes.append(process)
process.start()
for process in processes:
process.join()
print("CPU Unit: ", multiprocessing.cpu_count)
print('****************************************************************')
print('Total time taken: ', time.time() - start_time)
print('****************************************************************')
上面的代码很少会跳过一些帐户数据库并且没有显示任何错误,但大多数时候它会显示下面提到的错误:
"Scanning Snowflake ..."
"Process account: Account-1"
"Process account: Account-2"
"Process account: Account-3"
"Launching job for Account-1-DB-1"
"Launching job for Account-2-DB-1"
"Launching job for Account-3-DB-1"
"Launching job for Account-2-DB-2"
"Launching job for Account-1-DB-2"
ERROR:databuilder.publisher.neo4j_csv_publisher:Failed to publish. Rolling back.
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/amundsen_databuilder-2.6.4-py3.7.egg/databuilder/publisher/neo4j_csv_publisher.py", line 202, in publish_impl
tx = self._publish_node(node_file, tx=tx)
File "/usr/local/lib/python3.7/site-packages/amundsen_databuilder-2.6.4-py3.7.egg/databuilder/publisher/neo4j_csv_publisher.py", line 266, in _publish_node
with open(node_file, 'r', encoding='utf8') as node_csv:
FileNotFoundError: [Errno 2] No such file or directory: '/var/tmp/amundsen/tables/nodes/Description_4.csv'