从beam pipelin连接google云sql postgres实例

2024-10-04 07:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从运行在googledataflow上的apachebeam管道连接googlecloudsqlpostgres实例。
我想用pythonsdk来实现这一点。
我找不到合适的文档。
在云SQL如何指南中,我没有看到任何关于数据流的文档。
https://cloud.google.com/sql/docs/postgres/

有人能提供文档链接/github示例吗?在


Tags: 实例文档httpscomcloudsql管道google
2条回答

你可以使用_数据库写入和关系_数据库读取beam-nuggets转换如下:

首先安装横梁熔核:

pip install beam-nuggets

阅读:

^{pr2}$

写作:

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
from beam_nuggets.io import relational_db

with beam.Pipeline(options=PipelineOptions()) as p:
    months = p | "Reading month records" >> beam.Create([
        {'name': 'Jan', 'num': 1},
        {'name': 'Feb', 'num': 2},
    ])
    source_config = relational_db.SourceConfiguration(
        drivername='postgresql+pg8000',
        host='localhost',
        port=5432,
        username='postgres',
        password='password',
        database='calendar',
        create_if_missing=True,
    )
    table_config = relational_db.TableConfiguration(
        name='months',
        create_if_missing=True
    )
    months | 'Writing to DB' >> relational_db.Write(
        source_config=source_config,
        table_config=table_config
    )

javasdk包含JdbcIO,它允许连接到任何可以通过标准javajdbc机制访问的数据库。目前在Beam Python SDK中没有类似的东西。如果有的话,我想它会使用pythondb-API。请随意归档a feature request或贡献—它的开发应该相当简单(例如,通过模仿Java的源代码JdbcIO),但非常有用:)

相关问题 更多 >