datahub优雅的接入java-反射和字符串拼接实现

阿里云里面java对接datahub的语法和demo实在简陋, 新手刚使用的时候,真的有点惨不忍睹

下面是原sdk里面的demo

Maven Pom

<dependency>
  <groupId>com.aliyun.datahub</groupId>
  <artifactId>aliyun-sdk-datahub</artifactId>
  <version>2.19.0-public</version>
</dependency>

初始化

用户可以使用阿里云认证账号访问DataHub,并需要提供云账号AccessId和AccessKey,同时需要提供访问DataHub的服务地址。以下代码用于使用DataHub域名新建DataHubClient:

// Endpoint以Region: 华东1为例,其他Region请按实际情况填写
String endpoint = "http://dh-cn-hangzhou.aliyuncs.com";
String accessId = "<YourAccessKeyId>";
String accessKey = "<YourAccessKeySecret>";
// 创建DataHubClient实例
DatahubClient datahubClient = DatahubClientBuilder.newBuilder()
        .setDatahubConfig(
                new DatahubConfig(endpoint,
                        // 是否开启二进制传输,服务端2.12版本开始支持
                        new AliyunAccount(accessId, accessKey), true))
                        //专有云使用出错尝试将参数设置为           false
        // HttpConfig可不设置,不设置时采用默认值
        .setHttpConfig(new HttpConfig()
                .setCompressType(HttpConfig.CompressType.LZ4) // 读写数据推荐打开网络传输 LZ4压缩
                .setConnTimeout(10000))
        .build();

写入数据到DataHub

以Tuple类型Topic为例

    // 写入Tuple型数据
    public static void tupleExample(String project,String topic,int retryTimes) {
        // 获取schema
        RecordSchema recordSchema = datahubClient.getTopic(project,topic ).getRecordSchema();
        // 生成十条数据
        List<RecordEntry> recordEntries = new ArrayList<>();
        for (int i = 0; i < 10; ++i) {
            RecordEntry recordEntry = new RecordEntry();
            // 对每条数据设置额外属性,例如ip 机器名等。可以不设置额外属性,不影响数据写入
            recordEntry.addAttribute("key1", "value1");

            TupleRecordData data = new TupleRecordData(recordSchema);
            data.setField("field1", "HelloWorld");
            data.setField("field2", 1234567);
            recordEntry.setRecordData(data);
            
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
datahub 是阿里云提供的数据接入和流式处理的服务,支持数据的实时写入、查询和消费。使用 datahub 可以方便地实现大数据的实时计算、数据分析和数据挖掘等应用场景。下面是使用 Python 消费 datahub 的简单指南。 1. 安装 datahub-python-sdk datahub-python-sdk 是阿里云官方提供的 Python SDK,可以方便地使用 Python 操作 datahub。可以使用 pip 安装: ```python pip install datahub-python-sdk ``` 2. 创建 Datahub 客户端 可以使用如下代码创建一个 datahub 客户端: ```python from datahub import DataHub client = DataHub(access_id='<your_access_id>', access_key='<your_access_key>', endpoint='<your_endpoint>', project='<your_project>', topic='<your_topic>') ``` 其中,access_id 和 access_key 是阿里云账号的 AccessKeyId 和 AccessKeySecret,endpoint 是 datahub 服务的地址,project 和 topic 分别是 datahub 中的项目和主题名称。 3. 消费数据 可以使用如下代码消费 datahub 中的数据: ```python result = client.get_tuple_records('<your_shard_id>', '<your_cursor>', limit=1000) for record in result.records: print(record) ``` 其中,shard_id 是 datahub 中的分片编号,cursor 是上一次消费数据时返回的游标,limit 是每次消费的数据条数。可以将消费到的数据进行进一步处理、分析或者存储。 以上就是使用 Python 消费 datahub 的简单指南,希望对使用 datahub 的开发者有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值