国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Hadoop-Cos】存儲(chǔ)對象Cos通過Java-SDK獲取目錄結(jié)構(gòu)

這篇具有很好參考價(jià)值的文章主要介紹了【Hadoop-Cos】存儲(chǔ)對象Cos通過Java-SDK獲取目錄結(jié)構(gòu)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

<dependency>
    <groupId>com.qcloud</groupId>
    <artifactId>cos_api</artifactId>
    <version>5.6.133</version>
</dependency>
package gaei.cn.x5l.x5lhive2cos.utils;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.model.ListObjectsRequest;
import com.qcloud.cos.model.ObjectListing;
import com.qcloud.cos.region.Region;
import org.apache.commons.lang3.SystemUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static java.util.stream.Collectors.toList;

public class CosSampleDate2Mysql {
    //Mysql連接信息系
    private static String MYSQL_URL = "jdbc:mysql://10.1.1.1:3316/test?useSSL=false";
    private static String MYSQL_USERNAME = "root";
    private static String MYSQL_PASSWORD = "123456";
    //Mysql目標(biāo)
    private static String MYSQL_TABLE = "`test`.`test`";

    private static Connection conn = null;
    private static ResultSet rs = null;
    private static PreparedStatement ps = null;

    public static void main(String[] args) {
        //Hive庫表
        String dbName;
        String tableName;
        if (SystemUtils.IS_OS_WINDOWS_10) {
            //cos中的庫名表名
            dbName = "database";
            tableName = "table_name";
        } else {
            dbName = args[0];
            tableName = args[1];
        }
        // 1 初始化用戶身份信息(secretId, secretKey)。
        String secretId = "*******************************";
        String secretKey = "*******************************";
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        // 2 設(shè)置 bucket 的地域。
        Region region = new Region("ap-guangzhou");
        ClientConfig clientConfig = new ClientConfig(region);
        // 這里建議設(shè)置使用 https 協(xié)議(從 5.6.54 版本開始,默認(rèn)使用了 https)。
        clientConfig.setHttpProtocol(HttpProtocol.https);
        // 3 生成 cos 客戶端。
        COSClient cosClient = new COSClient(cred, clientConfig);
        // 遍歷 Bucket
//        List<Bucket> buckets = cosClient.listBuckets();
//        for (Bucket bucketElement : buckets) {
//            String bucketName = bucketElement.getName();
//            String bucketLocation = bucketElement.getLocation();
//            System.out.println("bucketName: " + bucketName);
//            System.out.println("bucketLocation: " + bucketLocation);
//        }
        // 4 遍歷 bucket 目錄
        ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
        // 設(shè)置 bucket 名稱
        String bucketName = "pro-x5l-1111111111";
        listObjectsRequest.setBucketName(bucketName);
        // prefix 表示列出的 object 的 key 以 prefix 開始(以/user/x5l/hive/ods_x5l/ods_hive_gb_and_bms_gb/開頭桶下的所有絕對路徑)
        listObjectsRequest.setPrefix("/user/x5l/hive/" + dbName + "/" + tableName + "/");
        // deliter 表示分隔符, 設(shè)置為/表示列出當(dāng)前目錄下的 object, 設(shè)置為空表示列出所有的 object
        listObjectsRequest.setDelimiter("/");
        // 設(shè)置最大遍歷出多少個(gè)對象, 一次 listobject 最大支持1000
        listObjectsRequest.setMaxKeys(100000000);
        ObjectListing objectListing = null;
        List<String> commonPrefixs = null;
        do {
            try {
                objectListing = cosClient.listObjects(listObjectsRequest);
            } catch (CosServiceException e) {
                e.printStackTrace();
                return;
            } catch (CosClientException e) {
                e.printStackTrace();
                return;
            }
            // common prefix 表示表示被 delimiter 截?cái)嗟穆窂? 如 delimter 設(shè)置為/, common prefix 則表示所有子目錄的路徑
            commonPrefixs = objectListing.getCommonPrefixes();
            // object summary 表示所有列出的 object 列表
//            List<COSObjectSummary> cosObjectSummaries = objectListing.getObjectSummaries();
//            for (COSObjectSummary cosObjectSummary : cosObjectSummaries) {
//                // 文件的路徑 key
//                String key = cosObjectSummary.getKey();
//                // 文件的 etag
//                String etag = cosObjectSummary.getETag();
//                // 文件的長度
//                long fileSize = cosObjectSummary.getSize();
//                // 文件的存儲(chǔ)類型
//                String storageClasses = cosObjectSummary.getStorageClass();
//            }
//            String nextMarker = objectListing.getNextMarker();
//            listObjectsRequest.setMarker(nextMarker);
        } while (objectListing.isTruncated());
        //處理目錄結(jié)構(gòu),獲取分區(qū)時(shí)間目錄
        List<String> sampleDates = new ArrayList<>();
        for (String commonPrefix : commonPrefixs) {
            sampleDates.add(commonPrefix.split("/")[5].split("=")[1]);
        }
        //獲取mysql中已有分區(qū)時(shí)間
        List<String> mysqlSampleDates = new ArrayList<>();
        try {
            conn = DBConn.conn(MYSQL_URL, MYSQL_USERNAME, MYSQL_PASSWORD);
            ps = conn.prepareStatement("select sample_date from " + MYSQL_TABLE + " where `database` = '" + dbName + "' and table_name = '" + tableName + "'");
            rs = ps.executeQuery();
            while (rs.next()) {
                String sampleDate = rs.getString("sample_date");
                mysqlSampleDates.add(sampleDate);
//                System.out.println("Mysql中已有的時(shí)間分區(qū):" + sampleDate);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        //獲取mysql中缺失分區(qū)時(shí)間
        List<String> allSampleDates = sampleDates.stream().filter(item -> !mysqlSampleDates.contains(item)).collect(toList());
        List<String> result = allSampleDates.stream().filter(item -> item.contains("202302") || item.contains("202303") || item.contains("202304") || item.contains("202305")).collect(toList());
        //解析后的數(shù)據(jù)日期倒轉(zhuǎn)
        Collections.reverse(result);
        System.out.println("Mysql中需要補(bǔ)充的時(shí)間分區(qū):");
        for (String element : result) {
            System.out.println(element);
        }
        if (tableName.contains("dwd_hive_tbox_period_")) {
            dbName = "dwd";
            tableName = tableName.replace("dwd_hive_tbox_period_", "dwd_tsp_tbox_period_");
        }
        int count = 1;
        String sql = "insert into " + MYSQL_TABLE + " (`database`, `table_name`, `sample_date`, `state`, `update_time`) values('" + dbName + "', '" + tableName + "' ,%s ,0 ,now())";
        for (String resultSampleDate : result) {
            try {
                System.out.println("正在寫入第" + count++ + "條數(shù)據(jù)");
                //獲取數(shù)據(jù)源
                ps = conn.prepareStatement(String.format(sql, resultSampleDate));
                ps.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println(tableName + "數(shù)據(jù)寫入完成,成功寫入的數(shù)據(jù)條數(shù)為:" + result.size());
        cosClient.shutdown();
    }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-534812.html

到了這里,關(guān)于【Hadoop-Cos】存儲(chǔ)對象Cos通過Java-SDK獲取目錄結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot快速整合騰訊云COS對象存儲(chǔ)

    springboot快速整合騰訊云COS對象存儲(chǔ)

    1、導(dǎo)入相關(guān)依賴 2、編寫配置類,獲取配置信息 創(chuàng)建配置類主要需要以下信息 騰訊云賬號秘鑰 和 密碼秘鑰: 用于創(chuàng)建COSClient鏈接對象,識(shí)別用戶身份信息 存儲(chǔ)桶區(qū)域 :需要設(shè)置客戶端所屬區(qū)域Region 存儲(chǔ)桶名稱 :創(chuàng)建請求時(shí),需要告知上傳到哪個(gè)存儲(chǔ)桶下 存儲(chǔ)桶訪問路徑

    2024年02月15日
    瀏覽(28)
  • 什么是對象存儲(chǔ)COS?它又有哪些優(yōu)勢?

    對象存儲(chǔ)(Cloud Object Storage,COS)是騰訊云提供的一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),用戶可通過網(wǎng)絡(luò)隨時(shí)存儲(chǔ)和查看數(shù)據(jù)。騰訊云 COS 使所有用戶都能使用具備高擴(kuò)展性、低成本、可靠和安全的數(shù)據(jù)存儲(chǔ)服務(wù)。 COS 通過控制臺(tái)、API、SDK 和工具等多樣化方式簡單、快速地接入

    2024年01月16日
    瀏覽(23)
  • 【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    ? ? ? 對于一個(gè)沒有寫過支付的小白,打開微信支付官方文檔時(shí)徹底懵逼 ,因?yàn)?微信支付文檔太過詳細(xì), 導(dǎo)致我無從下手,所以寫此文章,幫助第一次寫支付的小伙伴梳理一下。 一、流程分為三個(gè)接口:(這是前言,先看一遍,保持印象,方便理解代碼) 1、第一個(gè)接口:

    2024年02月03日
    瀏覽(31)
  • 騰訊云COS云對象存儲(chǔ),分布式解決簽名上傳

    騰訊云COS云對象存儲(chǔ),分布式解決簽名上傳

    昨天寫了阿里云的OSS對象存儲(chǔ)簽名上傳,今天把騰訊云的也總結(jié)一下,非常簡單,開通步驟和開通子用戶并授權(quán)就不再多說,類比上一篇博客: https://blog.csdn.net/m0_57249797/article/details/124748601?spm=1001.2014.3001.5501 直接上后端簽名代碼: Maven依賴: 后端代碼 postman發(fā)送請求獲取簽名鏈

    2024年02月12日
    瀏覽(31)
  • 【2023新教程】樹莓派定時(shí)自動(dòng)拍照并上傳騰訊云對象存儲(chǔ)COS

    僅適用于 Release date: May 3rd 2023、Debian version: 11 (bullseye) 這個(gè)樹莓派OS版本,其他版本不保證有效。 首先使用如下命令,查看自己樹莓派的架構(gòu)。 結(jié)果如下: 如果紅圈處顯示為 aarch64 ,使用命令 sudo nano /etc/apt/sources.list ,注釋掉里面的所有內(nèi)容,加入以下內(nèi)容: 然后保存。

    2024年02月12日
    瀏覽(29)
  • 云原生 - 微信小程序 COS 對象存儲(chǔ)圖片緩存強(qiáng)制更新解決方案

    云原生 - 微信小程序 COS 對象存儲(chǔ)圖片緩存強(qiáng)制更新解決方案

    遇到一個(gè)這樣的情況:在微信小程序里圖片緩存十分麻煩,網(wǎng)上很多說在騰訊云里的 COS 存儲(chǔ)對象服務(wù)里設(shè)置對應(yīng)的圖片緩存(Header 頭 Cache-Contorl),說實(shí)話真不好用,一會(huì)兒生效,一會(huì)兒沒生效,而且量又大。于是,今天給大家分享一個(gè)簡單粗暴的解決方案~ 以騰訊云為例,

    2024年01月23日
    瀏覽(30)
  • Windows系統(tǒng)掛載云對象存儲(chǔ)(COS\OSS)作為本地磁盤的方法

    Windows系統(tǒng)掛載云對象存儲(chǔ)(COS\OSS)作為本地磁盤的方法

    當(dāng)今社會(huì),數(shù)據(jù)信息量越來越龐大,個(gè)人電腦的本地磁盤很難裝下海量數(shù)據(jù)。云對象存儲(chǔ)作為一種可擴(kuò)展的存儲(chǔ)方式,擴(kuò)充了個(gè)人電腦的存儲(chǔ)能力,便于我們存取更海量的數(shù)據(jù)。 對象存儲(chǔ)是面向?qū)ο?文件的、海量的互聯(lián)網(wǎng)存儲(chǔ),它也可以直接被稱為“云存儲(chǔ)”。對象存儲(chǔ)一

    2024年01月20日
    瀏覽(25)
  • Amazon S3 對象存儲(chǔ)Java API操作記錄(Minio與S3 SDK兩種實(shí)現(xiàn))

    Amazon S3 對象存儲(chǔ)Java API操作記錄(Minio與S3 SDK兩種實(shí)現(xiàn))

    今年(2023年) 2月的時(shí)候做了個(gè)適配Amazon S3對象存儲(chǔ)接口的需求,由于4月份自學(xué)考試臨近,一直在備考就拖著沒總結(jié)記錄下,開發(fā)聯(lián)調(diào)過程中也出現(xiàn)過一些奇葩的問題,最近人剛從考試緩過來順手記錄一下。 Amazon S3(Simple Storage Service)對象存儲(chǔ)出現(xiàn)得比較早且使用簡單的RESTful

    2024年02月01日
    瀏覽(22)
  • 【golang】go獲取騰訊云cos對象存儲(chǔ) 并轉(zhuǎn)為base64字符串輸出

    需要引入騰訊云cos的sdk https://github.com/tencentyun/cos-go-sdk-v5 配置yaml如下: go代碼編寫如下:

    2024年02月11日
    瀏覽(28)
  • 【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包(包含支付出現(xiàn)的多次回調(diào)的問題解析,接口冪等性)

    【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包(包含支付出現(xiàn)的多次回調(diào)的問題解析,接口冪等性)

    ? ? ? 對于一個(gè)沒有寫過支付的小白,打開微信支付官方文檔時(shí)徹底懵逼 ,因?yàn)?微信支付文檔太過詳細(xì), 導(dǎo)致我無從下手,所以寫此文章,幫助第一次寫支付的小伙伴梳理一下。 一、流程分為三個(gè)接口:(這是前言,先看一遍,保持印象,方便理解代碼) 1、第一個(gè)接口:

    2024年01月16日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包