当前位置: 首页 > 知识库问答 >
问题:

Google大查询未捕获异常“Google\Cloud\Core\exception\ServiceException”

琴修为
2023-03-14

我正在尝试实现google Big Query。我不得不使用作曲家来安装google库,因为它不适用于Storage客户端和Big Query Client。我的代码从云存储中读取文件并将数据插入Big查询表。我收到以下错误和警告

PHP致命错误:未捕获异常'Google\Cloud\Core\Exception\ServiceException',消息'此curl实现不支持选项20056。'在 /base/data/home/apps/s~xxx/1.402961109127965627 /vendor/google/cloud/src/Core/RequestWrapper.php:241堆栈跟踪:

0/base/data/home/apps/s~xxx/1.40296109127965627/vendor/google/cloud/src/Core/RequestWrapper。php(150):Google\Cloud\Core\RequestWrapper-

1/base/data/home/apps/s~xxx/1.40296109127965627/vendor/google/cloud/src/Core/restrait。php(96):Google\Cloud\Core\RequestWrapper-

2/base/data/home/apps/s~xxx/1.402961109127965627/vendor/google/cloud/src/BigQuery/Connection/Rest。php(220):Google\Cloud\BigQuery\Connection\Rest-

3/base/data/home/apps/s~xxx/1.40296109127965627/vendor/google/cloud/src/BigQuery/Table。php(344):Google\Cloud in/base/data/home/apps/s~xxx/1.40296109127965627/vendor/Google/Cloud/src/Core/RequestWrapper。php在线241

PHP警告:出于安全原因,PHP_sapi_name()已被禁用。通过将其添加到google_app_引擎,可以重新启用它。在php应用程序中启用函数ini变量。ini位于/base/data/home/apps/s~datascrub-152522/1.40296109127965627/vendor/guzzlehttp/guzzle/src/Client中。php在线173

<?php
session_start();

# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\BigQuery\BigQueryClient;

use Google\Cloud\Storage\StorageClient;
use Google\Cloud\Core\ExponentialBackoff;

$projectId="xxx-1111";
$datasetId="datasetid";
$tableId="test";
$bucketName="gs://my-bucket";

$objectName="Cloud_SQL_Export.csv";
echo "\n".$projectId."==".$datasetId."==".$tableId."==".$bucketName."==".$objectName."\n";

import_from_storage($projectId, $datasetId, $tableId, $bucketName, $objectName);


function import_from_storage($projectId, $datasetId, $tableId, $bucketName, $objectName)
{
    
    echo "inside function";
    
    // determine the import options from the object name
    $options = [];
    /*if ('.backup_info' === substr($objectName, -12)) {
        $options['jobConfig'] = ['sourceFormat' => 'DATASTORE_BACKUP'];
    } elseif ('.json' === substr($objectName, -5)) {
        $options['jobConfig'] = ['sourceFormat' => 'NEWLINE_DELIMITED_JSON'];
    }*/
    $options['jobConfig'] = [ 'sourceFormat' => 'CSV', 'skipLeadingRows' => 1 ];
    print_r($options);
    echo "gfgfhg".$projectId;
    // instantiate the bigquery table service
    $bigQuery = new BigQueryClient([
            'projectId' => $projectId,
    ]);
    
    
    $dataset = $bigQuery->dataset($datasetId);
    
    
    $table = $dataset->table($tableId);
    // load the storage object
    $storage = new StorageClient([
            'projectId' => $projectId,
    ]);
    
    $object = $storage->bucket($bucketName)->object($objectName);
    
    
    // create the import job
    $job = $table->loadFromStorage($object, $options);
    echo "job set";
    // poll the job until it is complete
    $backoff = new ExponentialBackoff(10);
    $backoff->execute(function () use ($job) {
        echo 'Waiting for job to complete' . PHP_EOL;
        $job->reload();
        if (!$job->isComplete()) {
            throw new Exception('Job has not yet completed', 500);
        }
    });
        // check if the job has errors
        if (isset($job->info()['status']['errorResult'])) {
            $error = $job->info()['status']['errorResult']['message'];
            echo 'Error running job: ' . PHP_EOL." ". $error;
        } else {
            echo 'Data imported successfully' . PHP_EOL;
        }
}

共有1个答案

楚雪松
2023-03-14

通过在php中添加extension=“php_curl.dll”解决了这个问题。ini文件

 类似资料:
  • 我在我的本地主机上尝试google oauth php,得到了这个错误!我能做什么 未捕获的异常“guzzle http \ Exception \ request Exception”带有消息“cURL error 60: SSL证书问题:无法获取本地颁发者证书(请参见 http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in C:\wamp\

  • 问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们

  • 我对Java线程、Runnable等相当陌生。因此,我想知道为什么下面的代码没有捕获异常? 阅读有没有一种方法可以使Runnable的run()引发异常,我收集到: "...如果您的run()方法确实是Thread的目标,则抛出异常是没有意义的,因为它是不可观察的;抛出异常与不抛出异常(无)具有相同的效果。"(@erickson) 我应该检查Runnable.run()方法中的异常。 为什么会这样

  • 为什么Java中的一些异常不被捕获?这是完全失败的代码,有一个未处理的异常。(Java版本1.4)。 我在线程“main”java中得到了一个 但这行得通 我在java中没有发现任何方法错误。lang.NoSuchMethodError: 我以为捕获异常会捕获所有异常?如何捕获java中的所有异常?

  • 我的RMI服务器接口声明了一个方法foo(),该方法被声明为引发RemoteException和Exception,如下所示: 服务器实现为: 我的客户端在服务器上调用foo: 现在,当我运行客户端时,我得到: 从java类型的foo()中获取异常。rmi。异常异常:未声明的检查异常;嵌套的例外是:java。伊奥。InterruptedIOException:操作超时 Java文档是这样说的。rm

  • 我的用它的作用域启动coroutine 我的只处理一些逻辑,在本例中是某种验证器 然后我的只处理网络层/本地层 以下是我得到的错误日志: 错误直接指向显式的语句。